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
21 #include "Shapes_Lang_decls.h"
30 class NegExpr
: public UnaryPrefixExpr
33 NegExpr( const Ast::SourceLocation
& loc
, const Ast::SourceLocation
& opLoc
, Ast::Expression
* expr
) : UnaryPrefixExpr( loc
, opLoc
, expr
) { }
34 NegExpr( const Ast::SourceLocation
& opLoc
, Ast::Expression
* expr
) : UnaryPrefixExpr( opLoc
, expr
) { }
35 UNARYCALLIMPL( CLASSTREE1_Float
);
36 UNARYCALLIMPL( CLASSTREE1_Integer
);
37 UNARYCALLIMPL( CLASSTREE1_Length
);
38 UNARYCALLIMPL( CLASSTREE1_FloatPair
);
39 UNARYCALLIMPL( CLASSTREE1_Coords2D
);
40 UNARYCALLIMPL( CLASSTREE1_FloatTriple
);
41 UNARYCALLIMPL( CLASSTREE1_Coords3D
);
43 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg
, const Kernel::PassedDyn
& dyn
) const;
44 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Integer
) arg
, const Kernel::PassedDyn
& dyn
) const;
45 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Length
) arg
, const Kernel::PassedDyn
& dyn
) const;
46 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::FloatPair
) arg
, const Kernel::PassedDyn
& dyn
) const;
47 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords2D
) arg
, const Kernel::PassedDyn
& dyn
) const;
48 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::FloatTriple
) arg
, const Kernel::PassedDyn
& dyn
) const;
49 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords3D
) arg
, const Kernel::PassedDyn
& dyn
) const;
52 class RelativeExpr
: public UnaryPrefixExpr
55 RelativeExpr( const Ast::SourceLocation
& loc
, const Ast::SourceLocation
& opLoc
, Ast::Expression
* expr
) : UnaryPrefixExpr( loc
, opLoc
, expr
) { }
56 UNARYCALLIMPL( CLASSTREE1_Length
);
57 UNARYCALLIMPL( CLASSTREE1_Coords2D
);
58 UNARYCALLIMPL( CLASSTREE1_Coords3D
);
60 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Length
) arg
, const Kernel::PassedDyn
& dyn
) const;
61 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords2D
) arg
, const Kernel::PassedDyn
& dyn
) const;
62 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords3D
) arg
, const Kernel::PassedDyn
& dyn
) const;
65 class NotExpr
: public UnaryPrefixExpr
68 NotExpr( const Ast::SourceLocation
& opLoc
, Ast::Expression
* expr
) : UnaryPrefixExpr( opLoc
, expr
) { }
69 UNARYCALLIMPL( CLASSTREE1_Boolean
);
71 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Boolean
) arg
, const Kernel::PassedDyn
& dyn
) const;
74 class CycleExpr
: public UnaryPostfixExpr
77 CycleExpr( const Ast::SourceLocation
& _opLoc
, Ast::Expression
* _expr
) : UnaryPostfixExpr( _opLoc
, _expr
) { }
78 UNARYCALLIMPL( CLASSTREE1_PathPoint2D
);
79 UNARYCALLIMPL( CLASSTREE1_Path2D
);
80 UNARYCALLIMPL( CLASSTREE1_PathPoint3D
);
81 UNARYCALLIMPL( CLASSTREE1_Path3D
);
83 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PathPoint2D
) arg
, const Kernel::PassedDyn
& dyn
) const;
84 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Path2D
) arg
, const Kernel::PassedDyn
& dyn
) const;
85 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PathPoint3D
) arg
, const Kernel::PassedDyn
& dyn
) const;
86 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Path3D
) arg
, const Kernel::PassedDyn
& dyn
) const;
89 class MinusMinusExpr
: public BinaryInfixExpr
92 MinusMinusExpr( const Ast::SourceLocation
& _opLoc
, Ast::Expression
* _expr1
, Ast::Expression
* _expr2
) : BinaryInfixExpr( _opLoc
, _expr1
, _expr2
) { }
93 CALLIMPL( CLASSTREE1_Float
, CLASSTREE2_Float
);
94 CALLIMPL( CLASSTREE1_Length
, CLASSTREE2_Length
);
95 CALLIMPL( CLASSTREE1_Coords2D
, CLASSTREE2_Coords2D
);
96 CALLIMPL( CLASSTREE1_Coords2D
, CLASSTREE2_PathPoint2D
);
97 CALLIMPL( CLASSTREE1_PathPoint2D
, CLASSTREE2_Coords2D
);
98 CALLIMPL( CLASSTREE1_Coords2D
, CLASSTREE2_Path2D
);
99 CALLIMPL( CLASSTREE1_Path2D
, CLASSTREE2_Coords2D
);
100 CALLIMPL( CLASSTREE1_PathPoint2D
, CLASSTREE2_PathPoint2D
);
101 CALLIMPL( CLASSTREE1_PathPoint2D
, CLASSTREE2_Path2D
);
102 CALLIMPL( CLASSTREE1_Path2D
, CLASSTREE2_PathPoint2D
);
103 CALLIMPL( CLASSTREE1_Path2D
, CLASSTREE2_Path2D
);
104 CALLIMPL( CLASSTREE1_PathSlider2D
, CLASSTREE2_PathSlider2D
);
105 CALLIMPL( CLASSTREE1_Coords3D
, CLASSTREE2_Coords3D
);
106 CALLIMPL( CLASSTREE1_Coords3D
, CLASSTREE2_PathPoint3D
);
107 CALLIMPL( CLASSTREE1_PathPoint3D
, CLASSTREE2_Coords3D
);
108 CALLIMPL( CLASSTREE1_Coords3D
, CLASSTREE2_Path3D
);
109 CALLIMPL( CLASSTREE1_Path3D
, CLASSTREE2_Coords3D
);
110 CALLIMPL( CLASSTREE1_PathPoint3D
, CLASSTREE2_PathPoint3D
);
111 CALLIMPL( CLASSTREE1_PathPoint3D
, CLASSTREE2_Path3D
);
112 CALLIMPL( CLASSTREE1_Path3D
, CLASSTREE2_PathPoint3D
);
113 CALLIMPL( CLASSTREE1_Path3D
, CLASSTREE2_Path3D
);
114 CALLIMPL( CLASSTREE1_PathSlider3D
, CLASSTREE2_PathSlider3D
);
116 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
117 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const;
118 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords2D
) arg1
, DUMMYANDREF( const Lang::Coords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
119 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords2D
) arg1
, DUMMYANDREF( const Lang::PathPoint2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
120 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PathPoint2D
) arg1
, DUMMYANDREF( const Lang::Coords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
121 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords2D
) arg1
, DUMMYANDREF( const Lang::Path2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
122 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Path2D
) arg1
, DUMMYANDREF( const Lang::Coords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
123 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PathPoint2D
) arg1
, DUMMYANDREF( const Lang::PathPoint2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
124 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PathPoint2D
) arg1
, DUMMYANDREF( const Lang::Path2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
125 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Path2D
) arg1
, DUMMYANDREF( const Lang::PathPoint2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
126 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Path2D
) arg1
, DUMMYANDREF( const Lang::Path2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
127 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PathSlider2D
) arg1
, DUMMYANDREF( const Lang::PathSlider2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
128 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords3D
) arg1
, DUMMYANDREF( const Lang::Coords3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
129 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords3D
) arg1
, DUMMYANDREF( const Lang::PathPoint3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
130 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PathPoint3D
) arg1
, DUMMYANDREF( const Lang::Coords3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
131 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords3D
) arg1
, DUMMYANDREF( const Lang::Path3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
132 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Path3D
) arg1
, DUMMYANDREF( const Lang::Coords3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
133 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PathPoint3D
) arg1
, DUMMYANDREF( const Lang::PathPoint3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
134 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PathPoint3D
) arg1
, DUMMYANDREF( const Lang::Path3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
135 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Path3D
) arg1
, DUMMYANDREF( const Lang::PathPoint3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
136 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Path3D
) arg1
, DUMMYANDREF( const Lang::Path3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
137 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PathSlider3D
) arg1
, DUMMYANDREF( const Lang::PathSlider3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
140 class PlusPlusExpr
: public BinaryInfixExpr
143 PlusPlusExpr( const Ast::SourceLocation
& _opLoc
, Ast::Expression
* _expr1
, Ast::Expression
* _expr2
) : BinaryInfixExpr( _opLoc
, _expr1
, _expr2
) { }
144 CALLIMPL( CLASSTREE1_Float
, CLASSTREE2_Float
);
145 CALLIMPL( CLASSTREE1_Length
, CLASSTREE2_Length
);
147 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
148 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const;
151 class AmpersandExpr
: public BinaryInfixExpr
154 AmpersandExpr( const Ast::SourceLocation
& _opLoc
, Ast::Expression
* _expr1
, Ast::Expression
* _expr2
) : BinaryInfixExpr( _opLoc
, _expr1
, _expr2
) { }
155 CALLIMPL( CLASSTREE1_Path2D
, CLASSTREE2_Path2D
);
156 CALLIMPL( CLASSTREE1_MultiPath2D
, CLASSTREE2_Path2D
);
157 CALLIMPL( CLASSTREE1_Path2D
, CLASSTREE2_MultiPath2D
);
158 CALLIMPL( CLASSTREE1_MultiPath2D
, CLASSTREE2_MultiPath2D
);
159 CALLIMPL( CLASSTREE1_Path3D
, CLASSTREE2_Path3D
);
160 CALLIMPL( CLASSTREE1_MultiPath3D
, CLASSTREE2_Path3D
);
161 CALLIMPL( CLASSTREE1_Path3D
, CLASSTREE2_MultiPath3D
);
162 CALLIMPL( CLASSTREE1_MultiPath3D
, CLASSTREE2_MultiPath3D
);
163 CALLIMPL( CLASSTREE1_DynamicBindings
, CLASSTREE2_DynamicBindings
);
164 CALLIMPL( CLASSTREE1_Drawable2D
, CLASSTREE2_Drawable2D
);
165 CALLIMPL( CLASSTREE1_Drawable3D
, CLASSTREE2_Drawable3D
);
167 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Path2D
) arg1
, DUMMYANDREF( const Lang::Path2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
168 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::MultiPath2D
) arg1
, DUMMYANDREF( const Lang::Path2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
169 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Path2D
) arg1
, DUMMYANDREF( const Lang::MultiPath2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
170 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::MultiPath2D
) arg1
, DUMMYANDREF( const Lang::MultiPath2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
171 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Path3D
) arg1
, DUMMYANDREF( const Lang::Path3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
172 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::MultiPath3D
) arg1
, DUMMYANDREF( const Lang::Path3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
173 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Path3D
) arg1
, DUMMYANDREF( const Lang::MultiPath3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
174 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::MultiPath3D
) arg1
, DUMMYANDREF( const Lang::MultiPath3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
175 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::DynamicBindings
) arg1
, DUMMYANDREF( const Lang::DynamicBindings
) arg2
, const Kernel::PassedDyn
& dyn
) const;
176 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Drawable2D
) arg1
, DUMMYANDREF( const Lang::Drawable2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
177 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Group2D
) arg1
, DUMMYANDREF( const Lang::Drawable2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
178 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Drawable3D
) arg1
, DUMMYANDREF( const Lang::Drawable3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
179 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Group3D
) arg1
, DUMMYANDREF( const Lang::Drawable3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
182 class PlusExpr
: public BinaryInfixExpr
185 PlusExpr( const Ast::SourceLocation
& _opLoc
, Ast::Expression
* _expr1
, Ast::Expression
* _expr2
) : BinaryInfixExpr( _opLoc
, _expr1
, _expr2
) { }
186 CALLIMPL( CLASSTREE1_Float
, CLASSTREE2_Float
);
187 CALLIMPL( CLASSTREE1_Integer
, CLASSTREE2_Integer
);
188 CALLIMPL( CLASSTREE1_Length
, CLASSTREE2_Length
);
189 CALLIMPL( CLASSTREE1_FloatPair
, CLASSTREE2_FloatPair
);
190 CALLIMPL( CLASSTREE1_Coords2D
, CLASSTREE2_Coords2D
);
191 CALLIMPL( CLASSTREE1_FloatTriple
, CLASSTREE2_FloatTriple
);
192 CALLIMPL( CLASSTREE1_Coords3D
, CLASSTREE2_Coords3D
);
193 CALLIMPL( CLASSTREE1_String
, CLASSTREE2_String
);
194 CALLIMPL( CLASSTREE1_Dash
, CLASSTREE2_Length
);
195 CALLIMPL( CLASSTREE1_Length
, CLASSTREE2_Dash
);
196 CALLIMPL( CLASSTREE1_PathSlider2D
, CLASSTREE2_Float
);
197 CALLIMPL( CLASSTREE1_PathSlider2D
, CLASSTREE2_Length
);
198 CALLIMPL( CLASSTREE1_PathSlider3D
, CLASSTREE2_Float
);
199 CALLIMPL( CLASSTREE1_PathSlider3D
, CLASSTREE2_Length
);
200 CALLIMPL( CLASSTREE1_RGB
, CLASSTREE2_RGB
);
201 CALLIMPL( CLASSTREE1_Gray
, CLASSTREE2_Gray
);
202 CALLIMPL( CLASSTREE1_SpecularReflection
, CLASSTREE2_SpecularReflection
);
204 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
205 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Integer
) arg1
, DUMMYANDREF( const Lang::Integer
) arg2
, const Kernel::PassedDyn
& dyn
) const;
206 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const;
207 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::FloatPair
) arg1
, DUMMYANDREF( const Lang::FloatPair
) arg2
, const Kernel::PassedDyn
& dyn
) const;
208 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords2D
) arg1
, DUMMYANDREF( const Lang::Coords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
209 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::FloatTriple
) arg1
, DUMMYANDREF( const Lang::FloatTriple
) arg2
, const Kernel::PassedDyn
& dyn
) const;
210 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords3D
) arg1
, DUMMYANDREF( const Lang::Coords3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
211 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::String
) arg1
, DUMMYANDREF( const Lang::String
) arg2
, const Kernel::PassedDyn
& dyn
) const;
212 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Dash
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const;
213 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::Dash
) arg2
, const Kernel::PassedDyn
& dyn
) const;
214 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PathSlider2D
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
215 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PathSlider2D
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const;
216 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PathSlider3D
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
217 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PathSlider3D
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const;
218 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::RGB
) arg1
, DUMMYANDREF( const Lang::RGB
) arg2
, const Kernel::PassedDyn
& dyn
) const;
219 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Gray
) arg1
, DUMMYANDREF( const Lang::Gray
) arg2
, const Kernel::PassedDyn
& dyn
) const;
220 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::SpecularReflection
) arg1
, DUMMYANDREF( const Lang::SpecularReflection
) arg2
, const Kernel::PassedDyn
& dyn
) const;
223 class MinusExpr
: public BinaryInfixExpr
226 MinusExpr( const Ast::SourceLocation
& _opLoc
, Ast::Expression
* _expr1
, Ast::Expression
* _expr2
) : BinaryInfixExpr( _opLoc
, _expr1
, _expr2
) { }
227 CALLIMPL( CLASSTREE1_Float
, CLASSTREE2_Float
);
228 CALLIMPL( CLASSTREE1_Integer
, CLASSTREE2_Integer
);
229 CALLIMPL( CLASSTREE1_Length
, CLASSTREE2_Length
);
230 CALLIMPL( CLASSTREE1_FloatPair
, CLASSTREE2_FloatPair
);
231 CALLIMPL( CLASSTREE1_Coords2D
, CLASSTREE2_Coords2D
);
232 CALLIMPL( CLASSTREE1_FloatTriple
, CLASSTREE2_FloatTriple
);
233 CALLIMPL( CLASSTREE1_Coords3D
, CLASSTREE2_Coords3D
);
234 CALLIMPL( CLASSTREE1_PathSlider2D
, CLASSTREE2_Float
);
235 CALLIMPL( CLASSTREE1_PathSlider2D
, CLASSTREE2_Length
);
236 CALLIMPL( CLASSTREE1_PathSlider3D
, CLASSTREE2_Float
);
237 CALLIMPL( CLASSTREE1_PathSlider3D
, CLASSTREE2_Length
);
239 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
240 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Integer
) arg1
, DUMMYANDREF( const Lang::Integer
) arg2
, const Kernel::PassedDyn
& dyn
) const;
241 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const;
242 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::FloatPair
) arg1
, DUMMYANDREF( const Lang::FloatPair
) arg2
, const Kernel::PassedDyn
& dyn
) const;
243 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords2D
) arg1
, DUMMYANDREF( const Lang::Coords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
244 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::FloatTriple
) arg1
, DUMMYANDREF( const Lang::FloatTriple
) arg2
, const Kernel::PassedDyn
& dyn
) const;
245 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords3D
) arg1
, DUMMYANDREF( const Lang::Coords3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
246 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PathSlider2D
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
247 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PathSlider2D
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const;
248 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PathSlider3D
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
249 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PathSlider3D
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const;
252 class AngleExpr
: public BinaryInfixExpr
255 AngleExpr( const Ast::SourceLocation
& _opLoc
, Ast::Expression
* _expr1
, Ast::Expression
* _expr2
) : BinaryInfixExpr( _opLoc
, _expr1
, _expr2
) { }
256 CALLIMPL( CLASSTREE1_Float
, CLASSTREE2_Float
);
257 CALLIMPL( CLASSTREE1_Float
, CLASSTREE2_Length
);
258 CALLIMPL( CLASSTREE1_Length
, CLASSTREE2_Float
);
259 CALLIMPL( CLASSTREE1_Length
, CLASSTREE2_Length
);
260 CALLIMPL( CLASSTREE1_FloatPair
, CLASSTREE2_FloatPair
);
261 CALLIMPL( CLASSTREE1_FloatPair
, CLASSTREE2_Coords2D
);
262 CALLIMPL( CLASSTREE1_Coords2D
, CLASSTREE2_FloatPair
);
263 CALLIMPL( CLASSTREE1_Coords2D
, CLASSTREE2_Coords2D
);
264 CALLIMPL( CLASSTREE1_FloatTriple
, CLASSTREE2_FloatTriple
);
265 CALLIMPL( CLASSTREE1_FloatTriple
, CLASSTREE2_Coords3D
);
266 CALLIMPL( CLASSTREE1_Coords3D
, CLASSTREE2_FloatTriple
);
267 CALLIMPL( CLASSTREE1_Coords3D
, CLASSTREE2_Coords3D
);
269 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
270 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const;
271 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
272 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const;
273 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::FloatPair
) arg1
, DUMMYANDREF( const Lang::FloatPair
) arg2
, const Kernel::PassedDyn
& dyn
) const;
274 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::FloatPair
) arg1
, DUMMYANDREF( const Lang::Coords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
275 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords2D
) arg1
, DUMMYANDREF( const Lang::FloatPair
) arg2
, const Kernel::PassedDyn
& dyn
) const;
276 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords2D
) arg1
, DUMMYANDREF( const Lang::Coords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
277 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::FloatTriple
) arg1
, DUMMYANDREF( const Lang::FloatTriple
) arg2
, const Kernel::PassedDyn
& dyn
) const;
278 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::FloatTriple
) arg1
, DUMMYANDREF( const Lang::Coords3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
279 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords3D
) arg1
, DUMMYANDREF( const Lang::FloatTriple
) arg2
, const Kernel::PassedDyn
& dyn
) const;
280 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords3D
) arg1
, DUMMYANDREF( const Lang::Coords3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
283 class AmpersandMoreExpr
: public BinaryInfixExpr
286 AmpersandMoreExpr( const Ast::SourceLocation
& _opLoc
, Ast::Expression
* _expr1
, Ast::Expression
* _expr2
) : BinaryInfixExpr( _opLoc
, _expr1
, _expr2
) { }
287 CALLIMPL( CLASSTREE1_DynamicBindings
, CLASSTREE2_DynamicBindings
);
289 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::DynamicBindings
) arg1
, DUMMYANDREF( const Lang::DynamicBindings
) arg2
, const Kernel::PassedDyn
& dyn
) const;
292 class StarExpr
: public BinaryInfixExpr
295 StarExpr( const Ast::SourceLocation
& _opLoc
, Ast::Expression
* _expr1
, Ast::Expression
* _expr2
) : BinaryInfixExpr( _opLoc
, _expr1
, _expr2
) { }
296 CALLIMPL( CLASSTREE1_Float
, CLASSTREE2_Float
);
297 CALLIMPL( CLASSTREE1_FloatPair
, CLASSTREE2_FloatPair
);
298 CALLIMPL( CLASSTREE1_FloatPair
, CLASSTREE2_Float
);
299 CALLIMPL( CLASSTREE1_Float
, CLASSTREE2_FloatPair
);
300 CALLIMPL( CLASSTREE1_FloatTriple
, CLASSTREE2_FloatTriple
);
301 CALLIMPL( CLASSTREE1_FloatTriple
, CLASSTREE2_Float
);
302 CALLIMPL( CLASSTREE1_Float
, CLASSTREE2_FloatTriple
);
303 CALLIMPL( CLASSTREE1_Length
, CLASSTREE2_Float
);
304 CALLIMPL( CLASSTREE1_Float
, CLASSTREE2_Length
);
305 CALLIMPL( CLASSTREE1_Coords2D
, CLASSTREE2_Float
);
306 CALLIMPL( CLASSTREE1_Float
, CLASSTREE2_Coords2D
);
307 CALLIMPL( CLASSTREE1_Coords2D
, CLASSTREE2_FloatPair
);
308 CALLIMPL( CLASSTREE1_FloatPair
, CLASSTREE2_Coords2D
);
309 CALLIMPL( CLASSTREE1_FloatPair
, CLASSTREE2_Length
);
310 CALLIMPL( CLASSTREE1_Length
, CLASSTREE2_FloatPair
);
311 CALLIMPL( CLASSTREE1_Coords3D
, CLASSTREE2_Float
);
312 CALLIMPL( CLASSTREE1_Float
, CLASSTREE2_Coords3D
);
313 CALLIMPL( CLASSTREE1_Coords3D
, CLASSTREE2_FloatTriple
);
314 CALLIMPL( CLASSTREE1_FloatTriple
, CLASSTREE2_Coords3D
);
315 CALLIMPL( CLASSTREE1_FloatTriple
, CLASSTREE2_Length
);
316 CALLIMPL( CLASSTREE1_Length
, CLASSTREE2_FloatTriple
);
317 CALLIMPL( CLASSTREE1_Dash
, CLASSTREE2_Float
);
318 CALLIMPL( CLASSTREE1_Float
, CLASSTREE2_Dash
);
319 CALLIMPL( CLASSTREE1_Transform2D
, CLASSTREE2_Transform2D
);
320 CALLIMPL( CLASSTREE1_Transform3D
, CLASSTREE2_Transform3D
);
321 CALLIMPL( CLASSTREE1_Float
, CLASSTREE2_RGB
);
322 CALLIMPL( CLASSTREE1_RGB
, CLASSTREE2_Float
);
323 CALLIMPL( CLASSTREE1_Float
, CLASSTREE2_Gray
);
324 CALLIMPL( CLASSTREE1_Gray
, CLASSTREE2_Float
);
325 CALLIMPL( CLASSTREE1_Float
, CLASSTREE2_SpecularReflection
);
326 CALLIMPL( CLASSTREE1_SpecularReflection
, CLASSTREE2_Float
);
327 CALLIMPL( CLASSTREE1_Integer
, CLASSTREE2_Integer
);
328 CALLIMPL( CLASSTREE1_Float
, CLASSTREE2_Integer
);
329 CALLIMPL( CLASSTREE1_Integer
, CLASSTREE2_Float
);
330 CALLIMPL( CLASSTREE1_Length
, CLASSTREE2_Integer
);
331 CALLIMPL( CLASSTREE1_Integer
, CLASSTREE2_Length
);
333 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
334 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::FloatPair
) arg1
, DUMMYANDREF( const Lang::FloatPair
) arg2
, const Kernel::PassedDyn
& dyn
) const;
335 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::FloatPair
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
336 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::FloatPair
) arg2
, const Kernel::PassedDyn
& dyn
) const;
337 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::FloatTriple
) arg1
, DUMMYANDREF( const Lang::FloatTriple
) arg2
, const Kernel::PassedDyn
& dyn
) const;
338 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::FloatTriple
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
339 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::FloatTriple
) arg2
, const Kernel::PassedDyn
& dyn
) const;
340 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
341 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const;
342 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords2D
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
343 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Coords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
344 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords2D
) arg1
, DUMMYANDREF( const Lang::FloatPair
) arg2
, const Kernel::PassedDyn
& dyn
) const;
345 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::FloatPair
) arg1
, DUMMYANDREF( const Lang::Coords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
346 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::FloatPair
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const;
347 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::FloatPair
) arg2
, const Kernel::PassedDyn
& dyn
) const;
348 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords3D
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
349 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Coords3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
350 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords3D
) arg1
, DUMMYANDREF( const Lang::FloatTriple
) arg2
, const Kernel::PassedDyn
& dyn
) const;
351 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::FloatTriple
) arg1
, DUMMYANDREF( const Lang::Coords3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
352 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::FloatTriple
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const;
353 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::FloatTriple
) arg2
, const Kernel::PassedDyn
& dyn
) const;
354 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Dash
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
355 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Dash
) arg2
, const Kernel::PassedDyn
& dyn
) const;
356 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Transform2D
) arg1
, DUMMYANDREF( const Lang::Transform2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
357 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Transform3D
) arg1
, DUMMYANDREF( const Lang::Transform3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
358 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::RGB
) arg2
, const Kernel::PassedDyn
& dyn
) const;
359 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::RGB
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
360 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Gray
) arg2
, const Kernel::PassedDyn
& dyn
) const;
361 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Gray
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
362 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::SpecularReflection
) arg2
, const Kernel::PassedDyn
& dyn
) const;
363 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::SpecularReflection
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
364 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Integer
) arg1
, DUMMYANDREF( const Lang::Integer
) arg2
, const Kernel::PassedDyn
& dyn
) const;
365 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Integer
) arg2
, const Kernel::PassedDyn
& dyn
) const;
366 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Integer
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
367 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::Integer
) arg2
, const Kernel::PassedDyn
& dyn
) const;
368 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Integer
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const;
371 class SlashExpr
: public BinaryInfixExpr
374 SlashExpr( const Ast::SourceLocation
& _opLoc
, Ast::Expression
* _expr1
, Ast::Expression
* _expr2
) : BinaryInfixExpr( _opLoc
, _expr1
, _expr2
) { }
375 CALLIMPL( CLASSTREE1_Float
, CLASSTREE2_Float
);
376 CALLIMPL( CLASSTREE1_Length
, CLASSTREE2_Length
);
377 CALLIMPL( CLASSTREE1_Length
, CLASSTREE2_Float
);
378 CALLIMPL( CLASSTREE1_FloatPair
, CLASSTREE2_Float
);
379 CALLIMPL( CLASSTREE1_Coords2D
, CLASSTREE2_Length
);
380 CALLIMPL( CLASSTREE1_Coords2D
, CLASSTREE2_Float
);
381 CALLIMPL( CLASSTREE1_FloatTriple
, CLASSTREE2_Float
);
382 CALLIMPL( CLASSTREE1_Coords3D
, CLASSTREE2_Length
);
383 CALLIMPL( CLASSTREE1_Coords3D
, CLASSTREE2_Float
);
384 CALLIMPL( CLASSTREE1_Integer
, CLASSTREE2_Integer
);
385 CALLIMPL( CLASSTREE1_Float
, CLASSTREE2_Integer
);
386 CALLIMPL( CLASSTREE1_Length
, CLASSTREE2_Integer
);
388 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
389 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const;
390 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
391 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::FloatPair
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
392 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords2D
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const;
393 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords2D
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
394 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::FloatTriple
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
395 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords3D
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const;
396 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords3D
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
397 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Integer
) arg1
, DUMMYANDREF( const Lang::Integer
) arg2
, const Kernel::PassedDyn
& dyn
) const;
398 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Integer
) arg2
, const Kernel::PassedDyn
& dyn
) const;
399 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::Integer
) arg2
, const Kernel::PassedDyn
& dyn
) const;
402 class ProjectionExpr
: public BinaryInfixExpr
405 ProjectionExpr( const Ast::SourceLocation
& _opLoc
, Ast::Expression
* _expr1
, Ast::Expression
* _expr2
) : BinaryInfixExpr( _opLoc
, _expr1
, _expr2
) { }
406 CALLIMPL( CLASSTREE1_FloatPair
, CLASSTREE2_FloatPair
);
407 CALLIMPL( CLASSTREE1_FloatPair
, CLASSTREE2_Coords2D
);
408 CALLIMPL( CLASSTREE1_Coords2D
, CLASSTREE2_FloatPair
);
409 CALLIMPL( CLASSTREE1_Coords2D
, CLASSTREE2_Coords2D
);
410 CALLIMPL( CLASSTREE1_FloatTriple
, CLASSTREE2_FloatTriple
);
411 CALLIMPL( CLASSTREE1_FloatTriple
, CLASSTREE2_Coords3D
);
412 CALLIMPL( CLASSTREE1_Coords3D
, CLASSTREE2_FloatTriple
);
413 CALLIMPL( CLASSTREE1_Coords3D
, CLASSTREE2_Coords3D
);
415 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::FloatPair
) arg1
, DUMMYANDREF( const Lang::FloatPair
) arg2
, const Kernel::PassedDyn
& dyn
) const;
416 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::FloatPair
) arg1
, DUMMYANDREF( const Lang::Coords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
417 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords2D
) arg1
, DUMMYANDREF( const Lang::FloatPair
) arg2
, const Kernel::PassedDyn
& dyn
) const;
418 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords2D
) arg1
, DUMMYANDREF( const Lang::Coords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
419 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::FloatTriple
) arg1
, DUMMYANDREF( const Lang::FloatTriple
) arg2
, const Kernel::PassedDyn
& dyn
) const;
420 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::FloatTriple
) arg1
, DUMMYANDREF( const Lang::Coords3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
421 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords3D
) arg1
, DUMMYANDREF( const Lang::FloatTriple
) arg2
, const Kernel::PassedDyn
& dyn
) const;
422 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords3D
) arg1
, DUMMYANDREF( const Lang::Coords3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
425 class ComposeExpr
: public BinaryInfixExpr
428 ComposeExpr( const Ast::SourceLocation
& _opLoc
, Ast::Expression
* _expr1
, Ast::Expression
* _expr2
) : BinaryInfixExpr( _opLoc
, _expr1
, _expr2
) { }
429 CALLIMPL( CLASSTREE1_Transform2D
, CLASSTREE2_Transform2D
);
430 CALLIMPL( CLASSTREE1_Transform3D
, CLASSTREE2_Transform3D
);
431 CALLIMPL( CLASSTREE1_Function
, CLASSTREE2_Function
);
433 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Transform2D
) arg1
, DUMMYANDREF( const Lang::Transform2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
434 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Transform3D
) arg1
, DUMMYANDREF( const Lang::Transform3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
435 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Function
) arg1
, DUMMYANDREF( const Lang::Function
) arg2
, const Kernel::PassedDyn
& dyn
) const;
438 class LessExpr
: public BinaryInfixExpr
441 LessExpr( const Ast::SourceLocation
& _opLoc
, Ast::Expression
* _expr1
, Ast::Expression
* _expr2
) : BinaryInfixExpr( _opLoc
, _expr1
, _expr2
) { }
442 CALLIMPL( CLASSTREE1_Symbol
, CLASSTREE2_Symbol
);
443 CALLIMPL( CLASSTREE1_Float
, CLASSTREE2_Float
);
444 CALLIMPL( CLASSTREE1_Integer
, CLASSTREE2_Integer
);
445 CALLIMPL( CLASSTREE1_Length
, CLASSTREE2_Length
);
446 CALLIMPL( CLASSTREE1_Coords2D
, CLASSTREE2_Coords2D
);
447 CALLIMPL( CLASSTREE1_Coords2D
, CLASSTREE2_PathPoint2D
);
448 CALLIMPL( CLASSTREE1_Coords2D
, CLASSTREE2_PathSlider2D
);
449 CALLIMPL( CLASSTREE1_PolarHandleBase
, CLASSTREE2_Coords2D
);
450 CALLIMPL( CLASSTREE1_PolarHandleBase
, CLASSTREE2_PathPoint2D
);
451 CALLIMPL( CLASSTREE1_PolarHandleBase
, CLASSTREE2_PathSlider2D
);
452 CALLIMPL( CLASSTREE1_Coords3D
, CLASSTREE2_Coords3D
);
453 CALLIMPL( CLASSTREE1_Coords3D
, CLASSTREE2_PathPoint3D
);
454 CALLIMPL( CLASSTREE1_Coords3D
, CLASSTREE2_PathSlider3D
);
456 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Symbol
) arg1
, DUMMYANDREF( const Lang::Symbol
) arg2
, const Kernel::PassedDyn
& dyn
) const;
457 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
458 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Integer
) arg1
, DUMMYANDREF( const Lang::Integer
) arg2
, const Kernel::PassedDyn
& dyn
) const;
459 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const;
460 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords2D
) arg1
, DUMMYANDREF( const Lang::Coords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
461 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords2D
) arg1
, DUMMYANDREF( const Lang::PathPoint2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
462 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords2D
) arg1
, DUMMYANDREF( const Lang::PathSlider2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
463 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PolarHandleBase
) arg1
, DUMMYANDREF( const Lang::Coords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
464 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PolarHandleBase
) arg1
, DUMMYANDREF( const Lang::PathPoint2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
465 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PolarHandleBase
) arg1
, DUMMYANDREF( const Lang::PathSlider2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
466 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::CornerCoords2D
) arg1
, DUMMYANDREF( const Lang::Coords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
467 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::CornerCoords2D
) arg1
, DUMMYANDREF( const Lang::PathPoint2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
468 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords3D
) arg1
, DUMMYANDREF( const Lang::Coords3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
469 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords3D
) arg1
, DUMMYANDREF( const Lang::PathPoint3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
470 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords3D
) arg1
, DUMMYANDREF( const Lang::PathSlider3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
473 class GreaterExpr
: public BinaryInfixExpr
476 GreaterExpr( const Ast::SourceLocation
& _opLoc
, Ast::Expression
* _expr1
, Ast::Expression
* _expr2
) : BinaryInfixExpr( _opLoc
, _expr1
, _expr2
) { }
477 CALLIMPL( CLASSTREE1_Symbol
, CLASSTREE2_Symbol
);
478 CALLIMPL( CLASSTREE1_Float
, CLASSTREE2_Float
);
479 CALLIMPL( CLASSTREE1_Integer
, CLASSTREE2_Integer
);
480 CALLIMPL( CLASSTREE1_Length
, CLASSTREE2_Length
);
481 CALLIMPL( CLASSTREE1_Coords2D
, CLASSTREE2_Coords2D
);
482 CALLIMPL( CLASSTREE1_PathPoint2D
, CLASSTREE2_Coords2D
);
483 CALLIMPL( CLASSTREE1_PathSlider2D
, CLASSTREE2_Coords2D
);
484 CALLIMPL( CLASSTREE1_Coords2D
, CLASSTREE2_PolarHandleBase
);
485 CALLIMPL( CLASSTREE1_PathPoint2D
, CLASSTREE2_PolarHandleBase
);
486 CALLIMPL( CLASSTREE1_PathSlider2D
, CLASSTREE2_PolarHandleBase
);
487 CALLIMPL( CLASSTREE1_Coords3D
, CLASSTREE2_Coords3D
);
488 CALLIMPL( CLASSTREE1_PathPoint3D
, CLASSTREE2_Coords3D
);
489 CALLIMPL( CLASSTREE1_PathSlider3D
, CLASSTREE2_Coords3D
);
491 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Symbol
) arg1
, DUMMYANDREF( const Lang::Symbol
) arg2
, const Kernel::PassedDyn
& dyn
) const;
492 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
493 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Integer
) arg1
, DUMMYANDREF( const Lang::Integer
) arg2
, const Kernel::PassedDyn
& dyn
) const;
494 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const;
495 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords2D
) arg1
, DUMMYANDREF( const Lang::Coords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
496 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PathPoint2D
) arg1
, DUMMYANDREF( const Lang::Coords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
497 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PathSlider2D
) arg1
, DUMMYANDREF( const Lang::Coords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
498 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords2D
) arg1
, DUMMYANDREF( const Lang::PolarHandleBase
) arg2
, const Kernel::PassedDyn
& dyn
) const;
499 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PathPoint2D
) arg1
, DUMMYANDREF( const Lang::PolarHandleBase
) arg2
, const Kernel::PassedDyn
& dyn
) const;
500 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PathSlider2D
) arg1
, DUMMYANDREF( const Lang::PolarHandleBase
) arg2
, const Kernel::PassedDyn
& dyn
) const;
501 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords2D
) arg1
, DUMMYANDREF( const Lang::CornerCoords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
502 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PathPoint2D
) arg1
, DUMMYANDREF( const Lang::CornerCoords2D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
503 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Coords3D
) arg1
, DUMMYANDREF( const Lang::Coords3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
504 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PathPoint3D
) arg1
, DUMMYANDREF( const Lang::Coords3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
505 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::PathSlider3D
) arg1
, DUMMYANDREF( const Lang::Coords3D
) arg2
, const Kernel::PassedDyn
& dyn
) const;
508 class EqualExpr
: public BinaryInfixExpr
511 EqualExpr( const Ast::SourceLocation
& _opLoc
, Ast::Expression
* _expr1
, Ast::Expression
* _expr2
) : BinaryInfixExpr( _opLoc
, _expr1
, _expr2
) { }
512 CALLIMPL( CLASSTREE1_Symbol
, CLASSTREE2_Symbol
);
513 CALLIMPL( CLASSTREE1_Float
, CLASSTREE2_Float
);
514 CALLIMPL( CLASSTREE1_Integer
, CLASSTREE2_Integer
);
515 CALLIMPL( CLASSTREE1_Length
, CLASSTREE2_Length
);
516 CALLIMPL( CLASSTREE1_Class
, CLASSTREE2_Class
);
518 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Symbol
) arg1
, DUMMYANDREF( const Lang::Symbol
) arg2
, const Kernel::PassedDyn
& dyn
) const;
519 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
520 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Integer
) arg1
, DUMMYANDREF( const Lang::Integer
) arg2
, const Kernel::PassedDyn
& dyn
) const;
521 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const;
522 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Class
) arg1
, DUMMYANDREF( const Lang::Class
) arg2
, const Kernel::PassedDyn
& dyn
) const;
525 class NotEqualExpr
: public BinaryInfixExpr
528 NotEqualExpr( const Ast::SourceLocation
& _opLoc
, Ast::Expression
* _expr1
, Ast::Expression
* _expr2
) : BinaryInfixExpr( _opLoc
, _expr1
, _expr2
) { }
529 CALLIMPL( CLASSTREE1_Symbol
, CLASSTREE2_Symbol
);
530 CALLIMPL( CLASSTREE1_Float
, CLASSTREE2_Float
);
531 CALLIMPL( CLASSTREE1_Integer
, CLASSTREE2_Integer
);
532 CALLIMPL( CLASSTREE1_Length
, CLASSTREE2_Length
);
533 CALLIMPL( CLASSTREE1_Class
, CLASSTREE2_Class
);
535 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Symbol
) arg1
, DUMMYANDREF( const Lang::Symbol
) arg2
, const Kernel::PassedDyn
& dyn
) const;
536 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
537 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Integer
) arg1
, DUMMYANDREF( const Lang::Integer
) arg2
, const Kernel::PassedDyn
& dyn
) const;
538 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const;
539 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Class
) arg1
, DUMMYANDREF( const Lang::Class
) arg2
, const Kernel::PassedDyn
& dyn
) const;
542 class LessEqualExpr
: public BinaryInfixExpr
545 LessEqualExpr( const Ast::SourceLocation
& _opLoc
, Ast::Expression
* _expr1
, Ast::Expression
* _expr2
) : BinaryInfixExpr( _opLoc
, _expr1
, _expr2
) { }
546 CALLIMPL( CLASSTREE1_Symbol
, CLASSTREE2_Symbol
);
547 CALLIMPL( CLASSTREE1_Float
, CLASSTREE2_Float
);
548 CALLIMPL( CLASSTREE1_Integer
, CLASSTREE2_Integer
);
549 CALLIMPL( CLASSTREE1_Length
, CLASSTREE2_Length
);
551 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Symbol
) arg1
, DUMMYANDREF( const Lang::Symbol
) arg2
, const Kernel::PassedDyn
& dyn
) const;
552 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
553 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Integer
) arg1
, DUMMYANDREF( const Lang::Integer
) arg2
, const Kernel::PassedDyn
& dyn
) const;
554 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const;
557 class GreaterEqualExpr
: public BinaryInfixExpr
560 GreaterEqualExpr( const Ast::SourceLocation
& _opLoc
, Ast::Expression
* _expr1
, Ast::Expression
* _expr2
) : BinaryInfixExpr( _opLoc
, _expr1
, _expr2
) { }
561 CALLIMPL( CLASSTREE1_Symbol
, CLASSTREE2_Symbol
);
562 CALLIMPL( CLASSTREE1_Float
, CLASSTREE2_Float
);
563 CALLIMPL( CLASSTREE1_Integer
, CLASSTREE2_Integer
);
564 CALLIMPL( CLASSTREE1_Length
, CLASSTREE2_Length
);
566 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Symbol
) arg1
, DUMMYANDREF( const Lang::Symbol
) arg2
, const Kernel::PassedDyn
& dyn
) const;
567 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Float
) arg1
, DUMMYANDREF( const Lang::Float
) arg2
, const Kernel::PassedDyn
& dyn
) const;
568 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Integer
) arg1
, DUMMYANDREF( const Lang::Integer
) arg2
, const Kernel::PassedDyn
& dyn
) const;
569 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Length
) arg1
, DUMMYANDREF( const Lang::Length
) arg2
, const Kernel::PassedDyn
& dyn
) const;
572 class AndExpr
: public BinaryInfixExpr
575 AndExpr( const Ast::SourceLocation
& _opLoc
, Ast::Expression
* _expr1
, Ast::Expression
* _expr2
) : BinaryInfixExpr( _opLoc
, _expr1
, _expr2
) { }
576 CALLIMPL( CLASSTREE1_Boolean
, CLASSTREE2_Boolean
);
578 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Boolean
) arg1
, DUMMYANDREF( const Lang::Boolean
) arg2
, const Kernel::PassedDyn
& dyn
) const;
581 class OrExpr
: public BinaryInfixExpr
584 OrExpr( const Ast::SourceLocation
& _opLoc
, Ast::Expression
* _expr1
, Ast::Expression
* _expr2
) : BinaryInfixExpr( _opLoc
, _expr1
, _expr2
) { }
585 CALLIMPL( CLASSTREE1_Boolean
, CLASSTREE2_Boolean
);
587 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Boolean
) arg1
, DUMMYANDREF( const Lang::Boolean
) arg2
, const Kernel::PassedDyn
& dyn
) const;
590 class XorExpr
: public BinaryInfixExpr
593 XorExpr( const Ast::SourceLocation
& _opLoc
, Ast::Expression
* _expr1
, Ast::Expression
* _expr2
) : BinaryInfixExpr( _opLoc
, _expr1
, _expr2
) { }
594 CALLIMPL( CLASSTREE1_Boolean
, CLASSTREE2_Boolean
);
596 RefCountPtr
< const Lang::Value
> impl( DUMMYANDREF( const Lang::Boolean
) arg1
, DUMMYANDREF( const Lang::Boolean
) arg2
, const Kernel::PassedDyn
& dyn
) const;