1 /* This file is part of Shapes.
3 * Shapes is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
8 * Shapes is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with Shapes. If not, see <http://www.gnu.org/licenses/>.
16 * Copyright 2008 Henrik Tidefelt
22 #include "shapesexceptions.h"
23 #include "lighttypes.h"
25 using namespace Shapes
;
29 RefCountPtr
< const Lang::Value
>
30 Ast::LessExpr::impl( DUMMYANDREF( const Lang::Symbol
) arg1
, DUMMYANDREF( const Lang::Symbol
) arg2
, const Kernel::PassedDyn
& dyn
) const
32 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( *arg1
< *arg2
) );
35 RefCountPtr
< const Lang::Value
>
36 Ast::LessExpr::impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const
38 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->val_
< arg2
->val_
) );
41 RefCountPtr
< const Lang::Value
>
42 Ast::LessExpr::impl( DUMMYANDREF( const Lang::Integer
) arg1
, DUMMYANDREF( const Lang::Integer
) arg2
, const Kernel::PassedDyn
& dyn
) const
44 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->val_
< arg2
->val_
) );
47 RefCountPtr
< const Lang::Value
>
48 Ast::LessExpr::impl( DUMMYANDREF( const Lang::Character
) arg1
, DUMMYANDREF( const Lang::Character
) arg2
, const Kernel::PassedDyn
& dyn
) const
50 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->val_
< arg2
->val_
) );
53 RefCountPtr
< const Lang::Value
>
54 Ast::LessExpr::impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const
56 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->get( ) < arg2
->get( ) ) );
59 RefCountPtr
< const Lang::Value
>
60 Ast::LessExpr::impl( DUMMYANDREF( const Lang::Coords2D
) arg1
, DUMMYANDREF( const Lang::Coords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const
62 Lang::PathPoint2D
* res
= new Lang::PathPoint2D( arg2
);
64 return Kernel::ValueRef( res
);
67 RefCountPtr
< const Lang::Value
>
68 Ast::LessExpr::impl( DUMMYANDREF( const Lang::Coords2D
) arg1
, DUMMYANDREF( const Lang::PathPoint2D
) arg2
, const Kernel::PassedDyn
& dyn
) const
70 Lang::PathPoint2D
* res
= new Lang::PathPoint2D( *arg2
);
71 if( res
->rear_
.getPtr( ) != 0 )
73 throw Exceptions::OutOfRange( this->loc( ), strrefdup( "Pathpoint already has a rear handle" ) );
76 return Kernel::ValueRef( res
);
79 RefCountPtr
< const Lang::Value
>
80 Ast::LessExpr::impl( DUMMYANDREF( const Lang::Coords2D
) arg1
, DUMMYANDREF( const Lang::PathSlider2D
) arg2
, const Kernel::PassedDyn
& dyn
) const
82 if( arg2
->getRear( ) != NullPtr
< const Lang::Value
>( ) )
84 throw Exceptions::OutOfRange( this->loc( ), strrefdup( "Slider already has a rear handle" ) );
86 return Kernel::ValueRef( new Lang::PathSlider2D_rear( *arg2
, arg1
) );
89 RefCountPtr
< const Lang::Value
>
90 Ast::LessExpr::impl( DUMMYANDREF( const Lang::PolarHandleBase
) arg1
, DUMMYANDREF( const Lang::Coords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const
92 Lang::PathPoint2D
* res
= new Lang::PathPoint2D( arg2
);
94 return Kernel::ValueRef( res
);
97 RefCountPtr
< const Lang::Value
>
98 Ast::LessExpr::impl( DUMMYANDREF( const Lang::PolarHandleBase
) arg1
, DUMMYANDREF( const Lang::PathPoint2D
) arg2
, const Kernel::PassedDyn
& dyn
) const
100 Lang::PathPoint2D
* res
= new Lang::PathPoint2D( *arg2
);
101 if( res
->rear_
.getPtr( ) != 0 )
103 throw Exceptions::OutOfRange( this->loc( ), strrefdup( "Pathpoint already has a rear handle" ) );
106 return Kernel::ValueRef( res
);
109 RefCountPtr
< const Lang::Value
>
110 Ast::LessExpr::impl( DUMMYANDREF( const Lang::PolarHandleBase
) arg1
, DUMMYANDREF( const Lang::PathSlider2D
) arg2
, const Kernel::PassedDyn
& dyn
) const
112 if( arg2
->getRear( ) != NullPtr
< const Lang::Value
>( ) )
114 throw Exceptions::OutOfRange( this->loc( ), strrefdup( "Slider already has a rear handle" ) );
116 return Kernel::ValueRef( new Lang::PathSlider2D_rear( *arg2
, arg1
) );
119 RefCountPtr
< const Lang::Value
>
120 Ast::LessExpr::impl( DUMMYANDREF( const Lang::CornerCoords2D
) arg1
, DUMMYANDREF( const Lang::Coords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const
122 throw Exceptions::MiscellaneousRequirement( strrefdup( "A handle mustn't have a default angle." ) );
125 RefCountPtr
< const Lang::Value
>
126 Ast::LessExpr::impl( DUMMYANDREF( const Lang::CornerCoords2D
) arg1
, DUMMYANDREF( const Lang::PathPoint2D
) arg2
, const Kernel::PassedDyn
& dyn
) const
128 throw Exceptions::MiscellaneousRequirement( strrefdup( "A handle mustn't have a default angle." ) );
131 RefCountPtr
< const Lang::Value
>
132 Ast::LessExpr::impl( DUMMYANDREF( const Lang::Coords3D
) arg1
, DUMMYANDREF( const Lang::Coords3D
) arg2
, const Kernel::PassedDyn
& dyn
) const
134 Lang::PathPoint3D
* res
= new Lang::PathPoint3D( arg2
);
136 return Kernel::ValueRef( res
);
139 RefCountPtr
< const Lang::Value
>
140 Ast::LessExpr::impl( DUMMYANDREF( const Lang::Coords3D
) arg1
, DUMMYANDREF( const Lang::PathPoint3D
) arg2
, const Kernel::PassedDyn
& dyn
) const
142 Lang::PathPoint3D
* res
= new Lang::PathPoint3D( *arg2
);
143 if( res
->rear_
.getPtr( ) != 0 )
145 throw Exceptions::OutOfRange( this->loc( ), strrefdup( "Pathpoint already has a rear handle" ) );
148 return Kernel::ValueRef( res
);
151 RefCountPtr
< const Lang::Value
>
152 Ast::LessExpr::impl( DUMMYANDREF( const Lang::Coords3D
) arg1
, DUMMYANDREF( const Lang::PathSlider3D
) arg2
, const Kernel::PassedDyn
& dyn
) const
154 if( arg2
->getRear( ) != NullPtr
< const Lang::Value
>( ) )
156 throw Exceptions::OutOfRange( this->loc( ), strrefdup( "Slider already has a rear handle" ) );
158 return Kernel::ValueRef( new Lang::PathSlider3D_rear( *arg2
, arg1
) );
162 RefCountPtr
< const Lang::Value
>
163 Ast::GreaterExpr::impl( DUMMYANDREF( const Lang::Symbol
) arg1
, DUMMYANDREF( const Lang::Symbol
) arg2
, const Kernel::PassedDyn
& dyn
) const
165 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( *arg1
> *arg2
) );
168 RefCountPtr
< const Lang::Value
>
169 Ast::GreaterExpr::impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const
171 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->val_
> arg2
->val_
) );
174 RefCountPtr
< const Lang::Value
>
175 Ast::GreaterExpr::impl( DUMMYANDREF( const Lang::Integer
) arg1
, DUMMYANDREF( const Lang::Integer
) arg2
, const Kernel::PassedDyn
& dyn
) const
177 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->val_
> arg2
->val_
) );
180 RefCountPtr
< const Lang::Value
>
181 Ast::GreaterExpr::impl( DUMMYANDREF( const Lang::Character
) arg1
, DUMMYANDREF( const Lang::Character
) arg2
, const Kernel::PassedDyn
& dyn
) const
183 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->val_
> arg2
->val_
) );
186 RefCountPtr
< const Lang::Value
>
187 Ast::GreaterExpr::impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const
189 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->get( ) > arg2
->get( ) ) );
192 RefCountPtr
< const Lang::Value
>
193 Ast::GreaterExpr::impl( DUMMYANDREF( const Lang::Coords2D
) arg1
, DUMMYANDREF( const Lang::Coords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const
195 Lang::PathPoint2D
* res
= new Lang::PathPoint2D( arg1
);
197 return Kernel::ValueRef( res
);
200 RefCountPtr
< const Lang::Value
>
201 Ast::GreaterExpr::impl( DUMMYANDREF( const Lang::PathPoint2D
) arg1
, DUMMYANDREF( const Lang::Coords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const
203 Lang::PathPoint2D
* res
= new Lang::PathPoint2D( *arg1
);
204 if( res
->front_
.getPtr( ) != 0 )
206 throw Exceptions::OutOfRange( this->loc( ), strrefdup( "Pathpoint already has a front handle" ) );
209 return Kernel::ValueRef( res
);
212 RefCountPtr
< const Lang::Value
>
213 Ast::GreaterExpr::impl( DUMMYANDREF( const Lang::PathSlider2D
) arg1
, DUMMYANDREF( const Lang::Coords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const
215 if( arg1
->getFront( ) != NullPtr
< const Lang::Value
>( ) )
217 throw Exceptions::OutOfRange( this->loc( ), strrefdup( "Slider already has a front handle" ) );
219 return Kernel::ValueRef( new Lang::PathSlider2D_front( *arg1
, arg2
) );
222 RefCountPtr
< const Lang::Value
>
223 Ast::GreaterExpr::impl( DUMMYANDREF( const Lang::Coords2D
) arg1
, DUMMYANDREF( const Lang::PolarHandleBase
) arg2
, const Kernel::PassedDyn
& dyn
) const
225 Lang::PathPoint2D
* res
= new Lang::PathPoint2D( arg1
);
227 return Kernel::ValueRef( res
);
230 RefCountPtr
< const Lang::Value
>
231 Ast::GreaterExpr::impl( DUMMYANDREF( const Lang::PathPoint2D
) arg1
, DUMMYANDREF( const Lang::PolarHandleBase
) arg2
, const Kernel::PassedDyn
& dyn
) const
233 Lang::PathPoint2D
* res
= new Lang::PathPoint2D( *arg1
);
234 if( res
->front_
.getPtr( ) != 0 )
236 throw Exceptions::OutOfRange( this->loc( ), strrefdup( "Pathpoint already has a front handle" ) );
239 return Kernel::ValueRef( res
);
242 RefCountPtr
< const Lang::Value
>
243 Ast::GreaterExpr::impl( DUMMYANDREF( const Lang::PathSlider2D
) arg1
, DUMMYANDREF( const Lang::PolarHandleBase
) arg2
, const Kernel::PassedDyn
& dyn
) const
245 if( arg1
->getFront( ) != NullPtr
< const Lang::Value
>( ) )
247 throw Exceptions::OutOfRange( this->loc( ), strrefdup( "Slider already has a front handle" ) );
249 return Kernel::ValueRef( new Lang::PathSlider2D_front( *arg1
, arg2
) );
252 RefCountPtr
< const Lang::Value
>
253 Ast::GreaterExpr::impl( DUMMYANDREF( const Lang::Coords2D
) arg1
, DUMMYANDREF( const Lang::CornerCoords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const
255 throw Exceptions::MiscellaneousRequirement( strrefdup( "A handle mustn't have a default angle." ) );
258 RefCountPtr
< const Lang::Value
>
259 Ast::GreaterExpr::impl( DUMMYANDREF( const Lang::PathPoint2D
) arg1
, DUMMYANDREF( const Lang::CornerCoords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const
261 throw Exceptions::MiscellaneousRequirement( strrefdup( "A handle mustn't have a default angle." ) );
264 RefCountPtr
< const Lang::Value
>
265 Ast::GreaterExpr::impl( DUMMYANDREF( const Lang::Coords3D
) arg1
, DUMMYANDREF( const Lang::Coords3D
) arg2
, const Kernel::PassedDyn
& dyn
) const
267 Lang::PathPoint3D
* res
= new Lang::PathPoint3D( arg1
);
269 return Kernel::ValueRef( res
);
272 RefCountPtr
< const Lang::Value
>
273 Ast::GreaterExpr::impl( DUMMYANDREF( const Lang::PathPoint3D
) arg1
, DUMMYANDREF( const Lang::Coords3D
) arg2
, const Kernel::PassedDyn
& dyn
) const
275 Lang::PathPoint3D
* res
= new Lang::PathPoint3D( *arg1
);
276 if( res
->front_
.getPtr( ) != 0 )
278 throw Exceptions::OutOfRange( this->loc( ), strrefdup( "Pathpoint already has a front handle" ) );
281 return Kernel::ValueRef( res
);
284 RefCountPtr
< const Lang::Value
>
285 Ast::GreaterExpr::impl( DUMMYANDREF( const Lang::PathSlider3D
) arg1
, DUMMYANDREF( const Lang::Coords3D
) arg2
, const Kernel::PassedDyn
& dyn
) const
287 if( arg1
->getFront( ) != NullPtr
< const Lang::Value
>( ) )
289 throw Exceptions::OutOfRange( this->loc( ), strrefdup( "Slider already has a front handle" ) );
291 return Kernel::ValueRef( new Lang::PathSlider3D_front( *arg1
, arg2
) );
295 RefCountPtr
< const Lang::Value
>
296 Ast::EqualExpr::impl( DUMMYANDREF( const Lang::Symbol
) arg1
, DUMMYANDREF( const Lang::Symbol
) arg2
, const Kernel::PassedDyn
& dyn
) const
298 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( *arg1
== *arg2
) );
301 RefCountPtr
< const Lang::Value
>
302 Ast::EqualExpr::impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const
304 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->val_
== arg2
->val_
) );
307 RefCountPtr
< const Lang::Value
>
308 Ast::EqualExpr::impl( DUMMYANDREF( const Lang::Integer
) arg1
, DUMMYANDREF( const Lang::Integer
) arg2
, const Kernel::PassedDyn
& dyn
) const
310 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->val_
== arg2
->val_
) );
313 RefCountPtr
< const Lang::Value
>
314 Ast::EqualExpr::impl( DUMMYANDREF( const Lang::Character
) arg1
, DUMMYANDREF( const Lang::Character
) arg2
, const Kernel::PassedDyn
& dyn
) const
316 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->val_
== arg2
->val_
) );
319 RefCountPtr
< const Lang::Value
>
320 Ast::EqualExpr::impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const
322 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->get( ) == arg2
->get( ) ) );
325 RefCountPtr
< const Lang::Value
>
326 Ast::EqualExpr::impl( DUMMYANDREF( const Lang::Class
) arg1
, DUMMYANDREF( const Lang::Class
) arg2
, const Kernel::PassedDyn
& dyn
) const
328 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
== arg2
) );
331 RefCountPtr
< const Lang::Value
>
332 Ast::EqualExpr::impl( DUMMYANDREF( const Lang::Function
) arg1
, DUMMYANDREF( const Lang::Function
) arg2
, const Kernel::PassedDyn
& dyn
) const
334 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
== arg2
) ); /* Compare pointers (!). */
338 RefCountPtr
< const Lang::Value
>
339 Ast::NotEqualExpr::impl( DUMMYANDREF( const Lang::Symbol
) arg1
, DUMMYANDREF( const Lang::Symbol
) arg2
, const Kernel::PassedDyn
& dyn
) const
341 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( *arg1
!= *arg2
) );
344 RefCountPtr
< const Lang::Value
>
345 Ast::NotEqualExpr::impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const
347 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->val_
!= arg2
->val_
) );
350 RefCountPtr
< const Lang::Value
>
351 Ast::NotEqualExpr::impl( DUMMYANDREF( const Lang::Integer
) arg1
, DUMMYANDREF( const Lang::Integer
) arg2
, const Kernel::PassedDyn
& dyn
) const
353 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->val_
!= arg2
->val_
) );
356 RefCountPtr
< const Lang::Value
>
357 Ast::NotEqualExpr::impl( DUMMYANDREF( const Lang::Character
) arg1
, DUMMYANDREF( const Lang::Character
) arg2
, const Kernel::PassedDyn
& dyn
) const
359 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->val_
!= arg2
->val_
) );
362 RefCountPtr
< const Lang::Value
>
363 Ast::NotEqualExpr::impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const
365 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->get( ) != arg2
->get( ) ) );
368 RefCountPtr
< const Lang::Value
>
369 Ast::NotEqualExpr::impl( DUMMYANDREF( const Lang::Class
) arg1
, DUMMYANDREF( const Lang::Class
) arg2
, const Kernel::PassedDyn
& dyn
) const
371 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
!= arg2
) );
374 RefCountPtr
< const Lang::Value
>
375 Ast::NotEqualExpr::impl( DUMMYANDREF( const Lang::Function
) arg1
, DUMMYANDREF( const Lang::Function
) arg2
, const Kernel::PassedDyn
& dyn
) const
377 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
!= arg2
) ); /* Compare pointers (!). */
381 RefCountPtr
< const Lang::Value
>
382 Ast::LessEqualExpr::impl( DUMMYANDREF( const Lang::Symbol
) arg1
, DUMMYANDREF( const Lang::Symbol
) arg2
, const Kernel::PassedDyn
& dyn
) const
384 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( *arg1
<= *arg2
) );
387 RefCountPtr
< const Lang::Value
>
388 Ast::LessEqualExpr::impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const
390 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->val_
<= arg2
->val_
) );
393 RefCountPtr
< const Lang::Value
>
394 Ast::LessEqualExpr::impl( DUMMYANDREF( const Lang::Integer
) arg1
, DUMMYANDREF( const Lang::Integer
) arg2
, const Kernel::PassedDyn
& dyn
) const
396 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->val_
<= arg2
->val_
) );
399 RefCountPtr
< const Lang::Value
>
400 Ast::LessEqualExpr::impl( DUMMYANDREF( const Lang::Character
) arg1
, DUMMYANDREF( const Lang::Character
) arg2
, const Kernel::PassedDyn
& dyn
) const
402 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->val_
<= arg2
->val_
) );
405 RefCountPtr
< const Lang::Value
>
406 Ast::LessEqualExpr::impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const
408 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->get( ) <= arg2
->get( ) ) );
412 RefCountPtr
< const Lang::Value
>
413 Ast::GreaterEqualExpr::impl( DUMMYANDREF( const Lang::Symbol
) arg1
, DUMMYANDREF( const Lang::Symbol
) arg2
, const Kernel::PassedDyn
& dyn
) const
415 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( *arg1
>= *arg2
) );
418 RefCountPtr
< const Lang::Value
>
419 Ast::GreaterEqualExpr::impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const
421 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->val_
>= arg2
->val_
) );
424 RefCountPtr
< const Lang::Value
>
425 Ast::GreaterEqualExpr::impl( DUMMYANDREF( const Lang::Integer
) arg1
, DUMMYANDREF( const Lang::Integer
) arg2
, const Kernel::PassedDyn
& dyn
) const
427 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->val_
>= arg2
->val_
) );
430 RefCountPtr
< const Lang::Value
>
431 Ast::GreaterEqualExpr::impl( DUMMYANDREF( const Lang::Character
) arg1
, DUMMYANDREF( const Lang::Character
) arg2
, const Kernel::PassedDyn
& dyn
) const
433 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->val_
>= arg2
->val_
) );
436 RefCountPtr
< const Lang::Value
>
437 Ast::GreaterEqualExpr::impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const
439 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->get( ) >= arg2
->get( ) ) );
443 RefCountPtr
< const Lang::Value
>
444 Ast::AndExpr::impl( DUMMYANDREF( const Lang::Boolean
) arg1
, DUMMYANDREF( const Lang::Boolean
) arg2
, const Kernel::PassedDyn
& dyn
) const
446 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->val_
&& arg2
->val_
) );
450 RefCountPtr
< const Lang::Value
>
451 Ast::OrExpr::impl( DUMMYANDREF( const Lang::Boolean
) arg1
, DUMMYANDREF( const Lang::Boolean
) arg2
, const Kernel::PassedDyn
& dyn
) const
453 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->val_
|| arg2
->val_
) );
457 RefCountPtr
< const Lang::Value
>
458 Ast::XorExpr::impl( DUMMYANDREF( const Lang::Boolean
) arg1
, DUMMYANDREF( const Lang::Boolean
) arg2
, const Kernel::PassedDyn
& dyn
) const
460 return RefCountPtr
< const Lang::Value
>( new Lang::Boolean( arg1
->val_
^ arg2
->val_
) );