annotate trunk/src/Statements.d @ 264:50cc74026ea8

- Changed some string types to Token*.
author aziz
date Fri, 03 Aug 2007 17:51:02 +0000
parents 966756c5d5d3
children c19b68a4e3db
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
102
6e8b67ae15b7 - Added modules Declarations and Statements.
aziz
parents:
diff changeset
1 /++
6e8b67ae15b7 - Added modules Declarations and Statements.
aziz
parents:
diff changeset
2 Author: Aziz Köksal
249
32d354584b28 - Upgraded license notices to GPL3.
aziz
parents: 245
diff changeset
3 License: GPL3
102
6e8b67ae15b7 - Added modules Declarations and Statements.
aziz
parents:
diff changeset
4 +/
6e8b67ae15b7 - Added modules Declarations and Statements.
aziz
parents:
diff changeset
5 module Statements;
240
deab661906ae - Classes Declaration, Expression, Statement and Type inherit from Node now.
aziz
parents: 238
diff changeset
6 import SyntaxTree;
162
c7b250662c74 - Added class ScopeStatement.
aziz
parents: 161
diff changeset
7 import Expressions;
185
35c93b776be0 - Added code for parsing MixinStatements.
aziz
parents: 184
diff changeset
8 import Declarations;
162
c7b250662c74 - Added class ScopeStatement.
aziz
parents: 161
diff changeset
9 import Types;
169
4666a05dfacf - Implemented parseForeachStatement().
aziz
parents: 166
diff changeset
10 import Token;
102
6e8b67ae15b7 - Added modules Declarations and Statements.
aziz
parents:
diff changeset
11
240
deab661906ae - Classes Declaration, Expression, Statement and Type inherit from Node now.
aziz
parents: 238
diff changeset
12 class Statement : Node
102
6e8b67ae15b7 - Added modules Declarations and Statements.
aziz
parents:
diff changeset
13 {
240
deab661906ae - Classes Declaration, Expression, Statement and Type inherit from Node now.
aziz
parents: 238
diff changeset
14 this()
deab661906ae - Classes Declaration, Expression, Statement and Type inherit from Node now.
aziz
parents: 238
diff changeset
15 {
deab661906ae - Classes Declaration, Expression, Statement and Type inherit from Node now.
aziz
parents: 238
diff changeset
16 super(NodeType.Expression);
deab661906ae - Classes Declaration, Expression, Statement and Type inherit from Node now.
aziz
parents: 238
diff changeset
17 }
102
6e8b67ae15b7 - Added modules Declarations and Statements.
aziz
parents:
diff changeset
18 }
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
19
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
20 class Statements : Statement
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
21 {
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
22 Statement[] ss;
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
23 void opCatAssign(Statement s)
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
24 {
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
25 this.ss ~= s;
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
26 }
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
27 }
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
28
206
f9f5c0949a06 - Added method start().
aziz
parents: 201
diff changeset
29 class IllegalStatement : Statement
f9f5c0949a06 - Added method start().
aziz
parents: 201
diff changeset
30 {
250
1b9494591ad6 - Changed type of member tok to Token*.
aziz
parents: 249
diff changeset
31 Token* tok;
1b9494591ad6 - Changed type of member tok to Token*.
aziz
parents: 249
diff changeset
32 this(Token* tok)
206
f9f5c0949a06 - Added method start().
aziz
parents: 201
diff changeset
33 {
f9f5c0949a06 - Added method start().
aziz
parents: 201
diff changeset
34 this.tok = tok;
f9f5c0949a06 - Added method start().
aziz
parents: 201
diff changeset
35 }
f9f5c0949a06 - Added method start().
aziz
parents: 201
diff changeset
36 }
f9f5c0949a06 - Added method start().
aziz
parents: 201
diff changeset
37
216
984d48932bce - Added class EmptyStatement.
aziz
parents: 206
diff changeset
38 class EmptyStatement : Statement
984d48932bce - Added class EmptyStatement.
aziz
parents: 206
diff changeset
39 {
984d48932bce - Added class EmptyStatement.
aziz
parents: 206
diff changeset
40 this()
984d48932bce - Added class EmptyStatement.
aziz
parents: 206
diff changeset
41 {
984d48932bce - Added class EmptyStatement.
aziz
parents: 206
diff changeset
42 }
984d48932bce - Added class EmptyStatement.
aziz
parents: 206
diff changeset
43 }
984d48932bce - Added class EmptyStatement.
aziz
parents: 206
diff changeset
44
192
5c898f80b436 - Started implementation of parseDeclaration().
aziz
parents: 190
diff changeset
45 class FunctionBody
5c898f80b436 - Started implementation of parseDeclaration().
aziz
parents: 190
diff changeset
46 {
5c898f80b436 - Started implementation of parseDeclaration().
aziz
parents: 190
diff changeset
47 Statement funcBody, inBody, outBody;
264
50cc74026ea8 - Changed some string types to Token*.
aziz
parents: 261
diff changeset
48 Token* outIdent;
192
5c898f80b436 - Started implementation of parseDeclaration().
aziz
parents: 190
diff changeset
49 }
5c898f80b436 - Started implementation of parseDeclaration().
aziz
parents: 190
diff changeset
50
162
c7b250662c74 - Added class ScopeStatement.
aziz
parents: 161
diff changeset
51 class ScopeStatement : Statement
c7b250662c74 - Added class ScopeStatement.
aziz
parents: 161
diff changeset
52 {
c7b250662c74 - Added class ScopeStatement.
aziz
parents: 161
diff changeset
53 Statement s;
c7b250662c74 - Added class ScopeStatement.
aziz
parents: 161
diff changeset
54 this(Statement s)
c7b250662c74 - Added class ScopeStatement.
aziz
parents: 161
diff changeset
55 {
c7b250662c74 - Added class ScopeStatement.
aziz
parents: 161
diff changeset
56 this.s = s;
c7b250662c74 - Added class ScopeStatement.
aziz
parents: 161
diff changeset
57 }
c7b250662c74 - Added class ScopeStatement.
aziz
parents: 161
diff changeset
58 }
c7b250662c74 - Added class ScopeStatement.
aziz
parents: 161
diff changeset
59
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
60 class LabeledStatement : Statement
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
61 {
264
50cc74026ea8 - Changed some string types to Token*.
aziz
parents: 261
diff changeset
62 Token* label;
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
63 Statement s;
264
50cc74026ea8 - Changed some string types to Token*.
aziz
parents: 261
diff changeset
64 this(Token* label, Statement s)
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
65 {
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
66 this.label = label;
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
67 this.s = s;
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
68 }
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
69 }
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
70
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
71 class ExpressionStatement : Statement
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
72 {
187
c977b8a78507 - Added code for parsing ExpressionStatement.
aziz
parents: 186
diff changeset
73 Expression expression;
c977b8a78507 - Added code for parsing ExpressionStatement.
aziz
parents: 186
diff changeset
74 this(Expression expression)
c977b8a78507 - Added code for parsing ExpressionStatement.
aziz
parents: 186
diff changeset
75 {
c977b8a78507 - Added code for parsing ExpressionStatement.
aziz
parents: 186
diff changeset
76 this.expression = expression;
c977b8a78507 - Added code for parsing ExpressionStatement.
aziz
parents: 186
diff changeset
77 }
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
78 }
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
79
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
80 class DeclarationStatement : Statement
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
81 {
188
5c6ebf9f60a9 - Added code for parsing DeclarationStatement.
aziz
parents: 187
diff changeset
82 Declaration declaration;
5c6ebf9f60a9 - Added code for parsing DeclarationStatement.
aziz
parents: 187
diff changeset
83 this(Declaration declaration)
5c6ebf9f60a9 - Added code for parsing DeclarationStatement.
aziz
parents: 187
diff changeset
84 {
5c6ebf9f60a9 - Added code for parsing DeclarationStatement.
aziz
parents: 187
diff changeset
85 this.declaration = declaration;
5c6ebf9f60a9 - Added code for parsing DeclarationStatement.
aziz
parents: 187
diff changeset
86 }
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
87 }
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
88
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
89 class IfStatement : Statement
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
90 {
162
c7b250662c74 - Added class ScopeStatement.
aziz
parents: 161
diff changeset
91 Type type;
253
4279b638c63e - Changed some string types to Token*. Adapted parser accordingly.
aziz
parents: 250
diff changeset
92 Token* ident;
162
c7b250662c74 - Added class ScopeStatement.
aziz
parents: 161
diff changeset
93 Expression condition;
c7b250662c74 - Added class ScopeStatement.
aziz
parents: 161
diff changeset
94 Statement ifBody;
c7b250662c74 - Added class ScopeStatement.
aziz
parents: 161
diff changeset
95 Statement elseBody;
253
4279b638c63e - Changed some string types to Token*. Adapted parser accordingly.
aziz
parents: 250
diff changeset
96 this(Type type, Token* ident, Expression condition, Statement ifBody, Statement elseBody)
162
c7b250662c74 - Added class ScopeStatement.
aziz
parents: 161
diff changeset
97 {
c7b250662c74 - Added class ScopeStatement.
aziz
parents: 161
diff changeset
98 this.type = type;
c7b250662c74 - Added class ScopeStatement.
aziz
parents: 161
diff changeset
99 this.ident = ident;
c7b250662c74 - Added class ScopeStatement.
aziz
parents: 161
diff changeset
100 this.condition = condition;
c7b250662c74 - Added class ScopeStatement.
aziz
parents: 161
diff changeset
101 this.ifBody = ifBody;
c7b250662c74 - Added class ScopeStatement.
aziz
parents: 161
diff changeset
102 this.elseBody = elseBody;
c7b250662c74 - Added class ScopeStatement.
aziz
parents: 161
diff changeset
103 }
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
104 }
261
966756c5d5d3 - Added begin variables and calls to set().
aziz
parents: 256
diff changeset
105 /+
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
106 class ConditionalStatement : Statement
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
107 {
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
108
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
109 }
261
966756c5d5d3 - Added begin variables and calls to set().
aziz
parents: 256
diff changeset
110 +/
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
111 class WhileStatement : Statement
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
112 {
164
8ec99326752b - Implemented parseWhileStatement().
aziz
parents: 162
diff changeset
113 Expression condition;
8ec99326752b - Implemented parseWhileStatement().
aziz
parents: 162
diff changeset
114 Statement whileBody;
8ec99326752b - Implemented parseWhileStatement().
aziz
parents: 162
diff changeset
115 this(Expression condition, Statement whileBody)
8ec99326752b - Implemented parseWhileStatement().
aziz
parents: 162
diff changeset
116 {
8ec99326752b - Implemented parseWhileStatement().
aziz
parents: 162
diff changeset
117 this.condition = condition;
8ec99326752b - Implemented parseWhileStatement().
aziz
parents: 162
diff changeset
118 this.whileBody = whileBody;
8ec99326752b - Implemented parseWhileStatement().
aziz
parents: 162
diff changeset
119 }
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
120 }
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
121
165
797074d143d7 - Implemented parseDoWhileStatement().
aziz
parents: 164
diff changeset
122 class DoWhileStatement : Statement
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
123 {
165
797074d143d7 - Implemented parseDoWhileStatement().
aziz
parents: 164
diff changeset
124 Expression condition;
797074d143d7 - Implemented parseDoWhileStatement().
aziz
parents: 164
diff changeset
125 Statement doBody;
797074d143d7 - Implemented parseDoWhileStatement().
aziz
parents: 164
diff changeset
126 this(Expression condition, Statement doBody)
797074d143d7 - Implemented parseDoWhileStatement().
aziz
parents: 164
diff changeset
127 {
797074d143d7 - Implemented parseDoWhileStatement().
aziz
parents: 164
diff changeset
128 this.condition = condition;
797074d143d7 - Implemented parseDoWhileStatement().
aziz
parents: 164
diff changeset
129 this.doBody = doBody;
797074d143d7 - Implemented parseDoWhileStatement().
aziz
parents: 164
diff changeset
130 }
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
131 }
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
132
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
133 class ForStatement : Statement
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
134 {
166
56334292a29e - Implemented parseForStatement().
aziz
parents: 165
diff changeset
135 Statement init;
56334292a29e - Implemented parseForStatement().
aziz
parents: 165
diff changeset
136 Expression condition, increment;
56334292a29e - Implemented parseForStatement().
aziz
parents: 165
diff changeset
137 Statement forBody;
169
4666a05dfacf - Implemented parseForeachStatement().
aziz
parents: 166
diff changeset
138
166
56334292a29e - Implemented parseForStatement().
aziz
parents: 165
diff changeset
139 this(Statement init, Expression condition, Expression increment, Statement forBody)
56334292a29e - Implemented parseForStatement().
aziz
parents: 165
diff changeset
140 {
56334292a29e - Implemented parseForStatement().
aziz
parents: 165
diff changeset
141 this.init = init;
56334292a29e - Implemented parseForStatement().
aziz
parents: 165
diff changeset
142 this.condition = condition;
56334292a29e - Implemented parseForStatement().
aziz
parents: 165
diff changeset
143 this.increment = increment;
56334292a29e - Implemented parseForStatement().
aziz
parents: 165
diff changeset
144 this.forBody = forBody;
56334292a29e - Implemented parseForStatement().
aziz
parents: 165
diff changeset
145 }
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
146 }
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
147
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
148 class ForeachStatement : Statement
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
149 {
169
4666a05dfacf - Implemented parseForeachStatement().
aziz
parents: 166
diff changeset
150 TOK tok;
4666a05dfacf - Implemented parseForeachStatement().
aziz
parents: 166
diff changeset
151 Parameters params;
4666a05dfacf - Implemented parseForeachStatement().
aziz
parents: 166
diff changeset
152 Expression aggregate;
4666a05dfacf - Implemented parseForeachStatement().
aziz
parents: 166
diff changeset
153 Statement forBody;
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
154
169
4666a05dfacf - Implemented parseForeachStatement().
aziz
parents: 166
diff changeset
155 this(TOK tok, Parameters params, Expression aggregate, Statement forBody)
4666a05dfacf - Implemented parseForeachStatement().
aziz
parents: 166
diff changeset
156 {
4666a05dfacf - Implemented parseForeachStatement().
aziz
parents: 166
diff changeset
157 this.tok = tok;
4666a05dfacf - Implemented parseForeachStatement().
aziz
parents: 166
diff changeset
158 this.params = params;
4666a05dfacf - Implemented parseForeachStatement().
aziz
parents: 166
diff changeset
159 this.aggregate = aggregate;
4666a05dfacf - Implemented parseForeachStatement().
aziz
parents: 166
diff changeset
160 this.forBody = forBody;
4666a05dfacf - Implemented parseForeachStatement().
aziz
parents: 166
diff changeset
161 }
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
162 }
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
163
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
164 class SwitchStatement : Statement
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
165 {
170
a63696d1c474 - Implemented parseSwitchStatement().
aziz
parents: 169
diff changeset
166 Expression condition;
a63696d1c474 - Implemented parseSwitchStatement().
aziz
parents: 169
diff changeset
167 Statement switchBody;
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
168
170
a63696d1c474 - Implemented parseSwitchStatement().
aziz
parents: 169
diff changeset
169 this(Expression condition, Statement switchBody)
a63696d1c474 - Implemented parseSwitchStatement().
aziz
parents: 169
diff changeset
170 {
a63696d1c474 - Implemented parseSwitchStatement().
aziz
parents: 169
diff changeset
171 this.condition = condition;
a63696d1c474 - Implemented parseSwitchStatement().
aziz
parents: 169
diff changeset
172 this.switchBody = switchBody;
a63696d1c474 - Implemented parseSwitchStatement().
aziz
parents: 169
diff changeset
173 }
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
174 }
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
175
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
176 class CaseStatement : Statement
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
177 {
171
f1fa9bbdb4cb - Implemented parseCaseStatement().
aziz
parents: 170
diff changeset
178 Expression[] values;
f1fa9bbdb4cb - Implemented parseCaseStatement().
aziz
parents: 170
diff changeset
179 Statement caseBody;
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
180
171
f1fa9bbdb4cb - Implemented parseCaseStatement().
aziz
parents: 170
diff changeset
181 this(Expression[] values, Statement caseBody)
f1fa9bbdb4cb - Implemented parseCaseStatement().
aziz
parents: 170
diff changeset
182 {
f1fa9bbdb4cb - Implemented parseCaseStatement().
aziz
parents: 170
diff changeset
183 this.values = values;
f1fa9bbdb4cb - Implemented parseCaseStatement().
aziz
parents: 170
diff changeset
184 this.caseBody = caseBody;
f1fa9bbdb4cb - Implemented parseCaseStatement().
aziz
parents: 170
diff changeset
185 }
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
186 }
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
187
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
188 class DefaultStatement : Statement
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
189 {
172
89d4519bd8a1 - Implemented parseDefaultStatement().
aziz
parents: 171
diff changeset
190 Statement defaultBody;
89d4519bd8a1 - Implemented parseDefaultStatement().
aziz
parents: 171
diff changeset
191 this(Statement defaultBody)
89d4519bd8a1 - Implemented parseDefaultStatement().
aziz
parents: 171
diff changeset
192 {
89d4519bd8a1 - Implemented parseDefaultStatement().
aziz
parents: 171
diff changeset
193 this.defaultBody = defaultBody;
89d4519bd8a1 - Implemented parseDefaultStatement().
aziz
parents: 171
diff changeset
194 }
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
195 }
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
196
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
197 class ContinueStatement : Statement
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
198 {
264
50cc74026ea8 - Changed some string types to Token*.
aziz
parents: 261
diff changeset
199 Token* ident;
50cc74026ea8 - Changed some string types to Token*.
aziz
parents: 261
diff changeset
200 this(Token* ident)
173
c2714ba44350 - Implemented parseContinueStatement().
aziz
parents: 172
diff changeset
201 {
c2714ba44350 - Implemented parseContinueStatement().
aziz
parents: 172
diff changeset
202 this.ident = ident;
c2714ba44350 - Implemented parseContinueStatement().
aziz
parents: 172
diff changeset
203 }
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
204 }
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
205
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
206 class BreakStatement : Statement
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
207 {
264
50cc74026ea8 - Changed some string types to Token*.
aziz
parents: 261
diff changeset
208 Token* ident;
50cc74026ea8 - Changed some string types to Token*.
aziz
parents: 261
diff changeset
209 this(Token* ident)
174
e51c9ee66ea0 - Implemented parseBreakStatement().
aziz
parents: 173
diff changeset
210 {
e51c9ee66ea0 - Implemented parseBreakStatement().
aziz
parents: 173
diff changeset
211 this.ident = ident;
e51c9ee66ea0 - Implemented parseBreakStatement().
aziz
parents: 173
diff changeset
212 }
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
213 }
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
214
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
215 class ReturnStatement : Statement
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
216 {
175
522df6f0f230 - Implemented parseReturnStatement().
aziz
parents: 174
diff changeset
217 Expression expr;
522df6f0f230 - Implemented parseReturnStatement().
aziz
parents: 174
diff changeset
218 this(Expression expr)
522df6f0f230 - Implemented parseReturnStatement().
aziz
parents: 174
diff changeset
219 {
522df6f0f230 - Implemented parseReturnStatement().
aziz
parents: 174
diff changeset
220 this.expr = expr;
522df6f0f230 - Implemented parseReturnStatement().
aziz
parents: 174
diff changeset
221 }
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
222 }
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
223
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
224 class GotoStatement : Statement
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
225 {
264
50cc74026ea8 - Changed some string types to Token*.
aziz
parents: 261
diff changeset
226 Token* ident;
176
3071522c0cf0 - Implemented parseGotoStatement().
aziz
parents: 175
diff changeset
227 Expression caseExpr;
264
50cc74026ea8 - Changed some string types to Token*.
aziz
parents: 261
diff changeset
228 this(Token* ident, Expression caseExpr)
176
3071522c0cf0 - Implemented parseGotoStatement().
aziz
parents: 175
diff changeset
229 {
3071522c0cf0 - Implemented parseGotoStatement().
aziz
parents: 175
diff changeset
230 this.ident = ident;
3071522c0cf0 - Implemented parseGotoStatement().
aziz
parents: 175
diff changeset
231 this.caseExpr = caseExpr;
3071522c0cf0 - Implemented parseGotoStatement().
aziz
parents: 175
diff changeset
232 }
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
233 }
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
234
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
235 class WithStatement : Statement
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
236 {
177
504b1b2f7c93 - Implemented parseWithStatement().
aziz
parents: 176
diff changeset
237 Expression expr;
504b1b2f7c93 - Implemented parseWithStatement().
aziz
parents: 176
diff changeset
238 Statement withBody;
504b1b2f7c93 - Implemented parseWithStatement().
aziz
parents: 176
diff changeset
239 this(Expression expr, Statement withBody)
504b1b2f7c93 - Implemented parseWithStatement().
aziz
parents: 176
diff changeset
240 {
504b1b2f7c93 - Implemented parseWithStatement().
aziz
parents: 176
diff changeset
241 this.expr = expr;
504b1b2f7c93 - Implemented parseWithStatement().
aziz
parents: 176
diff changeset
242 this.withBody = withBody;
504b1b2f7c93 - Implemented parseWithStatement().
aziz
parents: 176
diff changeset
243 }
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
244 }
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
245
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
246 class SynchronizedStatement : Statement
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
247 {
178
62718b29679e - Implemented parseSynchronizedStatement().
aziz
parents: 177
diff changeset
248 Expression expr;
62718b29679e - Implemented parseSynchronizedStatement().
aziz
parents: 177
diff changeset
249 Statement syncBody;
62718b29679e - Implemented parseSynchronizedStatement().
aziz
parents: 177
diff changeset
250 this(Expression expr, Statement withBody)
62718b29679e - Implemented parseSynchronizedStatement().
aziz
parents: 177
diff changeset
251 {
62718b29679e - Implemented parseSynchronizedStatement().
aziz
parents: 177
diff changeset
252 this.expr = expr;
62718b29679e - Implemented parseSynchronizedStatement().
aziz
parents: 177
diff changeset
253 this.syncBody = syncBody;
62718b29679e - Implemented parseSynchronizedStatement().
aziz
parents: 177
diff changeset
254 }
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
255 }
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
256
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
257 class TryStatement : Statement
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
258 {
179
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
259 Statement tryBody;
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
260 CatchBody[] catchBodies;
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
261 FinallyBody finallyBody;
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
262 this(Statement tryBody, CatchBody[] catchBodies, FinallyBody finallyBody)
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
263 {
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
264 this.tryBody = tryBody;
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
265 this.catchBodies = catchBodies;
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
266 this.finallyBody = finallyBody;
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
267 }
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
268 }
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
269
179
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
270 class CatchBody : Statement
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
271 {
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
272 Parameter param;
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
273 Statement catchBody;
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
274 this(Parameter param, Statement catchBody)
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
275 {
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
276 this.param = param;
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
277 this.catchBody = catchBody;
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
278 }
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
279 }
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
280
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
281 class FinallyBody : Statement
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
282 {
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
283 Statement finallyBody;
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
284 this(Statement finallyBody)
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
285 {
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
286 this.finallyBody = finallyBody;
507998c5c1ce - Implemented parseTryStatement().
aziz
parents: 178
diff changeset
287 }
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
288 }
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
289
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
290 class ScopeGuardStatement : Statement
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
291 {
264
50cc74026ea8 - Changed some string types to Token*.
aziz
parents: 261
diff changeset
292 Token* condition;
181
abfd51142477 - Implemented parseScopeGuardStatement().
aziz
parents: 180
diff changeset
293 Statement scopeBody;
264
50cc74026ea8 - Changed some string types to Token*.
aziz
parents: 261
diff changeset
294 this(Token* condition, Statement scopeBody)
181
abfd51142477 - Implemented parseScopeGuardStatement().
aziz
parents: 180
diff changeset
295 {
abfd51142477 - Implemented parseScopeGuardStatement().
aziz
parents: 180
diff changeset
296 this.condition = condition;
abfd51142477 - Implemented parseScopeGuardStatement().
aziz
parents: 180
diff changeset
297 this.scopeBody = scopeBody;
abfd51142477 - Implemented parseScopeGuardStatement().
aziz
parents: 180
diff changeset
298 }
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
299 }
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
300
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
301 class ThrowStatement : Statement
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
302 {
180
d5a67aa578a8 - Implemented parseThrowStatement().
aziz
parents: 179
diff changeset
303 Expression expr;
d5a67aa578a8 - Implemented parseThrowStatement().
aziz
parents: 179
diff changeset
304 this(Expression expr)
d5a67aa578a8 - Implemented parseThrowStatement().
aziz
parents: 179
diff changeset
305 {
d5a67aa578a8 - Implemented parseThrowStatement().
aziz
parents: 179
diff changeset
306 this.expr = expr;
d5a67aa578a8 - Implemented parseThrowStatement().
aziz
parents: 179
diff changeset
307 }
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
308 }
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
309
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
310 class VolatileStatement : Statement
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
311 {
182
673b355ba0e9 - Implemented parseVolatileStatement().
aziz
parents: 181
diff changeset
312 Statement volatileBody;
673b355ba0e9 - Implemented parseVolatileStatement().
aziz
parents: 181
diff changeset
313 this(Statement volatileBody)
673b355ba0e9 - Implemented parseVolatileStatement().
aziz
parents: 181
diff changeset
314 {
673b355ba0e9 - Implemented parseVolatileStatement().
aziz
parents: 181
diff changeset
315 this.volatileBody = volatileBody;
673b355ba0e9 - Implemented parseVolatileStatement().
aziz
parents: 181
diff changeset
316 }
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
317 }
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
318
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
319 class AsmStatement : Statement
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
320 {
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
321
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
322 }
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
323
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
324 class PragmaStatement : Statement
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
325 {
245
93d37f874658 - Changed type of pragma identifier to Token*.
aziz
parents: 240
diff changeset
326 Token* ident;
184
30a4c8522b09 - Implemented parsePragmaStatement().
aziz
parents: 182
diff changeset
327 Expression[] args;
30a4c8522b09 - Implemented parsePragmaStatement().
aziz
parents: 182
diff changeset
328 Statement pragmaBody;
245
93d37f874658 - Changed type of pragma identifier to Token*.
aziz
parents: 240
diff changeset
329 this(Token* ident, Expression[] args, Statement pragmaBody)
184
30a4c8522b09 - Implemented parsePragmaStatement().
aziz
parents: 182
diff changeset
330 {
30a4c8522b09 - Implemented parsePragmaStatement().
aziz
parents: 182
diff changeset
331 this.ident = ident;
30a4c8522b09 - Implemented parsePragmaStatement().
aziz
parents: 182
diff changeset
332 this.args = args;
30a4c8522b09 - Implemented parsePragmaStatement().
aziz
parents: 182
diff changeset
333 this.pragmaBody = pragmaBody;
30a4c8522b09 - Implemented parsePragmaStatement().
aziz
parents: 182
diff changeset
334 }
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
335 }
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
336
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
337 class MixinStatement : Statement
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
338 {
256
8f27920ae17a - Made parseMixinDeclaration() a template.
aziz
parents: 253
diff changeset
339 Expression[] templateIdent;
8f27920ae17a - Made parseMixinDeclaration() a template.
aziz
parents: 253
diff changeset
340 Token* mixinIdent;
8f27920ae17a - Made parseMixinDeclaration() a template.
aziz
parents: 253
diff changeset
341 this(Expression[] templateIdent, Token* mixinIdent)
185
35c93b776be0 - Added code for parsing MixinStatements.
aziz
parents: 184
diff changeset
342 {
256
8f27920ae17a - Made parseMixinDeclaration() a template.
aziz
parents: 253
diff changeset
343 this.templateIdent = templateIdent;
8f27920ae17a - Made parseMixinDeclaration() a template.
aziz
parents: 253
diff changeset
344 this.mixinIdent = mixinIdent;
185
35c93b776be0 - Added code for parsing MixinStatements.
aziz
parents: 184
diff changeset
345 }
161
82c5cfc7d6d3 - Started implementation of parsing statements.
aziz
parents: 102
diff changeset
346 }
186
d4292a5a7b8b - Implemented parseStaticIfStatement() and parseStaticAssertStatement().
aziz
parents: 185
diff changeset
347
d4292a5a7b8b - Implemented parseStaticIfStatement() and parseStaticAssertStatement().
aziz
parents: 185
diff changeset
348 class StaticIfStatement : Statement
d4292a5a7b8b - Implemented parseStaticIfStatement() and parseStaticAssertStatement().
aziz
parents: 185
diff changeset
349 {
d4292a5a7b8b - Implemented parseStaticIfStatement() and parseStaticAssertStatement().
aziz
parents: 185
diff changeset
350 Expression condition;
d4292a5a7b8b - Implemented parseStaticIfStatement() and parseStaticAssertStatement().
aziz
parents: 185
diff changeset
351 Statement ifBody, elseBody;
d4292a5a7b8b - Implemented parseStaticIfStatement() and parseStaticAssertStatement().
aziz
parents: 185
diff changeset
352 this(Expression condition, Statement ifBody, Statement elseBody)
d4292a5a7b8b - Implemented parseStaticIfStatement() and parseStaticAssertStatement().
aziz
parents: 185
diff changeset
353 {
d4292a5a7b8b - Implemented parseStaticIfStatement() and parseStaticAssertStatement().
aziz
parents: 185
diff changeset
354 this.condition = condition;
d4292a5a7b8b - Implemented parseStaticIfStatement() and parseStaticAssertStatement().
aziz
parents: 185
diff changeset
355 this.ifBody = ifBody;
d4292a5a7b8b - Implemented parseStaticIfStatement() and parseStaticAssertStatement().
aziz
parents: 185
diff changeset
356 this.elseBody = elseBody;
d4292a5a7b8b - Implemented parseStaticIfStatement() and parseStaticAssertStatement().
aziz
parents: 185
diff changeset
357 }
d4292a5a7b8b - Implemented parseStaticIfStatement() and parseStaticAssertStatement().
aziz
parents: 185
diff changeset
358 }
d4292a5a7b8b - Implemented parseStaticIfStatement() and parseStaticAssertStatement().
aziz
parents: 185
diff changeset
359
d4292a5a7b8b - Implemented parseStaticIfStatement() and parseStaticAssertStatement().
aziz
parents: 185
diff changeset
360 class StaticAssertStatement : Statement
d4292a5a7b8b - Implemented parseStaticIfStatement() and parseStaticAssertStatement().
aziz
parents: 185
diff changeset
361 {
d4292a5a7b8b - Implemented parseStaticIfStatement() and parseStaticAssertStatement().
aziz
parents: 185
diff changeset
362 Expression condition, message;
d4292a5a7b8b - Implemented parseStaticIfStatement() and parseStaticAssertStatement().
aziz
parents: 185
diff changeset
363 this(Expression condition, Expression message)
d4292a5a7b8b - Implemented parseStaticIfStatement() and parseStaticAssertStatement().
aziz
parents: 185
diff changeset
364 {
d4292a5a7b8b - Implemented parseStaticIfStatement() and parseStaticAssertStatement().
aziz
parents: 185
diff changeset
365 this.condition = condition;
d4292a5a7b8b - Implemented parseStaticIfStatement() and parseStaticAssertStatement().
aziz
parents: 185
diff changeset
366 this.message = message;
d4292a5a7b8b - Implemented parseStaticIfStatement() and parseStaticAssertStatement().
aziz
parents: 185
diff changeset
367 }
187
c977b8a78507 - Added code for parsing ExpressionStatement.
aziz
parents: 186
diff changeset
368 }
190
d0712601fa47 - Implemented parseDebugStatement() and parseVersionStatement().
aziz
parents: 188
diff changeset
369
d0712601fa47 - Implemented parseDebugStatement() and parseVersionStatement().
aziz
parents: 188
diff changeset
370 class DebugStatement : Statement
d0712601fa47 - Implemented parseDebugStatement() and parseVersionStatement().
aziz
parents: 188
diff changeset
371 {
264
50cc74026ea8 - Changed some string types to Token*.
aziz
parents: 261
diff changeset
372 Token* cond;
190
d0712601fa47 - Implemented parseDebugStatement() and parseVersionStatement().
aziz
parents: 188
diff changeset
373 Statement debugBody, elseBody;
264
50cc74026ea8 - Changed some string types to Token*.
aziz
parents: 261
diff changeset
374 this(Token* cond, Statement debugBody, Statement elseBody)
190
d0712601fa47 - Implemented parseDebugStatement() and parseVersionStatement().
aziz
parents: 188
diff changeset
375 {
264
50cc74026ea8 - Changed some string types to Token*.
aziz
parents: 261
diff changeset
376 this.cond = cond;
190
d0712601fa47 - Implemented parseDebugStatement() and parseVersionStatement().
aziz
parents: 188
diff changeset
377 this.debugBody = debugBody;
d0712601fa47 - Implemented parseDebugStatement() and parseVersionStatement().
aziz
parents: 188
diff changeset
378 this.elseBody = elseBody;
d0712601fa47 - Implemented parseDebugStatement() and parseVersionStatement().
aziz
parents: 188
diff changeset
379 }
d0712601fa47 - Implemented parseDebugStatement() and parseVersionStatement().
aziz
parents: 188
diff changeset
380 }
d0712601fa47 - Implemented parseDebugStatement() and parseVersionStatement().
aziz
parents: 188
diff changeset
381
d0712601fa47 - Implemented parseDebugStatement() and parseVersionStatement().
aziz
parents: 188
diff changeset
382 class VersionStatement : Statement
d0712601fa47 - Implemented parseDebugStatement() and parseVersionStatement().
aziz
parents: 188
diff changeset
383 {
264
50cc74026ea8 - Changed some string types to Token*.
aziz
parents: 261
diff changeset
384 Token* cond;
190
d0712601fa47 - Implemented parseDebugStatement() and parseVersionStatement().
aziz
parents: 188
diff changeset
385 Statement versionBody, elseBody;
264
50cc74026ea8 - Changed some string types to Token*.
aziz
parents: 261
diff changeset
386 this(Token* cond, Statement versionBody, Statement elseBody)
190
d0712601fa47 - Implemented parseDebugStatement() and parseVersionStatement().
aziz
parents: 188
diff changeset
387 {
264
50cc74026ea8 - Changed some string types to Token*.
aziz
parents: 261
diff changeset
388 this.cond = cond;
190
d0712601fa47 - Implemented parseDebugStatement() and parseVersionStatement().
aziz
parents: 188
diff changeset
389 this.versionBody = versionBody;
d0712601fa47 - Implemented parseDebugStatement() and parseVersionStatement().
aziz
parents: 188
diff changeset
390 this.elseBody = elseBody;
d0712601fa47 - Implemented parseDebugStatement() and parseVersionStatement().
aziz
parents: 188
diff changeset
391 }
d0712601fa47 - Implemented parseDebugStatement() and parseVersionStatement().
aziz
parents: 188
diff changeset
392 }
201
70715b9e2109 - Implemented parseAttributeStatement().
aziz
parents: 192
diff changeset
393
70715b9e2109 - Implemented parseAttributeStatement().
aziz
parents: 192
diff changeset
394 class AttributeStatement : Statement
70715b9e2109 - Implemented parseAttributeStatement().
aziz
parents: 192
diff changeset
395 {
70715b9e2109 - Implemented parseAttributeStatement().
aziz
parents: 192
diff changeset
396 TOK tok;
70715b9e2109 - Implemented parseAttributeStatement().
aziz
parents: 192
diff changeset
397 Statement statement;
70715b9e2109 - Implemented parseAttributeStatement().
aziz
parents: 192
diff changeset
398 this(TOK tok, Statement statement)
70715b9e2109 - Implemented parseAttributeStatement().
aziz
parents: 192
diff changeset
399 {
70715b9e2109 - Implemented parseAttributeStatement().
aziz
parents: 192
diff changeset
400 this.tok = tok;
70715b9e2109 - Implemented parseAttributeStatement().
aziz
parents: 192
diff changeset
401 this.statement = statement;
70715b9e2109 - Implemented parseAttributeStatement().
aziz
parents: 192
diff changeset
402 }
70715b9e2109 - Implemented parseAttributeStatement().
aziz
parents: 192
diff changeset
403 }
238
f3c6c15961bb - Added method peekNext(). Replaced code that used lx.peek() with peekNext().
aziz
parents: 216
diff changeset
404
f3c6c15961bb - Added method peekNext(). Replaced code that used lx.peek() with peekNext().
aziz
parents: 216
diff changeset
405 class ExternStatement : AttributeStatement
f3c6c15961bb - Added method peekNext(). Replaced code that used lx.peek() with peekNext().
aziz
parents: 216
diff changeset
406 {
f3c6c15961bb - Added method peekNext(). Replaced code that used lx.peek() with peekNext().
aziz
parents: 216
diff changeset
407 Linkage linkage;
f3c6c15961bb - Added method peekNext(). Replaced code that used lx.peek() with peekNext().
aziz
parents: 216
diff changeset
408 this(Linkage linkage, Statement statement)
f3c6c15961bb - Added method peekNext(). Replaced code that used lx.peek() with peekNext().
aziz
parents: 216
diff changeset
409 {
f3c6c15961bb - Added method peekNext(). Replaced code that used lx.peek() with peekNext().
aziz
parents: 216
diff changeset
410 super(TOK.Extern, statement);
f3c6c15961bb - Added method peekNext(). Replaced code that used lx.peek() with peekNext().
aziz
parents: 216
diff changeset
411 this.linkage = linkage;
f3c6c15961bb - Added method peekNext(). Replaced code that used lx.peek() with peekNext().
aziz
parents: 216
diff changeset
412 }
f3c6c15961bb - Added method peekNext(). Replaced code that used lx.peek() with peekNext().
aziz
parents: 216
diff changeset
413 }