annotate trunk/src/Expressions.d @ 83:9e6d66f647c9

- Fix: IsExpression was created instead of IdentityExpression. - Added code for parsing Slice- and IndexExpression.
author aziz
date Wed, 04 Jul 2007 23:00:01 +0000
parents aa1ea2548dd9
children ac8d961d10d1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
1 /++
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
2 Author: Aziz Köksal
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
3 License: GPL2
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
4 +/
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
5 module Expressions;
71
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
6 import Token;
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
7
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
8 class Expression
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
9 {
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
10
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
11 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
12
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
13 class BinaryExpression : Expression
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
14 {
71
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
15 Expression left, right;
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
16 TOK tok;
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
17 this(Expression left, Expression right, TOK tok)
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
18 {
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
19 this.left = left;
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
20 this.right = right;
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
21 this.tok = tok;
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
22 }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
23 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
24
72
f75e359f939f - Added parseExpression() method.
aziz
parents: 71
diff changeset
25 class CondExpression : BinaryExpression
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
26 {
72
f75e359f939f - Added parseExpression() method.
aziz
parents: 71
diff changeset
27 Expression condition;
f75e359f939f - Added parseExpression() method.
aziz
parents: 71
diff changeset
28 this(Expression condition, Expression left, Expression right)
f75e359f939f - Added parseExpression() method.
aziz
parents: 71
diff changeset
29 {
f75e359f939f - Added parseExpression() method.
aziz
parents: 71
diff changeset
30 this.condition = condition;
f75e359f939f - Added parseExpression() method.
aziz
parents: 71
diff changeset
31 super(left, right, TOK.Comma);
f75e359f939f - Added parseExpression() method.
aziz
parents: 71
diff changeset
32 }
f75e359f939f - Added parseExpression() method.
aziz
parents: 71
diff changeset
33 }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
34
72
f75e359f939f - Added parseExpression() method.
aziz
parents: 71
diff changeset
35 class CommaExpression : BinaryExpression
f75e359f939f - Added parseExpression() method.
aziz
parents: 71
diff changeset
36 {
f75e359f939f - Added parseExpression() method.
aziz
parents: 71
diff changeset
37 this(Expression left, Expression right)
f75e359f939f - Added parseExpression() method.
aziz
parents: 71
diff changeset
38 { super(left, right, TOK.Comma); }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
39 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
40
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
41 class OrOrExpression : BinaryExpression
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
42 {
71
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
43 this(Expression left, Expression right)
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
44 { super(left, right, TOK.OrLogical); }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
45 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
46
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
47 class AndAndExpression : BinaryExpression
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
48 {
71
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
49 this(Expression left, Expression right)
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
50 { super(left, right, TOK.AndLogical); }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
51 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
52
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
53 class OrExpression : BinaryExpression
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
54 {
71
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
55 this(Expression left, Expression right)
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
56 { super(left, right, TOK.OrBinary); }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
57 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
58
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
59 class XorExpression : BinaryExpression
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
60 {
71
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
61 this(Expression left, Expression right)
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
62 { super(left, right, TOK.Xor); }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
63 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
64
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
65 class AndExpression : BinaryExpression
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
66 {
71
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
67 this(Expression left, Expression right)
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
68 { super(left, right, TOK.AndBinary); }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
69 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
71 class CmpExpression : BinaryExpression
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
72 {
71
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
73 this(Expression left, Expression right, TOK tok)
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
74 { super(left, right, tok); }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
75 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
76
71
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
77 class EqualExpression : CmpExpression
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
78 {
71
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
79 this(Expression left, Expression right, TOK tok)
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
80 { super(left, right, TOK.Equal); }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
81 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
82
83
9e6d66f647c9 - Fix: IsExpression was created instead of IdentityExpression.
aziz
parents: 81
diff changeset
83 class IdentityExpression : CmpExpression
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
84 {
71
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
85 this(Expression left, Expression right, TOK tok)
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
86 { super(left, right, tok); }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
87 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
88
71
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
89 class RelExpression : CmpExpression
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
90 {
71
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
91 this(Expression left, Expression right, TOK tok)
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
92 { super(left, right, tok); }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
93 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
94
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
95 class InExpression : BinaryExpression
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
96 {
71
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
97 this(Expression left, Expression right, TOK tok)
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
98 { super(left, right, TOK.In); }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
99 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
100
75
3f976d9e0833 - Implemented parseShiftExpression().
aziz
parents: 74
diff changeset
101 class LShiftExpression : BinaryExpression
3f976d9e0833 - Implemented parseShiftExpression().
aziz
parents: 74
diff changeset
102 {
3f976d9e0833 - Implemented parseShiftExpression().
aziz
parents: 74
diff changeset
103 this(Expression left, Expression right)
3f976d9e0833 - Implemented parseShiftExpression().
aziz
parents: 74
diff changeset
104 { super(left, right, TOK.LShiftAssign); }
3f976d9e0833 - Implemented parseShiftExpression().
aziz
parents: 74
diff changeset
105 }
3f976d9e0833 - Implemented parseShiftExpression().
aziz
parents: 74
diff changeset
106
3f976d9e0833 - Implemented parseShiftExpression().
aziz
parents: 74
diff changeset
107 class RShiftExpression : BinaryExpression
3f976d9e0833 - Implemented parseShiftExpression().
aziz
parents: 74
diff changeset
108 {
3f976d9e0833 - Implemented parseShiftExpression().
aziz
parents: 74
diff changeset
109 this(Expression left, Expression right)
3f976d9e0833 - Implemented parseShiftExpression().
aziz
parents: 74
diff changeset
110 { super(left, right, TOK.RShiftAssign); }
3f976d9e0833 - Implemented parseShiftExpression().
aziz
parents: 74
diff changeset
111 }
3f976d9e0833 - Implemented parseShiftExpression().
aziz
parents: 74
diff changeset
112
3f976d9e0833 - Implemented parseShiftExpression().
aziz
parents: 74
diff changeset
113 class URShiftExpression : BinaryExpression
3f976d9e0833 - Implemented parseShiftExpression().
aziz
parents: 74
diff changeset
114 {
3f976d9e0833 - Implemented parseShiftExpression().
aziz
parents: 74
diff changeset
115 this(Expression left, Expression right)
3f976d9e0833 - Implemented parseShiftExpression().
aziz
parents: 74
diff changeset
116 { super(left, right, TOK.URShiftAssign); }
3f976d9e0833 - Implemented parseShiftExpression().
aziz
parents: 74
diff changeset
117 }
3f976d9e0833 - Implemented parseShiftExpression().
aziz
parents: 74
diff changeset
118
76
a85f9edf6ce7 - Implemented parseAddExpression().
aziz
parents: 75
diff changeset
119 class PlusExpression : BinaryExpression
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
120 {
76
a85f9edf6ce7 - Implemented parseAddExpression().
aziz
parents: 75
diff changeset
121 this(Expression left, Expression right)
a85f9edf6ce7 - Implemented parseAddExpression().
aziz
parents: 75
diff changeset
122 { super(left, right, TOK.Plus); }
a85f9edf6ce7 - Implemented parseAddExpression().
aziz
parents: 75
diff changeset
123 }
a85f9edf6ce7 - Implemented parseAddExpression().
aziz
parents: 75
diff changeset
124
a85f9edf6ce7 - Implemented parseAddExpression().
aziz
parents: 75
diff changeset
125 class MinusExpression : BinaryExpression
a85f9edf6ce7 - Implemented parseAddExpression().
aziz
parents: 75
diff changeset
126 {
a85f9edf6ce7 - Implemented parseAddExpression().
aziz
parents: 75
diff changeset
127 this(Expression left, Expression right)
a85f9edf6ce7 - Implemented parseAddExpression().
aziz
parents: 75
diff changeset
128 { super(left, right, TOK.Minus); }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
129 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
130
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
131 class MulExpression : BinaryExpression
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
132 {
77
7e21c4df1c02 - Implemented parseMulExpression().
aziz
parents: 76
diff changeset
133 this(Expression left, Expression right)
7e21c4df1c02 - Implemented parseMulExpression().
aziz
parents: 76
diff changeset
134 { super(left, right, TOK.Mul); }
7e21c4df1c02 - Implemented parseMulExpression().
aziz
parents: 76
diff changeset
135 }
7e21c4df1c02 - Implemented parseMulExpression().
aziz
parents: 76
diff changeset
136
7e21c4df1c02 - Implemented parseMulExpression().
aziz
parents: 76
diff changeset
137 class DivExpression : BinaryExpression
7e21c4df1c02 - Implemented parseMulExpression().
aziz
parents: 76
diff changeset
138 {
7e21c4df1c02 - Implemented parseMulExpression().
aziz
parents: 76
diff changeset
139 this(Expression left, Expression right)
7e21c4df1c02 - Implemented parseMulExpression().
aziz
parents: 76
diff changeset
140 { super(left, right, TOK.Div); }
7e21c4df1c02 - Implemented parseMulExpression().
aziz
parents: 76
diff changeset
141 }
7e21c4df1c02 - Implemented parseMulExpression().
aziz
parents: 76
diff changeset
142
7e21c4df1c02 - Implemented parseMulExpression().
aziz
parents: 76
diff changeset
143 class ModExpression : BinaryExpression
7e21c4df1c02 - Implemented parseMulExpression().
aziz
parents: 76
diff changeset
144 {
7e21c4df1c02 - Implemented parseMulExpression().
aziz
parents: 76
diff changeset
145 this(Expression left, Expression right)
7e21c4df1c02 - Implemented parseMulExpression().
aziz
parents: 76
diff changeset
146 { super(left, right, TOK.Mod); }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
147 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
148
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
149 class CatExpression : BinaryExpression
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
150 {
76
a85f9edf6ce7 - Implemented parseAddExpression().
aziz
parents: 75
diff changeset
151 this(Expression left, Expression right)
71
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
152 { super(left, right, TOK.Catenate); }
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
153 }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
154
71
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
155 class AssignExpression : BinaryExpression
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
156 {
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
157 this(Expression left, Expression right)
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
158 { super(left, right, TOK.Assign); }
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
159 }
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
160 class LShiftAssignExpression : BinaryExpression
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
161 {
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
162 this(Expression left, Expression right)
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
163 { super(left, right, TOK.LShiftAssign); }
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
164 }
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
165 class RShiftAssignExpression : BinaryExpression
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
166 {
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
167 this(Expression left, Expression right)
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
168 { super(left, right, TOK.RShiftAssign); }
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
169 }
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
170 class URShiftAssignExpression : BinaryExpression
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
171 {
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
172 this(Expression left, Expression right)
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
173 { super(left, right, TOK.URShiftAssign); }
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
174 }
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
175 class OrAssignExpression : BinaryExpression
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
176 {
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
177 this(Expression left, Expression right)
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
178 { super(left, right, TOK.OrAssign); }
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
179 }
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
180 class AndAssignExpression : BinaryExpression
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
181 {
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
182 this(Expression left, Expression right)
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
183 { super(left, right, TOK.AndAssign); }
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
184 }
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
185 class PlusAssignExpression : BinaryExpression
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
186 {
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
187 this(Expression left, Expression right)
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
188 { super(left, right, TOK.PlusAssign); }
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
189 }
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
190 class MinusAssignExpression : BinaryExpression
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
191 {
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
192 this(Expression left, Expression right)
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
193 { super(left, right, TOK.MinusAssign); }
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
194 }
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
195 class DivAssignExpression : BinaryExpression
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
196 {
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
197 this(Expression left, Expression right)
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
198 { super(left, right, TOK.DivAssign); }
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
199 }
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
200 class MulAssignExpression : BinaryExpression
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
201 {
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
202 this(Expression left, Expression right)
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
203 { super(left, right, TOK.MulAssign); }
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
204 }
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
205 class ModAssignExpression : BinaryExpression
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
206 {
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
207 this(Expression left, Expression right)
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
208 { super(left, right, TOK.ModAssign); }
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
209 }
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
210 class XorAssignExpression : BinaryExpression
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
211 {
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
212 this(Expression left, Expression right)
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
213 { super(left, right, TOK.XorAssign); }
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
214 }
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
215 class CatAssignExpression : BinaryExpression
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
216 {
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
217 this(Expression left, Expression right)
b3777cca323c - Added Identity and NotIdentity tokens.
aziz
parents: 70
diff changeset
218 { super(left, right, TOK.CatAssign); }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
219 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
220
78
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
221 class UnaryExpression : Expression
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
222 {
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
223 Expression e;
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
224 this(Expression e)
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
225 { this.e = e; }
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
226 }
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
227
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
228 class AddressExpression : UnaryExpression
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
229 {
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
230 this(Expression e)
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
231 { super(e); }
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
232 }
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
233
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
234 class PreIncrExpression : UnaryExpression
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
235 {
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
236 this(Expression e)
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
237 { super(e); }
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
238 }
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
239
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
240 class PreDecrExpression : UnaryExpression
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
241 {
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
242 this(Expression e)
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
243 { super(e); }
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
244 }
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
245
79
df4e5c7ad58a - Implemented most of parsePostExpression() and parsePreExpression().
aziz
parents: 78
diff changeset
246 class PostIncrExpression : UnaryExpression
df4e5c7ad58a - Implemented most of parsePostExpression() and parsePreExpression().
aziz
parents: 78
diff changeset
247 {
df4e5c7ad58a - Implemented most of parsePostExpression() and parsePreExpression().
aziz
parents: 78
diff changeset
248 this(Expression e)
df4e5c7ad58a - Implemented most of parsePostExpression() and parsePreExpression().
aziz
parents: 78
diff changeset
249 { super(e); }
df4e5c7ad58a - Implemented most of parsePostExpression() and parsePreExpression().
aziz
parents: 78
diff changeset
250 }
df4e5c7ad58a - Implemented most of parsePostExpression() and parsePreExpression().
aziz
parents: 78
diff changeset
251
df4e5c7ad58a - Implemented most of parsePostExpression() and parsePreExpression().
aziz
parents: 78
diff changeset
252 class PostDecrExpression : UnaryExpression
df4e5c7ad58a - Implemented most of parsePostExpression() and parsePreExpression().
aziz
parents: 78
diff changeset
253 {
df4e5c7ad58a - Implemented most of parsePostExpression() and parsePreExpression().
aziz
parents: 78
diff changeset
254 this(Expression e)
df4e5c7ad58a - Implemented most of parsePostExpression() and parsePreExpression().
aziz
parents: 78
diff changeset
255 { super(e); }
df4e5c7ad58a - Implemented most of parsePostExpression() and parsePreExpression().
aziz
parents: 78
diff changeset
256 }
df4e5c7ad58a - Implemented most of parsePostExpression() and parsePreExpression().
aziz
parents: 78
diff changeset
257
78
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
258 class DerefExpression : UnaryExpression
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
259 {
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
260 this(Expression e)
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
261 { super(e); }
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
262 }
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
263
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
264 class SignExpression : UnaryExpression
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
265 {
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
266 TOK sign;
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
267 this(Expression e, TOK sign)
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
268 {
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
269 super(e);
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
270 this.sign = sign;
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
271 }
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
272 }
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
273
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
274 class NotExpression : UnaryExpression
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
275 {
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
276 this(Expression e)
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
277 { super(e); }
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
278 }
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
279
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
280 class CompExpression : UnaryExpression
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
281 {
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
282 this(Expression e)
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
283 { super(e); }
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
284 }
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
285
81
aa1ea2548dd9 - Fixed parseExpression() method.
aziz
parents: 79
diff changeset
286 class DotExpression : UnaryExpression
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
287 {
78
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
288 this(Expression e)
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
289 { super(e); }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
290 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
291
81
aa1ea2548dd9 - Fixed parseExpression() method.
aziz
parents: 79
diff changeset
292 class DotIdExpression : UnaryExpression
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
293 {
78
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
294 this(Expression e)
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
295 { super(e); }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
296 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
297
81
aa1ea2548dd9 - Fixed parseExpression() method.
aziz
parents: 79
diff changeset
298 class CallExpression : UnaryExpression
aa1ea2548dd9 - Fixed parseExpression() method.
aziz
parents: 79
diff changeset
299 {
aa1ea2548dd9 - Fixed parseExpression() method.
aziz
parents: 79
diff changeset
300 Expression[] args;
aa1ea2548dd9 - Fixed parseExpression() method.
aziz
parents: 79
diff changeset
301 this(Expression e, Expression[] args)
aa1ea2548dd9 - Fixed parseExpression() method.
aziz
parents: 79
diff changeset
302 {
aa1ea2548dd9 - Fixed parseExpression() method.
aziz
parents: 79
diff changeset
303 super(e);
aa1ea2548dd9 - Fixed parseExpression() method.
aziz
parents: 79
diff changeset
304 this.args = args;
aa1ea2548dd9 - Fixed parseExpression() method.
aziz
parents: 79
diff changeset
305 }
aa1ea2548dd9 - Fixed parseExpression() method.
aziz
parents: 79
diff changeset
306 }
aa1ea2548dd9 - Fixed parseExpression() method.
aziz
parents: 79
diff changeset
307
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
308 class NewExpression : UnaryExpression
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
309 {
78
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
310 this(Expression e)
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
311 { super(e); }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
312 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
313
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
314 class DeleteExpression : UnaryExpression
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
315 {
78
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
316 this(Expression e)
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
317 { super(e); }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
318 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
319
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
320 class CastExpression : UnaryExpression
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
321 {
78
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
322 this(Expression e)
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
323 { super(e); }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
324 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
325
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
326 class AnonClassExpression : UnaryExpression
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
327 {
78
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
328 this(Expression e)
f043759fb59a - Added code to parseUnaryExpression(); not fully implemented.
aziz
parents: 77
diff changeset
329 { super(e); }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
330 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
331
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
332 class PrimaryExpression
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
333 {
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
334
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
335 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
336
83
9e6d66f647c9 - Fix: IsExpression was created instead of IdentityExpression.
aziz
parents: 81
diff changeset
337 class IndexExpression : UnaryExpression
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
338 {
83
9e6d66f647c9 - Fix: IsExpression was created instead of IdentityExpression.
aziz
parents: 81
diff changeset
339 Expression[] args;
9e6d66f647c9 - Fix: IsExpression was created instead of IdentityExpression.
aziz
parents: 81
diff changeset
340 this(Expression e, Expression[] args)
9e6d66f647c9 - Fix: IsExpression was created instead of IdentityExpression.
aziz
parents: 81
diff changeset
341 {
9e6d66f647c9 - Fix: IsExpression was created instead of IdentityExpression.
aziz
parents: 81
diff changeset
342 super(e);
9e6d66f647c9 - Fix: IsExpression was created instead of IdentityExpression.
aziz
parents: 81
diff changeset
343 this.args = args;
9e6d66f647c9 - Fix: IsExpression was created instead of IdentityExpression.
aziz
parents: 81
diff changeset
344 }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
345 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
346
83
9e6d66f647c9 - Fix: IsExpression was created instead of IdentityExpression.
aziz
parents: 81
diff changeset
347 class SliceExpression : UnaryExpression
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
348 {
83
9e6d66f647c9 - Fix: IsExpression was created instead of IdentityExpression.
aziz
parents: 81
diff changeset
349 Expression left, right;
9e6d66f647c9 - Fix: IsExpression was created instead of IdentityExpression.
aziz
parents: 81
diff changeset
350 this(Expression e, Expression left, Expression right)
9e6d66f647c9 - Fix: IsExpression was created instead of IdentityExpression.
aziz
parents: 81
diff changeset
351 {
9e6d66f647c9 - Fix: IsExpression was created instead of IdentityExpression.
aziz
parents: 81
diff changeset
352 super(e);
9e6d66f647c9 - Fix: IsExpression was created instead of IdentityExpression.
aziz
parents: 81
diff changeset
353 this.left = left;
9e6d66f647c9 - Fix: IsExpression was created instead of IdentityExpression.
aziz
parents: 81
diff changeset
354 this.right = right;
9e6d66f647c9 - Fix: IsExpression was created instead of IdentityExpression.
aziz
parents: 81
diff changeset
355 }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
356 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
357
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
358 class AssertExpression
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
359 {
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
360
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
361 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
362
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
363 class MixinExpression
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
364 {
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
365
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
366 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
367
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
368 class ImportExpression
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
369 {
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
370
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
371 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
372
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
373 class TypeIdExpression
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
374 {
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
375
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
376 }
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
377
74
30b0fb85dda9 - Implemented parseCmpExpression().
aziz
parents: 72
diff changeset
378 class IsExpression : CmpExpression
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
379 {
74
30b0fb85dda9 - Implemented parseCmpExpression().
aziz
parents: 72
diff changeset
380 this(Expression left, Expression right, TOK tok)
30b0fb85dda9 - Implemented parseCmpExpression().
aziz
parents: 72
diff changeset
381 { super(left, right, tok); }
70
0d3ef6daec04 - Added Expression class stubs.
aziz
parents:
diff changeset
382 }