Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(182)

Side by Side Diff: pkg/analyzer/lib/src/generated/testing/ast_factory.dart

Issue 975453004: Reformat (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 // This code was auto-generated, is not intended to be edited, and is subject to 5 // This code was auto-generated, is not intended to be edited, and is subject to
6 // significant change. Please see the README file for more information. 6 // significant change. Please see the README file for more information.
7 7
8 library engine.testing.ast_factory; 8 library engine.testing.ast_factory;
9 9
10 import 'package:analyzer/src/generated/ast.dart'; 10 import 'package:analyzer/src/generated/ast.dart';
(...skipping 11 matching lines...) Expand all
22 * The general pattern is for the name of the factory method to be the same as t he name of the class 22 * The general pattern is for the name of the factory method to be the same as t he name of the class
23 * of AST node being created. There are two notable exceptions. The first is for methods creating 23 * of AST node being created. There are two notable exceptions. The first is for methods creating
24 * nodes that are part of a cascade expression. These methods are all prefixed w ith 'cascaded'. The 24 * nodes that are part of a cascade expression. These methods are all prefixed w ith 'cascaded'. The
25 * second is places where a shorter name seemed unambiguous and easier to read, such as using 25 * second is places where a shorter name seemed unambiguous and easier to read, such as using
26 * 'identifier' rather than 'prefixedIdentifier', or 'integer' rather than 'inte gerLiteral'. 26 * 'identifier' rather than 'prefixedIdentifier', or 'integer' rather than 'inte gerLiteral'.
27 */ 27 */
28 class AstFactory { 28 class AstFactory {
29 static AdjacentStrings adjacentStrings(List<StringLiteral> strings) => 29 static AdjacentStrings adjacentStrings(List<StringLiteral> strings) =>
30 new AdjacentStrings(strings); 30 new AdjacentStrings(strings);
31 31
32 static Annotation annotation(Identifier name) => 32 static Annotation annotation(Identifier name) => new Annotation(
33 new Annotation( 33 TokenFactory.tokenFromType(TokenType.AT), name, null, null, null);
34 TokenFactory.tokenFromType(TokenType.AT),
35 name,
36 null,
37 null,
38 null);
39 34
40 static Annotation annotation2(Identifier name, 35 static Annotation annotation2(Identifier name,
41 SimpleIdentifier constructorName, ArgumentList arguments) => 36 SimpleIdentifier constructorName, ArgumentList arguments) =>
42 new Annotation( 37 new Annotation(TokenFactory.tokenFromType(TokenType.AT), name,
43 TokenFactory.tokenFromType(TokenType.AT), 38 TokenFactory.tokenFromType(TokenType.PERIOD), constructorName,
44 name,
45 TokenFactory.tokenFromType(TokenType.PERIOD),
46 constructorName,
47 arguments); 39 arguments);
48 40
49 static ArgumentList argumentList([List<Expression> arguments]) => 41 static ArgumentList argumentList([List<Expression> arguments]) =>
50 new ArgumentList( 42 new ArgumentList(TokenFactory.tokenFromType(TokenType.OPEN_PAREN),
51 TokenFactory.tokenFromType(TokenType.OPEN_PAREN), 43 arguments, TokenFactory.tokenFromType(TokenType.CLOSE_PAREN));
52 arguments,
53 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN));
54 44
55 static AsExpression asExpression(Expression expression, TypeName type) => 45 static AsExpression asExpression(Expression expression, TypeName type) =>
56 new AsExpression(expression, TokenFactory.tokenFromKeyword(Keyword.AS), ty pe); 46 new AsExpression(
47 expression, TokenFactory.tokenFromKeyword(Keyword.AS), type);
57 48
58 static AssertStatement assertStatement(Expression condition) => 49 static AssertStatement assertStatement(Expression condition) =>
59 new AssertStatement( 50 new AssertStatement(TokenFactory.tokenFromKeyword(Keyword.ASSERT),
60 TokenFactory.tokenFromKeyword(Keyword.ASSERT), 51 TokenFactory.tokenFromType(TokenType.OPEN_PAREN), condition,
61 TokenFactory.tokenFromType(TokenType.OPEN_PAREN),
62 condition,
63 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN), 52 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN),
64 TokenFactory.tokenFromType(TokenType.SEMICOLON)); 53 TokenFactory.tokenFromType(TokenType.SEMICOLON));
65 54
66 static AssignmentExpression assignmentExpression(Expression leftHandSide, 55 static AssignmentExpression assignmentExpression(Expression leftHandSide,
67 TokenType operator, Expression rightHandSide) => 56 TokenType operator, Expression rightHandSide) => new AssignmentExpression(
68 new AssignmentExpression( 57 leftHandSide, TokenFactory.tokenFromType(operator), rightHandSide);
69 leftHandSide,
70 TokenFactory.tokenFromType(operator),
71 rightHandSide);
72 58
73 static BlockFunctionBody 59 static BlockFunctionBody asyncBlockFunctionBody(
74 asyncBlockFunctionBody([List<Statement> statements]) => 60 [List<Statement> statements]) => new BlockFunctionBody(
75 new BlockFunctionBody( 61 TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "async"), null,
76 TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "async"), 62 block(statements));
77 null,
78 block(statements));
79 63
80 static ExpressionFunctionBody 64 static ExpressionFunctionBody asyncExpressionFunctionBody(
81 asyncExpressionFunctionBody(Expression expression) => 65 Expression expression) => new ExpressionFunctionBody(
82 new ExpressionFunctionBody( 66 TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "async"),
83 TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "async"), 67 TokenFactory.tokenFromType(TokenType.FUNCTION), expression,
84 TokenFactory.tokenFromType(TokenType.FUNCTION), 68 TokenFactory.tokenFromType(TokenType.SEMICOLON));
85 expression,
86 TokenFactory.tokenFromType(TokenType.SEMICOLON));
87 69
88 static BlockFunctionBody 70 static BlockFunctionBody asyncGeneratorBlockFunctionBody(
89 asyncGeneratorBlockFunctionBody([List<Statement> statements]) => 71 [List<Statement> statements]) => new BlockFunctionBody(
90 new BlockFunctionBody( 72 TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "async"),
91 TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "async"), 73 TokenFactory.tokenFromType(TokenType.STAR), block(statements));
92 TokenFactory.tokenFromType(TokenType.STAR),
93 block(statements));
94 74
95 static AwaitExpression awaitExpression(Expression expression) => 75 static AwaitExpression awaitExpression(Expression expression) =>
96 new AwaitExpression( 76 new AwaitExpression(
97 TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "await"), 77 TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "await"),
98 expression); 78 expression);
99 79
100 static BinaryExpression binaryExpression(Expression leftOperand, 80 static BinaryExpression binaryExpression(Expression leftOperand,
101 TokenType operator, Expression rightOperand) => 81 TokenType operator, Expression rightOperand) => new BinaryExpression(
102 new BinaryExpression( 82 leftOperand, TokenFactory.tokenFromType(operator), rightOperand);
103 leftOperand,
104 TokenFactory.tokenFromType(operator),
105 rightOperand);
106 83
107 static Block block([List<Statement> statements]) => 84 static Block block([List<Statement> statements]) => new Block(
108 new Block( 85 TokenFactory.tokenFromType(TokenType.OPEN_CURLY_BRACKET), statements,
109 TokenFactory.tokenFromType(TokenType.OPEN_CURLY_BRACKET), 86 TokenFactory.tokenFromType(TokenType.CLOSE_CURLY_BRACKET));
110 statements,
111 TokenFactory.tokenFromType(TokenType.CLOSE_CURLY_BRACKET));
112 87
113 static BlockFunctionBody blockFunctionBody(Block block) => 88 static BlockFunctionBody blockFunctionBody(Block block) =>
114 new BlockFunctionBody(null, null, block); 89 new BlockFunctionBody(null, null, block);
115 90
116 static BlockFunctionBody blockFunctionBody2([List<Statement> statements]) => 91 static BlockFunctionBody blockFunctionBody2([List<Statement> statements]) =>
117 new BlockFunctionBody(null, null, block(statements)); 92 new BlockFunctionBody(null, null, block(statements));
118 93
119 static BooleanLiteral booleanLiteral(bool value) => 94 static BooleanLiteral booleanLiteral(bool value) => new BooleanLiteral(value
120 new BooleanLiteral( 95 ? TokenFactory.tokenFromKeyword(Keyword.TRUE)
121 value ? 96 : TokenFactory.tokenFromKeyword(Keyword.FALSE), value);
122 TokenFactory.tokenFromKeyword(Keyword.TRUE) : 97
123 TokenFactory.tokenFromKeyword(Keyword.FALSE), 98 static BreakStatement breakStatement() => new BreakStatement(
124 value); 99 TokenFactory.tokenFromKeyword(Keyword.BREAK), null,
125 100 TokenFactory.tokenFromType(TokenType.SEMICOLON));
126 static BreakStatement breakStatement() => 101
127 new BreakStatement( 102 static BreakStatement breakStatement2(String label) => new BreakStatement(
128 TokenFactory.tokenFromKeyword(Keyword.BREAK), 103 TokenFactory.tokenFromKeyword(Keyword.BREAK), identifier3(label),
129 null, 104 TokenFactory.tokenFromType(TokenType.SEMICOLON));
130 TokenFactory.tokenFromType(TokenType.SEMICOLON));
131
132 static BreakStatement breakStatement2(String label) =>
133 new BreakStatement(
134 TokenFactory.tokenFromKeyword(Keyword.BREAK),
135 identifier3(label),
136 TokenFactory.tokenFromType(TokenType.SEMICOLON));
137 105
138 static IndexExpression cascadedIndexExpression(Expression index) => 106 static IndexExpression cascadedIndexExpression(Expression index) =>
139 new IndexExpression.forCascade( 107 new IndexExpression.forCascade(
140 TokenFactory.tokenFromType(TokenType.PERIOD_PERIOD), 108 TokenFactory.tokenFromType(TokenType.PERIOD_PERIOD),
141 TokenFactory.tokenFromType(TokenType.OPEN_SQUARE_BRACKET), 109 TokenFactory.tokenFromType(TokenType.OPEN_SQUARE_BRACKET), index,
142 index,
143 TokenFactory.tokenFromType(TokenType.CLOSE_SQUARE_BRACKET)); 110 TokenFactory.tokenFromType(TokenType.CLOSE_SQUARE_BRACKET));
144 111
145 static MethodInvocation cascadedMethodInvocation(String methodName, 112 static MethodInvocation cascadedMethodInvocation(String methodName,
146 [List<Expression> arguments]) => 113 [List<Expression> arguments]) => new MethodInvocation(null,
147 new MethodInvocation( 114 TokenFactory.tokenFromType(TokenType.PERIOD_PERIOD),
148 null, 115 identifier3(methodName), argumentList(arguments));
149 TokenFactory.tokenFromType(TokenType.PERIOD_PERIOD),
150 identifier3(methodName),
151 argumentList(arguments));
152 116
153 static PropertyAccess cascadedPropertyAccess(String propertyName) => 117 static PropertyAccess cascadedPropertyAccess(String propertyName) =>
154 new PropertyAccess( 118 new PropertyAccess(null,
155 null,
156 TokenFactory.tokenFromType(TokenType.PERIOD_PERIOD), 119 TokenFactory.tokenFromType(TokenType.PERIOD_PERIOD),
157 identifier3(propertyName)); 120 identifier3(propertyName));
158 121
159 static CascadeExpression cascadeExpression(Expression target, 122 static CascadeExpression cascadeExpression(Expression target,
160 [List<Expression> cascadeSections]) => 123 [List<Expression> cascadeSections]) =>
161 new CascadeExpression(target, cascadeSections); 124 new CascadeExpression(target, cascadeSections);
162 125
163 static CatchClause catchClause(String exceptionParameter, 126 static CatchClause catchClause(String exceptionParameter,
164 [List<Statement> statements]) => 127 [List<Statement> statements]) =>
165 catchClause5(null, exceptionParameter, null, statements); 128 catchClause5(null, exceptionParameter, null, statements);
166 129
167 static CatchClause catchClause2(String exceptionParameter, 130 static CatchClause catchClause2(
168 String stackTraceParameter, [List<Statement> statements]) => 131 String exceptionParameter, String stackTraceParameter,
132 [List<Statement> statements]) =>
169 catchClause5(null, exceptionParameter, stackTraceParameter, statements); 133 catchClause5(null, exceptionParameter, stackTraceParameter, statements);
170 134
171 static CatchClause catchClause3(TypeName exceptionType, 135 static CatchClause catchClause3(TypeName exceptionType,
172 [List<Statement> statements]) => 136 [List<Statement> statements]) =>
173 catchClause5(exceptionType, null, null, statements); 137 catchClause5(exceptionType, null, null, statements);
174 138
175 static CatchClause catchClause4(TypeName exceptionType, 139 static CatchClause catchClause4(
176 String exceptionParameter, [List<Statement> statements]) => 140 TypeName exceptionType, String exceptionParameter,
141 [List<Statement> statements]) =>
177 catchClause5(exceptionType, exceptionParameter, null, statements); 142 catchClause5(exceptionType, exceptionParameter, null, statements);
178 143
179 static CatchClause catchClause5(TypeName exceptionType, 144 static CatchClause catchClause5(TypeName exceptionType,
180 String exceptionParameter, String stackTraceParameter, 145 String exceptionParameter, String stackTraceParameter,
181 [List<Statement> statements]) => 146 [List<Statement> statements]) => new CatchClause(exceptionType == null
182 new CatchClause( 147 ? null
183 exceptionType == null ? 148 : TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "on"),
184 null : 149 exceptionType, exceptionParameter == null
185 TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "on"), 150 ? null
186 exceptionType, 151 : TokenFactory.tokenFromKeyword(Keyword.CATCH), exceptionParameter ==
187 exceptionParameter == null ? 152 null ? null : TokenFactory.tokenFromType(TokenType.OPEN_PAREN),
188 null : 153 exceptionParameter == null ? null : identifier3(exceptionParameter),
189 TokenFactory.tokenFromKeyword(Keyword.CATCH), 154 stackTraceParameter == null
190 exceptionParameter == null ? 155 ? null
191 null : 156 : TokenFactory.tokenFromType(TokenType.COMMA),
192 TokenFactory.tokenFromType(TokenType.OPEN_PAREN), 157 stackTraceParameter == null ? null : identifier3(stackTraceParameter),
193 exceptionParameter == null ? null : identifier3(exceptionParameter), 158 exceptionParameter == null
194 stackTraceParameter == null ? 159 ? null
195 null : 160 : TokenFactory.tokenFromType(TokenType.CLOSE_PAREN),
196 TokenFactory.tokenFromType(TokenType.COMMA), 161 block(statements));
197 stackTraceParameter == null ? null : identifier3(stackTraceParameter),
198 exceptionParameter == null ?
199 null :
200 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN),
201 block(statements));
202 162
203 static ClassDeclaration classDeclaration(Keyword abstractKeyword, String name, 163 static ClassDeclaration classDeclaration(Keyword abstractKeyword, String name,
204 TypeParameterList typeParameters, ExtendsClause extendsClause, 164 TypeParameterList typeParameters, ExtendsClause extendsClause,
205 WithClause withClause, ImplementsClause implementsClause, 165 WithClause withClause, ImplementsClause implementsClause,
206 [List<ClassMember> members]) => 166 [List<ClassMember> members]) => new ClassDeclaration(null, null,
207 new ClassDeclaration( 167 abstractKeyword == null
208 null, 168 ? null
209 null, 169 : TokenFactory.tokenFromKeyword(abstractKeyword),
210 abstractKeyword == null ? null : TokenFactory.tokenFromKeyword(abstrac tKeyword), 170 TokenFactory.tokenFromKeyword(Keyword.CLASS), identifier3(name),
211 TokenFactory.tokenFromKeyword(Keyword.CLASS), 171 typeParameters, extendsClause, withClause, implementsClause,
212 identifier3(name), 172 TokenFactory.tokenFromType(TokenType.OPEN_CURLY_BRACKET), members,
213 typeParameters, 173 TokenFactory.tokenFromType(TokenType.CLOSE_CURLY_BRACKET));
214 extendsClause,
215 withClause,
216 implementsClause,
217 TokenFactory.tokenFromType(TokenType.OPEN_CURLY_BRACKET),
218 members,
219 TokenFactory.tokenFromType(TokenType.CLOSE_CURLY_BRACKET));
220 174
221 static ClassTypeAlias classTypeAlias(String name, 175 static ClassTypeAlias classTypeAlias(String name,
222 TypeParameterList typeParameters, Keyword abstractKeyword, TypeName superc lass, 176 TypeParameterList typeParameters, Keyword abstractKeyword,
223 WithClause withClause, ImplementsClause implementsClause) => 177 TypeName superclass, WithClause withClause,
224 new ClassTypeAlias( 178 ImplementsClause implementsClause) => new ClassTypeAlias(null, null,
225 null, 179 TokenFactory.tokenFromKeyword(Keyword.CLASS), identifier3(name),
226 null, 180 typeParameters, TokenFactory.tokenFromType(TokenType.EQ),
227 TokenFactory.tokenFromKeyword(Keyword.CLASS), 181 abstractKeyword == null
228 identifier3(name), 182 ? null
229 typeParameters, 183 : TokenFactory.tokenFromKeyword(abstractKeyword), superclass,
230 TokenFactory.tokenFromType(TokenType.EQ), 184 withClause, implementsClause,
231 abstractKeyword == null ? null : TokenFactory.tokenFromKeyword(abstrac tKeyword), 185 TokenFactory.tokenFromType(TokenType.SEMICOLON));
232 superclass,
233 withClause,
234 implementsClause,
235 TokenFactory.tokenFromType(TokenType.SEMICOLON));
236 186
237 static CompilationUnit compilationUnit() => 187 static CompilationUnit compilationUnit() =>
238 compilationUnit8(null, null, null); 188 compilationUnit8(null, null, null);
239 189
240 static CompilationUnit 190 static CompilationUnit compilationUnit2(
241 compilationUnit2(List<CompilationUnitMember> declarations) => 191 List<CompilationUnitMember> declarations) =>
242 compilationUnit8(null, null, declarations); 192 compilationUnit8(null, null, declarations);
243 193
244 static CompilationUnit compilationUnit3(List<Directive> directives) => 194 static CompilationUnit compilationUnit3(List<Directive> directives) =>
245 compilationUnit8(null, directives, null); 195 compilationUnit8(null, directives, null);
246 196
247 static CompilationUnit compilationUnit4(List<Directive> directives, 197 static CompilationUnit compilationUnit4(List<Directive> directives,
248 List<CompilationUnitMember> declarations) => 198 List<CompilationUnitMember> declarations) =>
249 compilationUnit8(null, directives, declarations); 199 compilationUnit8(null, directives, declarations);
250 200
251 static CompilationUnit compilationUnit5(String scriptTag) => 201 static CompilationUnit compilationUnit5(String scriptTag) =>
252 compilationUnit8(scriptTag, null, null); 202 compilationUnit8(scriptTag, null, null);
253 203
254 static CompilationUnit compilationUnit6(String scriptTag, 204 static CompilationUnit compilationUnit6(
255 List<CompilationUnitMember> declarations) => 205 String scriptTag, List<CompilationUnitMember> declarations) =>
256 compilationUnit8(scriptTag, null, declarations); 206 compilationUnit8(scriptTag, null, declarations);
257 207
258 static CompilationUnit compilationUnit7(String scriptTag, 208 static CompilationUnit compilationUnit7(
259 List<Directive> directives) => 209 String scriptTag, List<Directive> directives) =>
260 compilationUnit8(scriptTag, directives, null); 210 compilationUnit8(scriptTag, directives, null);
261 211
262 static CompilationUnit compilationUnit8(String scriptTag, 212 static CompilationUnit compilationUnit8(String scriptTag,
263 List<Directive> directives, List<CompilationUnitMember> declarations) => 213 List<Directive> directives,
264 new CompilationUnit( 214 List<CompilationUnitMember> declarations) => new CompilationUnit(
265 TokenFactory.tokenFromType(TokenType.EOF), 215 TokenFactory.tokenFromType(TokenType.EOF),
266 scriptTag == null ? null : AstFactory.scriptTag(scriptTag), 216 scriptTag == null ? null : AstFactory.scriptTag(scriptTag),
267 directives == null ? new List<Directive>() : directives, 217 directives == null ? new List<Directive>() : directives,
268 declarations == null ? new List<CompilationUnitMember>() : declaration s, 218 declarations == null ? new List<CompilationUnitMember>() : declarations,
269 TokenFactory.tokenFromType(TokenType.EOF)); 219 TokenFactory.tokenFromType(TokenType.EOF));
270 220
271 static ConditionalExpression conditionalExpression(Expression condition, 221 static ConditionalExpression conditionalExpression(Expression condition,
272 Expression thenExpression, Expression elseExpression) => 222 Expression thenExpression, Expression elseExpression) =>
273 new ConditionalExpression( 223 new ConditionalExpression(condition,
274 condition, 224 TokenFactory.tokenFromType(TokenType.QUESTION), thenExpression,
275 TokenFactory.tokenFromType(TokenType.QUESTION), 225 TokenFactory.tokenFromType(TokenType.COLON), elseExpression);
276 thenExpression,
277 TokenFactory.tokenFromType(TokenType.COLON),
278 elseExpression);
279 226
280 static ConstructorDeclaration constructorDeclaration(Identifier returnType, 227 static ConstructorDeclaration constructorDeclaration(Identifier returnType,
281 String name, FormalParameterList parameters, 228 String name, FormalParameterList parameters,
282 List<ConstructorInitializer> initializers) => 229 List<ConstructorInitializer> initializers) => new ConstructorDeclaration(
283 new ConstructorDeclaration( 230 null, null, TokenFactory.tokenFromKeyword(Keyword.EXTERNAL), null, null,
284 null, 231 returnType,
285 null, 232 name == null ? null : TokenFactory.tokenFromType(TokenType.PERIOD),
286 TokenFactory.tokenFromKeyword(Keyword.EXTERNAL), 233 name == null ? null : identifier3(name), parameters,
287 null, 234 initializers == null || initializers.isEmpty
288 null, 235 ? null
289 returnType, 236 : TokenFactory.tokenFromType(TokenType.PERIOD), initializers == null
290 name == null ? null : TokenFactory.tokenFromType(TokenType.PERIOD), 237 ? new List<ConstructorInitializer>()
291 name == null ? null : identifier3(name), 238 : initializers, null, emptyFunctionBody());
292 parameters,
293 initializers == null || initializers.isEmpty ?
294 null :
295 TokenFactory.tokenFromType(TokenType.PERIOD),
296 initializers == null ? new List<ConstructorInitializer>() : initialize rs,
297 null,
298 emptyFunctionBody());
299 239
300 static ConstructorDeclaration constructorDeclaration2(Keyword constKeyword, 240 static ConstructorDeclaration constructorDeclaration2(Keyword constKeyword,
301 Keyword factoryKeyword, Identifier returnType, String name, 241 Keyword factoryKeyword, Identifier returnType, String name,
302 FormalParameterList parameters, List<ConstructorInitializer> initializers, 242 FormalParameterList parameters, List<ConstructorInitializer> initializers,
303 FunctionBody body) => 243 FunctionBody body) => new ConstructorDeclaration(null, null, null,
304 new ConstructorDeclaration( 244 constKeyword == null ? null : TokenFactory.tokenFromKeyword(constKeyword),
305 null, 245 factoryKeyword == null
306 null, 246 ? null
307 null, 247 : TokenFactory.tokenFromKeyword(factoryKeyword), returnType,
308 constKeyword == null ? null : TokenFactory.tokenFromKeyword(constKeywo rd), 248 name == null ? null : TokenFactory.tokenFromType(TokenType.PERIOD),
309 factoryKeyword == null ? null : TokenFactory.tokenFromKeyword(factoryK eyword), 249 name == null ? null : identifier3(name), parameters,
310 returnType, 250 initializers == null || initializers.isEmpty
311 name == null ? null : TokenFactory.tokenFromType(TokenType.PERIOD), 251 ? null
312 name == null ? null : identifier3(name), 252 : TokenFactory.tokenFromType(TokenType.PERIOD), initializers == null
313 parameters, 253 ? new List<ConstructorInitializer>()
314 initializers == null || initializers.isEmpty ? 254 : initializers, null, body);
315 null : 255
316 TokenFactory.tokenFromType(TokenType.PERIOD), 256 static ConstructorFieldInitializer constructorFieldInitializer(
317 initializers == null ? new List<ConstructorInitializer>() : initialize rs, 257 bool prefixedWithThis, String fieldName, Expression expression) =>
318 null,
319 body);
320
321 static ConstructorFieldInitializer
322 constructorFieldInitializer(bool prefixedWithThis, String fieldName,
323 Expression expression) =>
324 new ConstructorFieldInitializer( 258 new ConstructorFieldInitializer(
325 prefixedWithThis ? TokenFactory.tokenFromKeyword(Keyword.THIS) : null, 259 prefixedWithThis ? TokenFactory.tokenFromKeyword(Keyword.THIS) : null,
326 prefixedWithThis ? TokenFactory.tokenFromType(TokenType.PERIOD) : null , 260 prefixedWithThis
327 identifier3(fieldName), 261 ? TokenFactory.tokenFromType(TokenType.PERIOD)
328 TokenFactory.tokenFromType(TokenType.EQ), 262 : null, identifier3(fieldName),
329 expression); 263 TokenFactory.tokenFromType(TokenType.EQ), expression);
330 264
331 static ConstructorName constructorName(TypeName type, String name) => 265 static ConstructorName constructorName(TypeName type, String name) =>
332 new ConstructorName( 266 new ConstructorName(type,
333 type,
334 name == null ? null : TokenFactory.tokenFromType(TokenType.PERIOD), 267 name == null ? null : TokenFactory.tokenFromType(TokenType.PERIOD),
335 name == null ? null : identifier3(name)); 268 name == null ? null : identifier3(name));
336 269
337 static ContinueStatement continueStatement([String label]) => 270 static ContinueStatement continueStatement([String label]) =>
338 new ContinueStatement( 271 new ContinueStatement(TokenFactory.tokenFromKeyword(Keyword.CONTINUE),
339 TokenFactory.tokenFromKeyword(Keyword.CONTINUE),
340 label == null ? null : identifier3(label), 272 label == null ? null : identifier3(label),
341 TokenFactory.tokenFromType(TokenType.SEMICOLON)); 273 TokenFactory.tokenFromType(TokenType.SEMICOLON));
342 274
343 static DeclaredIdentifier declaredIdentifier(Keyword keyword, 275 static DeclaredIdentifier declaredIdentifier(
344 String identifier) => 276 Keyword keyword, String identifier) =>
345 declaredIdentifier2(keyword, null, identifier); 277 declaredIdentifier2(keyword, null, identifier);
346 278
347 static DeclaredIdentifier declaredIdentifier2(Keyword keyword, TypeName type, 279 static DeclaredIdentifier declaredIdentifier2(
348 String identifier) => 280 Keyword keyword, TypeName type, String identifier) =>
349 new DeclaredIdentifier( 281 new DeclaredIdentifier(null, null,
350 null, 282 keyword == null ? null : TokenFactory.tokenFromKeyword(keyword), type,
351 null,
352 keyword == null ? null : TokenFactory.tokenFromKeyword(keyword),
353 type,
354 identifier3(identifier)); 283 identifier3(identifier));
355 284
356 static DeclaredIdentifier declaredIdentifier3(String identifier) => 285 static DeclaredIdentifier declaredIdentifier3(String identifier) =>
357 declaredIdentifier2(null, null, identifier); 286 declaredIdentifier2(null, null, identifier);
358 287
359 static DeclaredIdentifier declaredIdentifier4(TypeName type, 288 static DeclaredIdentifier declaredIdentifier4(
360 String identifier) => 289 TypeName type, String identifier) =>
361 declaredIdentifier2(null, type, identifier); 290 declaredIdentifier2(null, type, identifier);
362 291
363 static DoStatement doStatement(Statement body, Expression condition) => 292 static DoStatement doStatement(Statement body, Expression condition) =>
364 new DoStatement( 293 new DoStatement(TokenFactory.tokenFromKeyword(Keyword.DO), body,
365 TokenFactory.tokenFromKeyword(Keyword.DO),
366 body,
367 TokenFactory.tokenFromKeyword(Keyword.WHILE), 294 TokenFactory.tokenFromKeyword(Keyword.WHILE),
368 TokenFactory.tokenFromType(TokenType.OPEN_PAREN), 295 TokenFactory.tokenFromType(TokenType.OPEN_PAREN), condition,
369 condition,
370 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN), 296 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN),
371 TokenFactory.tokenFromType(TokenType.SEMICOLON)); 297 TokenFactory.tokenFromType(TokenType.SEMICOLON));
372 298
373 static DoubleLiteral doubleLiteral(double value) => 299 static DoubleLiteral doubleLiteral(double value) =>
374 new DoubleLiteral(TokenFactory.tokenFromString(value.toString()), value); 300 new DoubleLiteral(TokenFactory.tokenFromString(value.toString()), value);
375 301
376 static EmptyFunctionBody emptyFunctionBody() => 302 static EmptyFunctionBody emptyFunctionBody() =>
377 new EmptyFunctionBody(TokenFactory.tokenFromType(TokenType.SEMICOLON)); 303 new EmptyFunctionBody(TokenFactory.tokenFromType(TokenType.SEMICOLON));
378 304
379 static EmptyStatement emptyStatement() => 305 static EmptyStatement emptyStatement() =>
380 new EmptyStatement(TokenFactory.tokenFromType(TokenType.SEMICOLON)); 306 new EmptyStatement(TokenFactory.tokenFromType(TokenType.SEMICOLON));
381 307
382 static EnumDeclaration enumDeclaration(SimpleIdentifier name, 308 static EnumDeclaration enumDeclaration(
383 List<EnumConstantDeclaration> constants) => 309 SimpleIdentifier name, List<EnumConstantDeclaration> constants) =>
384 new EnumDeclaration( 310 new EnumDeclaration(null, null,
385 null, 311 TokenFactory.tokenFromKeyword(Keyword.ENUM), name,
386 null, 312 TokenFactory.tokenFromType(TokenType.OPEN_CURLY_BRACKET), constants,
387 TokenFactory.tokenFromKeyword(Keyword.ENUM),
388 name,
389 TokenFactory.tokenFromType(TokenType.OPEN_CURLY_BRACKET),
390 constants,
391 TokenFactory.tokenFromType(TokenType.CLOSE_CURLY_BRACKET)); 313 TokenFactory.tokenFromType(TokenType.CLOSE_CURLY_BRACKET));
392 314
393 static EnumDeclaration enumDeclaration2(String name, 315 static EnumDeclaration enumDeclaration2(
394 List<String> constantNames) { 316 String name, List<String> constantNames) {
395 int count = constantNames.length; 317 int count = constantNames.length;
396 List<EnumConstantDeclaration> constants = 318 List<EnumConstantDeclaration> constants =
397 new List<EnumConstantDeclaration>(count); 319 new List<EnumConstantDeclaration>(count);
398 for (int i = 0; i < count; i++) { 320 for (int i = 0; i < count; i++) {
399 constants[i] = 321 constants[i] = new EnumConstantDeclaration(
400 new EnumConstantDeclaration(null, null, identifier3(constantNames[i])) ; 322 null, null, identifier3(constantNames[i]));
401 } 323 }
402 return enumDeclaration(identifier3(name), constants); 324 return enumDeclaration(identifier3(name), constants);
403 } 325 }
404 326
405 static ExportDirective exportDirective(List<Annotation> metadata, String uri, 327 static ExportDirective exportDirective(List<Annotation> metadata, String uri,
406 [List<Combinator> combinators]) => 328 [List<Combinator> combinators]) => new ExportDirective(null, metadata,
407 new ExportDirective( 329 TokenFactory.tokenFromKeyword(Keyword.EXPORT), string2(uri), combinators,
408 null, 330 TokenFactory.tokenFromType(TokenType.SEMICOLON));
409 metadata,
410 TokenFactory.tokenFromKeyword(Keyword.EXPORT),
411 string2(uri),
412 combinators,
413 TokenFactory.tokenFromType(TokenType.SEMICOLON));
414 331
415 static ExportDirective exportDirective2(String uri, 332 static ExportDirective exportDirective2(String uri,
416 [List<Combinator> combinators]) => 333 [List<Combinator> combinators]) =>
417 exportDirective(null, uri, combinators); 334 exportDirective(null, uri, combinators);
418 335
419 static ExpressionFunctionBody expressionFunctionBody(Expression expression) => 336 static ExpressionFunctionBody expressionFunctionBody(Expression expression) =>
420 new ExpressionFunctionBody( 337 new ExpressionFunctionBody(null,
421 null, 338 TokenFactory.tokenFromType(TokenType.FUNCTION), expression,
422 TokenFactory.tokenFromType(TokenType.FUNCTION),
423 expression,
424 TokenFactory.tokenFromType(TokenType.SEMICOLON)); 339 TokenFactory.tokenFromType(TokenType.SEMICOLON));
425 340
426 static ExpressionStatement expressionStatement(Expression expression) => 341 static ExpressionStatement expressionStatement(Expression expression) =>
427 new ExpressionStatement( 342 new ExpressionStatement(
428 expression, 343 expression, TokenFactory.tokenFromType(TokenType.SEMICOLON));
429 TokenFactory.tokenFromType(TokenType.SEMICOLON));
430 344
431 static ExtendsClause extendsClause(TypeName type) => 345 static ExtendsClause extendsClause(TypeName type) =>
432 new ExtendsClause(TokenFactory.tokenFromKeyword(Keyword.EXTENDS), type); 346 new ExtendsClause(TokenFactory.tokenFromKeyword(Keyword.EXTENDS), type);
433 347
434 static FieldDeclaration fieldDeclaration(bool isStatic, Keyword keyword, 348 static FieldDeclaration fieldDeclaration(bool isStatic, Keyword keyword,
435 TypeName type, List<VariableDeclaration> variables) => 349 TypeName type, List<VariableDeclaration> variables) =>
436 new FieldDeclaration( 350 new FieldDeclaration(null, null,
437 null,
438 null,
439 isStatic ? TokenFactory.tokenFromKeyword(Keyword.STATIC) : null, 351 isStatic ? TokenFactory.tokenFromKeyword(Keyword.STATIC) : null,
440 variableDeclarationList(keyword, type, variables), 352 variableDeclarationList(keyword, type, variables),
441 TokenFactory.tokenFromType(TokenType.SEMICOLON)); 353 TokenFactory.tokenFromType(TokenType.SEMICOLON));
442 354
443 static FieldDeclaration fieldDeclaration2(bool isStatic, Keyword keyword, 355 static FieldDeclaration fieldDeclaration2(bool isStatic, Keyword keyword,
444 List<VariableDeclaration> variables) => 356 List<VariableDeclaration> variables) =>
445 fieldDeclaration(isStatic, keyword, null, variables); 357 fieldDeclaration(isStatic, keyword, null, variables);
446 358
447 static FieldFormalParameter fieldFormalParameter(Keyword keyword, 359 static FieldFormalParameter fieldFormalParameter(
448 TypeName type, String identifier, [FormalParameterList parameterList]) => 360 Keyword keyword, TypeName type, String identifier,
449 new FieldFormalParameter( 361 [FormalParameterList parameterList]) => new FieldFormalParameter(null,
450 null, 362 null, keyword == null ? null : TokenFactory.tokenFromKeyword(keyword),
451 null, 363 type, TokenFactory.tokenFromKeyword(Keyword.THIS),
452 keyword == null ? null : TokenFactory.tokenFromKeyword(keyword), 364 TokenFactory.tokenFromType(TokenType.PERIOD), identifier3(identifier),
453 type, 365 parameterList);
454 TokenFactory.tokenFromKeyword(Keyword.THIS),
455 TokenFactory.tokenFromType(TokenType.PERIOD),
456 identifier3(identifier),
457 parameterList);
458 366
459 static FieldFormalParameter fieldFormalParameter2(String identifier) => 367 static FieldFormalParameter fieldFormalParameter2(String identifier) =>
460 fieldFormalParameter(null, null, identifier); 368 fieldFormalParameter(null, null, identifier);
461 369
462 static ForEachStatement forEachStatement(DeclaredIdentifier loopVariable, 370 static ForEachStatement forEachStatement(DeclaredIdentifier loopVariable,
463 Expression iterator, Statement body) => 371 Expression iterator, Statement body) => new ForEachStatement.con1(null,
464 new ForEachStatement.con1( 372 TokenFactory.tokenFromKeyword(Keyword.FOR),
465 null, 373 TokenFactory.tokenFromType(TokenType.OPEN_PAREN), loopVariable,
374 TokenFactory.tokenFromKeyword(Keyword.IN), iterator,
375 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN), body);
376
377 static ForEachStatement forEachStatement2(
378 SimpleIdentifier identifier, Expression iterator, Statement body) =>
379 new ForEachStatement.con2(null,
466 TokenFactory.tokenFromKeyword(Keyword.FOR), 380 TokenFactory.tokenFromKeyword(Keyword.FOR),
467 TokenFactory.tokenFromType(TokenType.OPEN_PAREN), 381 TokenFactory.tokenFromType(TokenType.OPEN_PAREN), identifier,
468 loopVariable, 382 TokenFactory.tokenFromKeyword(Keyword.IN), iterator,
469 TokenFactory.tokenFromKeyword(Keyword.IN), 383 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN), body);
470 iterator,
471 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN),
472 body);
473 384
474 static ForEachStatement forEachStatement2(SimpleIdentifier identifier, 385 static FormalParameterList formalParameterList(
475 Expression iterator, Statement body) => 386 [List<FormalParameter> parameters]) => new FormalParameterList(
476 new ForEachStatement.con2( 387 TokenFactory.tokenFromType(TokenType.OPEN_PAREN), parameters, null, null,
477 null, 388 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN));
478 TokenFactory.tokenFromKeyword(Keyword.FOR),
479 TokenFactory.tokenFromType(TokenType.OPEN_PAREN),
480 identifier,
481 TokenFactory.tokenFromKeyword(Keyword.IN),
482 iterator,
483 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN),
484 body);
485
486 static FormalParameterList
487 formalParameterList([List<FormalParameter> parameters]) =>
488 new FormalParameterList(
489 TokenFactory.tokenFromType(TokenType.OPEN_PAREN),
490 parameters,
491 null,
492 null,
493 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN));
494 389
495 static ForStatement forStatement(Expression initialization, 390 static ForStatement forStatement(Expression initialization,
496 Expression condition, List<Expression> updaters, Statement body) => 391 Expression condition, List<Expression> updaters, Statement body) =>
497 new ForStatement( 392 new ForStatement(TokenFactory.tokenFromKeyword(Keyword.FOR),
498 TokenFactory.tokenFromKeyword(Keyword.FOR), 393 TokenFactory.tokenFromType(TokenType.OPEN_PAREN), null,
499 TokenFactory.tokenFromType(TokenType.OPEN_PAREN), 394 initialization, TokenFactory.tokenFromType(TokenType.SEMICOLON),
500 null, 395 condition, TokenFactory.tokenFromType(TokenType.SEMICOLON), updaters,
501 initialization, 396 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN), body);
502 TokenFactory.tokenFromType(TokenType.SEMICOLON),
503 condition,
504 TokenFactory.tokenFromType(TokenType.SEMICOLON),
505 updaters,
506 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN),
507 body);
508 397
509 static ForStatement forStatement2(VariableDeclarationList variableList, 398 static ForStatement forStatement2(VariableDeclarationList variableList,
510 Expression condition, List<Expression> updaters, Statement body) => 399 Expression condition, List<Expression> updaters, Statement body) =>
511 new ForStatement( 400 new ForStatement(TokenFactory.tokenFromKeyword(Keyword.FOR),
512 TokenFactory.tokenFromKeyword(Keyword.FOR), 401 TokenFactory.tokenFromType(TokenType.OPEN_PAREN), variableList, null,
513 TokenFactory.tokenFromType(TokenType.OPEN_PAREN), 402 TokenFactory.tokenFromType(TokenType.SEMICOLON), condition,
514 variableList, 403 TokenFactory.tokenFromType(TokenType.SEMICOLON), updaters,
515 null, 404 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN), body);
516 TokenFactory.tokenFromType(TokenType.SEMICOLON),
517 condition,
518 TokenFactory.tokenFromType(TokenType.SEMICOLON),
519 updaters,
520 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN),
521 body);
522 405
523 static FunctionDeclaration functionDeclaration(TypeName type, Keyword keyword, 406 static FunctionDeclaration functionDeclaration(TypeName type, Keyword keyword,
524 String name, FunctionExpression functionExpression) => 407 String name, FunctionExpression functionExpression) =>
525 new FunctionDeclaration( 408 new FunctionDeclaration(null, null, null, type,
526 null,
527 null,
528 null,
529 type,
530 keyword == null ? null : TokenFactory.tokenFromKeyword(keyword), 409 keyword == null ? null : TokenFactory.tokenFromKeyword(keyword),
531 identifier3(name), 410 identifier3(name), functionExpression);
532 functionExpression);
533 411
534 static FunctionDeclarationStatement 412 static FunctionDeclarationStatement functionDeclarationStatement(
535 functionDeclarationStatement(TypeName type, Keyword keyword, String name, 413 TypeName type, Keyword keyword, String name,
536 FunctionExpression functionExpression) => 414 FunctionExpression functionExpression) =>
537 new FunctionDeclarationStatement( 415 new FunctionDeclarationStatement(
538 functionDeclaration(type, keyword, name, functionExpression)); 416 functionDeclaration(type, keyword, name, functionExpression));
539 417
540 static FunctionExpression functionExpression() => 418 static FunctionExpression functionExpression() =>
541 new FunctionExpression(formalParameterList(), blockFunctionBody2()); 419 new FunctionExpression(formalParameterList(), blockFunctionBody2());
542 420
543 static FunctionExpression functionExpression2(FormalParameterList parameters, 421 static FunctionExpression functionExpression2(
544 FunctionBody body) => 422 FormalParameterList parameters, FunctionBody body) =>
545 new FunctionExpression(parameters, body); 423 new FunctionExpression(parameters, body);
546 424
547 static FunctionExpressionInvocation 425 static FunctionExpressionInvocation functionExpressionInvocation(
548 functionExpressionInvocation(Expression function, 426 Expression function, [List<Expression> arguments]) =>
549 [List<Expression> arguments]) =>
550 new FunctionExpressionInvocation(function, argumentList(arguments)); 427 new FunctionExpressionInvocation(function, argumentList(arguments));
551 428
552 static FunctionTypedFormalParameter 429 static FunctionTypedFormalParameter functionTypedFormalParameter(
553 functionTypedFormalParameter(TypeName returnType, String identifier, 430 TypeName returnType, String identifier,
554 [List<FormalParameter> parameters]) => 431 [List<FormalParameter> parameters]) => new FunctionTypedFormalParameter(
555 new FunctionTypedFormalParameter( 432 null, null, returnType, identifier3(identifier),
556 null, 433 formalParameterList(parameters));
557 null,
558 returnType,
559 identifier3(identifier),
560 formalParameterList(parameters));
561 434
562 static HideCombinator hideCombinator(List<SimpleIdentifier> identifiers) => 435 static HideCombinator hideCombinator(List<SimpleIdentifier> identifiers) =>
563 new HideCombinator(TokenFactory.tokenFromString("hide"), identifiers); 436 new HideCombinator(TokenFactory.tokenFromString("hide"), identifiers);
564 437
565 static HideCombinator hideCombinator2(List<String> identifiers) => 438 static HideCombinator hideCombinator2(List<String> identifiers) =>
566 new HideCombinator( 439 new HideCombinator(
567 TokenFactory.tokenFromString("hide"), 440 TokenFactory.tokenFromString("hide"), identifierList(identifiers));
568 identifierList(identifiers));
569 441
570 static PrefixedIdentifier identifier(SimpleIdentifier prefix, 442 static PrefixedIdentifier identifier(
571 SimpleIdentifier identifier) => 443 SimpleIdentifier prefix, SimpleIdentifier identifier) =>
572 new PrefixedIdentifier( 444 new PrefixedIdentifier(
573 prefix, 445 prefix, TokenFactory.tokenFromType(TokenType.PERIOD), identifier);
574 TokenFactory.tokenFromType(TokenType.PERIOD),
575 identifier);
576 446
577 static SimpleIdentifier identifier3(String lexeme) => 447 static SimpleIdentifier identifier3(String lexeme) => new SimpleIdentifier(
578 new SimpleIdentifier( 448 TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, lexeme));
579 TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, lexeme));
580 449
581 static PrefixedIdentifier identifier4(String prefix, 450 static PrefixedIdentifier identifier4(
582 SimpleIdentifier identifier) => 451 String prefix, SimpleIdentifier identifier) => new PrefixedIdentifier(
583 new PrefixedIdentifier( 452 identifier3(prefix), TokenFactory.tokenFromType(TokenType.PERIOD),
584 identifier3(prefix), 453 identifier);
585 TokenFactory.tokenFromType(TokenType.PERIOD),
586 identifier);
587 454
588 static PrefixedIdentifier identifier5(String prefix, String identifier) => 455 static PrefixedIdentifier identifier5(String prefix, String identifier) =>
589 new PrefixedIdentifier( 456 new PrefixedIdentifier(identifier3(prefix),
590 identifier3(prefix),
591 TokenFactory.tokenFromType(TokenType.PERIOD), 457 TokenFactory.tokenFromType(TokenType.PERIOD),
592 identifier3(identifier)); 458 identifier3(identifier));
593 459
594 static List<SimpleIdentifier> identifierList(List<String> identifiers) { 460 static List<SimpleIdentifier> identifierList(List<String> identifiers) {
595 if (identifiers == null) { 461 if (identifiers == null) {
596 return null; 462 return null;
597 } 463 }
598 return identifiers.map( 464 return identifiers
599 (String identifier) => identifier3(identifier)).toList(); 465 .map((String identifier) => identifier3(identifier))
466 .toList();
600 } 467 }
601 468
602 static IfStatement ifStatement(Expression condition, 469 static IfStatement ifStatement(
603 Statement thenStatement) => 470 Expression condition, Statement thenStatement) =>
604 ifStatement2(condition, thenStatement, null); 471 ifStatement2(condition, thenStatement, null);
605 472
606 static IfStatement ifStatement2(Expression condition, Statement thenStatement, 473 static IfStatement ifStatement2(Expression condition, Statement thenStatement,
607 Statement elseStatement) => 474 Statement elseStatement) => new IfStatement(
608 new IfStatement( 475 TokenFactory.tokenFromKeyword(Keyword.IF),
609 TokenFactory.tokenFromKeyword(Keyword.IF), 476 TokenFactory.tokenFromType(TokenType.OPEN_PAREN), condition,
610 TokenFactory.tokenFromType(TokenType.OPEN_PAREN), 477 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN), thenStatement,
611 condition, 478 elseStatement == null
612 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN), 479 ? null
613 thenStatement, 480 : TokenFactory.tokenFromKeyword(Keyword.ELSE), elseStatement);
614 elseStatement == null ? null : TokenFactory.tokenFromKeyword(Keyword.E LSE),
615 elseStatement);
616 481
617 static ImplementsClause implementsClause(List<TypeName> types) => 482 static ImplementsClause implementsClause(List<TypeName> types) =>
618 new ImplementsClause(TokenFactory.tokenFromKeyword(Keyword.IMPLEMENTS), ty pes); 483 new ImplementsClause(
484 TokenFactory.tokenFromKeyword(Keyword.IMPLEMENTS), types);
619 485
620 static ImportDirective importDirective(List<Annotation> metadata, String uri, 486 static ImportDirective importDirective(
621 bool isDeferred, String prefix, [List<Combinator> combinators]) => 487 List<Annotation> metadata, String uri, bool isDeferred, String prefix,
622 new ImportDirective( 488 [List<Combinator> combinators]) => new ImportDirective(null, metadata,
623 null, 489 TokenFactory.tokenFromKeyword(Keyword.IMPORT), string2(uri),
624 metadata, 490 !isDeferred ? null : TokenFactory.tokenFromKeyword(Keyword.DEFERRED),
625 TokenFactory.tokenFromKeyword(Keyword.IMPORT), 491 prefix == null ? null : TokenFactory.tokenFromKeyword(Keyword.AS),
626 string2(uri), 492 prefix == null ? null : identifier3(prefix), combinators,
627 !isDeferred ? null : TokenFactory.tokenFromKeyword(Keyword.DEFERRED), 493 TokenFactory.tokenFromType(TokenType.SEMICOLON));
628 prefix == null ? null : TokenFactory.tokenFromKeyword(Keyword.AS),
629 prefix == null ? null : identifier3(prefix),
630 combinators,
631 TokenFactory.tokenFromType(TokenType.SEMICOLON));
632 494
633 static ImportDirective importDirective2(String uri, bool isDeferred, 495 static ImportDirective importDirective2(
634 String prefix, [List<Combinator> combinators]) => 496 String uri, bool isDeferred, String prefix,
497 [List<Combinator> combinators]) =>
635 importDirective(null, uri, isDeferred, prefix, combinators); 498 importDirective(null, uri, isDeferred, prefix, combinators);
636 499
637 static ImportDirective importDirective3(String uri, String prefix, 500 static ImportDirective importDirective3(String uri, String prefix,
638 [List<Combinator> combinators]) => 501 [List<Combinator> combinators]) =>
639 importDirective(null, uri, false, prefix, combinators); 502 importDirective(null, uri, false, prefix, combinators);
640 503
641 static IndexExpression indexExpression(Expression array, Expression index) => 504 static IndexExpression indexExpression(Expression array, Expression index) =>
642 new IndexExpression.forTarget( 505 new IndexExpression.forTarget(array,
643 array, 506 TokenFactory.tokenFromType(TokenType.OPEN_SQUARE_BRACKET), index,
644 TokenFactory.tokenFromType(TokenType.OPEN_SQUARE_BRACKET),
645 index,
646 TokenFactory.tokenFromType(TokenType.CLOSE_SQUARE_BRACKET)); 507 TokenFactory.tokenFromType(TokenType.CLOSE_SQUARE_BRACKET));
647 508
648 static InstanceCreationExpression instanceCreationExpression(Keyword keyword, 509 static InstanceCreationExpression instanceCreationExpression(
649 ConstructorName name, [List<Expression> arguments]) => 510 Keyword keyword, ConstructorName name,
650 new InstanceCreationExpression( 511 [List<Expression> arguments]) => new InstanceCreationExpression(
651 keyword == null ? null : TokenFactory.tokenFromKeyword(keyword), 512 keyword == null ? null : TokenFactory.tokenFromKeyword(keyword), name,
652 name, 513 argumentList(arguments));
653 argumentList(arguments));
654 514
655 static InstanceCreationExpression instanceCreationExpression2(Keyword keyword, 515 static InstanceCreationExpression instanceCreationExpression2(
656 TypeName type, [List<Expression> arguments]) => 516 Keyword keyword, TypeName type, [List<Expression> arguments]) =>
657 instanceCreationExpression3(keyword, type, null, arguments); 517 instanceCreationExpression3(keyword, type, null, arguments);
658 518
659 static InstanceCreationExpression instanceCreationExpression3(Keyword keyword, 519 static InstanceCreationExpression instanceCreationExpression3(
660 TypeName type, String identifier, [List<Expression> arguments]) => 520 Keyword keyword, TypeName type, String identifier,
661 instanceCreationExpression( 521 [List<Expression> arguments]) => instanceCreationExpression(keyword,
662 keyword, 522 new ConstructorName(type, identifier == null
663 new ConstructorName( 523 ? null
664 type, 524 : TokenFactory.tokenFromType(TokenType.PERIOD),
665 identifier == null ? null : TokenFactory.tokenFromType(TokenType.P ERIOD), 525 identifier == null ? null : identifier3(identifier)), arguments);
666 identifier == null ? null : identifier3(identifier)),
667 arguments);
668 526
669 static IntegerLiteral integer(int value) => 527 static IntegerLiteral integer(int value) => new IntegerLiteral(
670 new IntegerLiteral( 528 TokenFactory.tokenFromTypeAndString(TokenType.INT, value.toString()),
671 TokenFactory.tokenFromTypeAndString(TokenType.INT, value.toString()), 529 value);
672 value);
673 530
674 static InterpolationExpression 531 static InterpolationExpression interpolationExpression(
675 interpolationExpression(Expression expression) => 532 Expression expression) => new InterpolationExpression(
676 new InterpolationExpression( 533 TokenFactory.tokenFromType(TokenType.STRING_INTERPOLATION_EXPRESSION),
677 TokenFactory.tokenFromType(TokenType.STRING_INTERPOLATION_EXPRESSION), 534 expression, TokenFactory.tokenFromType(TokenType.CLOSE_CURLY_BRACKET));
678 expression,
679 TokenFactory.tokenFromType(TokenType.CLOSE_CURLY_BRACKET));
680 535
681 static InterpolationExpression interpolationExpression2(String identifier) => 536 static InterpolationExpression interpolationExpression2(String identifier) =>
682 new InterpolationExpression( 537 new InterpolationExpression(
683 TokenFactory.tokenFromType(TokenType.STRING_INTERPOLATION_IDENTIFIER), 538 TokenFactory.tokenFromType(TokenType.STRING_INTERPOLATION_IDENTIFIER),
684 identifier3(identifier), 539 identifier3(identifier), null);
685 null);
686 540
687 static InterpolationString interpolationString(String contents, 541 static InterpolationString interpolationString(
688 String value) => 542 String contents, String value) =>
689 new InterpolationString(TokenFactory.tokenFromString(contents), value); 543 new InterpolationString(TokenFactory.tokenFromString(contents), value);
690 544
691 static IsExpression isExpression(Expression expression, bool negated, 545 static IsExpression isExpression(
692 TypeName type) => 546 Expression expression, bool negated, TypeName type) => new IsExpression(
693 new IsExpression( 547 expression, TokenFactory.tokenFromKeyword(Keyword.IS),
694 expression, 548 negated ? TokenFactory.tokenFromType(TokenType.BANG) : null, type);
695 TokenFactory.tokenFromKeyword(Keyword.IS),
696 negated ? TokenFactory.tokenFromType(TokenType.BANG) : null,
697 type);
698 549
699 static Label label(SimpleIdentifier label) => 550 static Label label(SimpleIdentifier label) =>
700 new Label(label, TokenFactory.tokenFromType(TokenType.COLON)); 551 new Label(label, TokenFactory.tokenFromType(TokenType.COLON));
701 552
702 static Label label2(String label) => AstFactory.label(identifier3(label)); 553 static Label label2(String label) => AstFactory.label(identifier3(label));
703 554
704 static LabeledStatement labeledStatement(List<Label> labels, 555 static LabeledStatement labeledStatement(
705 Statement statement) => 556 List<Label> labels, Statement statement) =>
706 new LabeledStatement(labels, statement); 557 new LabeledStatement(labels, statement);
707 558
708 static LibraryDirective libraryDirective(List<Annotation> metadata, 559 static LibraryDirective libraryDirective(
709 LibraryIdentifier libraryName) => 560 List<Annotation> metadata, LibraryIdentifier libraryName) =>
710 new LibraryDirective( 561 new LibraryDirective(null, metadata,
711 null, 562 TokenFactory.tokenFromKeyword(Keyword.LIBRARY), libraryName,
712 metadata,
713 TokenFactory.tokenFromKeyword(Keyword.LIBRARY),
714 libraryName,
715 TokenFactory.tokenFromType(TokenType.SEMICOLON)); 563 TokenFactory.tokenFromType(TokenType.SEMICOLON));
716 564
717 static LibraryDirective libraryDirective2(String libraryName) => 565 static LibraryDirective libraryDirective2(String libraryName) =>
718 libraryDirective(new List<Annotation>(), libraryIdentifier2([libraryName]) ); 566 libraryDirective(
567 new List<Annotation>(), libraryIdentifier2([libraryName]));
719 568
720 static LibraryIdentifier 569 static LibraryIdentifier libraryIdentifier(
721 libraryIdentifier(List<SimpleIdentifier> components) => 570 List<SimpleIdentifier> components) => new LibraryIdentifier(components);
722 new LibraryIdentifier(components);
723 571
724 static LibraryIdentifier libraryIdentifier2(List<String> components) { 572 static LibraryIdentifier libraryIdentifier2(List<String> components) {
725 return new LibraryIdentifier(identifierList(components)); 573 return new LibraryIdentifier(identifierList(components));
726 } 574 }
727 575
728 static List list(List<Object> elements) { 576 static List list(List<Object> elements) {
729 return elements; 577 return elements;
730 } 578 }
731 579
732 static ListLiteral listLiteral([List<Expression> elements]) => 580 static ListLiteral listLiteral([List<Expression> elements]) =>
733 listLiteral2(null, null, elements); 581 listLiteral2(null, null, elements);
734 582
735 static ListLiteral listLiteral2(Keyword keyword, 583 static ListLiteral listLiteral2(
736 TypeArgumentList typeArguments, [List<Expression> elements]) => 584 Keyword keyword, TypeArgumentList typeArguments,
737 new ListLiteral( 585 [List<Expression> elements]) => new ListLiteral(
738 keyword == null ? null : TokenFactory.tokenFromKeyword(keyword), 586 keyword == null ? null : TokenFactory.tokenFromKeyword(keyword),
739 typeArguments, 587 typeArguments, TokenFactory.tokenFromType(TokenType.OPEN_SQUARE_BRACKET),
740 TokenFactory.tokenFromType(TokenType.OPEN_SQUARE_BRACKET), 588 elements, TokenFactory.tokenFromType(TokenType.CLOSE_SQUARE_BRACKET));
741 elements,
742 TokenFactory.tokenFromType(TokenType.CLOSE_SQUARE_BRACKET));
743 589
744 static MapLiteral mapLiteral(Keyword keyword, TypeArgumentList typeArguments, 590 static MapLiteral mapLiteral(Keyword keyword, TypeArgumentList typeArguments,
745 [List<MapLiteralEntry> entries]) => 591 [List<MapLiteralEntry> entries]) => new MapLiteral(
746 new MapLiteral( 592 keyword == null ? null : TokenFactory.tokenFromKeyword(keyword),
747 keyword == null ? null : TokenFactory.tokenFromKeyword(keyword), 593 typeArguments, TokenFactory.tokenFromType(TokenType.OPEN_CURLY_BRACKET),
748 typeArguments, 594 entries, TokenFactory.tokenFromType(TokenType.CLOSE_CURLY_BRACKET));
749 TokenFactory.tokenFromType(TokenType.OPEN_CURLY_BRACKET),
750 entries,
751 TokenFactory.tokenFromType(TokenType.CLOSE_CURLY_BRACKET));
752 595
753 static MapLiteral mapLiteral2([List<MapLiteralEntry> entries]) => 596 static MapLiteral mapLiteral2([List<MapLiteralEntry> entries]) =>
754 mapLiteral(null, null, entries); 597 mapLiteral(null, null, entries);
755 598
756 static MapLiteralEntry mapLiteralEntry(String key, Expression value) => 599 static MapLiteralEntry mapLiteralEntry(String key, Expression value) =>
757 new MapLiteralEntry( 600 new MapLiteralEntry(
758 string2(key), 601 string2(key), TokenFactory.tokenFromType(TokenType.COLON), value);
759 TokenFactory.tokenFromType(TokenType.COLON),
760 value);
761 602
762 static MethodDeclaration methodDeclaration(Keyword modifier, 603 static MethodDeclaration methodDeclaration(Keyword modifier,
763 TypeName returnType, Keyword property, Keyword operator, SimpleIdentifier name, 604 TypeName returnType, Keyword property, Keyword operator,
764 FormalParameterList parameters) => 605 SimpleIdentifier name,
765 new MethodDeclaration( 606 FormalParameterList parameters) => new MethodDeclaration(null, null,
766 null, 607 TokenFactory.tokenFromKeyword(Keyword.EXTERNAL),
767 null, 608 modifier == null ? null : TokenFactory.tokenFromKeyword(modifier),
768 TokenFactory.tokenFromKeyword(Keyword.EXTERNAL), 609 returnType,
769 modifier == null ? null : TokenFactory.tokenFromKeyword(modifier), 610 property == null ? null : TokenFactory.tokenFromKeyword(property),
770 returnType, 611 operator == null ? null : TokenFactory.tokenFromKeyword(operator), name,
771 property == null ? null : TokenFactory.tokenFromKeyword(property), 612 parameters, emptyFunctionBody());
772 operator == null ? null : TokenFactory.tokenFromKeyword(operator),
773 name,
774 parameters,
775 emptyFunctionBody());
776 613
777 static MethodDeclaration methodDeclaration2(Keyword modifier, 614 static MethodDeclaration methodDeclaration2(Keyword modifier,
778 TypeName returnType, Keyword property, Keyword operator, SimpleIdentifier name, 615 TypeName returnType, Keyword property, Keyword operator,
779 FormalParameterList parameters, FunctionBody body) => 616 SimpleIdentifier name, FormalParameterList parameters,
780 new MethodDeclaration( 617 FunctionBody body) => new MethodDeclaration(null, null, null,
781 null, 618 modifier == null ? null : TokenFactory.tokenFromKeyword(modifier),
782 null, 619 returnType,
783 null, 620 property == null ? null : TokenFactory.tokenFromKeyword(property),
784 modifier == null ? null : TokenFactory.tokenFromKeyword(modifier), 621 operator == null ? null : TokenFactory.tokenFromKeyword(operator), name,
785 returnType, 622 parameters, body);
786 property == null ? null : TokenFactory.tokenFromKeyword(property),
787 operator == null ? null : TokenFactory.tokenFromKeyword(operator),
788 name,
789 parameters,
790 body);
791 623
792 static MethodInvocation methodInvocation(Expression target, String methodName, 624 static MethodInvocation methodInvocation(Expression target, String methodName,
793 [List<Expression> arguments]) => 625 [List<Expression> arguments]) => new MethodInvocation(target,
794 new MethodInvocation( 626 target == null ? null : TokenFactory.tokenFromType(TokenType.PERIOD),
795 target, 627 identifier3(methodName), argumentList(arguments));
796 target == null ? null : TokenFactory.tokenFromType(TokenType.PERIOD),
797 identifier3(methodName),
798 argumentList(arguments));
799 628
800 static MethodInvocation methodInvocation2(String methodName, 629 static MethodInvocation methodInvocation2(String methodName,
801 [List<Expression> arguments]) => 630 [List<Expression> arguments]) =>
802 methodInvocation(null, methodName, arguments); 631 methodInvocation(null, methodName, arguments);
803 632
804 static NamedExpression namedExpression(Label label, Expression expression) => 633 static NamedExpression namedExpression(Label label, Expression expression) =>
805 new NamedExpression(label, expression); 634 new NamedExpression(label, expression);
806 635
807 static NamedExpression namedExpression2(String label, 636 static NamedExpression namedExpression2(
808 Expression expression) => 637 String label, Expression expression) =>
809 namedExpression(label2(label), expression); 638 namedExpression(label2(label), expression);
810 639
811 static DefaultFormalParameter 640 static DefaultFormalParameter namedFormalParameter(
812 namedFormalParameter(NormalFormalParameter parameter, Expression expressio n) => 641 NormalFormalParameter parameter, Expression expression) =>
813 new DefaultFormalParameter( 642 new DefaultFormalParameter(parameter, ParameterKind.NAMED,
814 parameter, 643 expression == null
815 ParameterKind.NAMED, 644 ? null
816 expression == null ? null : TokenFactory.tokenFromType(TokenType.COLON ), 645 : TokenFactory.tokenFromType(TokenType.COLON), expression);
817 expression);
818 646
819 static NativeClause nativeClause(String nativeCode) => 647 static NativeClause nativeClause(String nativeCode) => new NativeClause(
820 new NativeClause(TokenFactory.tokenFromString("native"), string2(nativeCod e)); 648 TokenFactory.tokenFromString("native"), string2(nativeCode));
821 649
822 static NativeFunctionBody nativeFunctionBody(String nativeMethodName) => 650 static NativeFunctionBody nativeFunctionBody(String nativeMethodName) =>
823 new NativeFunctionBody( 651 new NativeFunctionBody(TokenFactory.tokenFromString("native"),
824 TokenFactory.tokenFromString("native"),
825 string2(nativeMethodName), 652 string2(nativeMethodName),
826 TokenFactory.tokenFromType(TokenType.SEMICOLON)); 653 TokenFactory.tokenFromType(TokenType.SEMICOLON));
827 654
828 static NullLiteral nullLiteral() => 655 static NullLiteral nullLiteral() =>
829 new NullLiteral(TokenFactory.tokenFromKeyword(Keyword.NULL)); 656 new NullLiteral(TokenFactory.tokenFromKeyword(Keyword.NULL));
830 657
831 static ParenthesizedExpression 658 static ParenthesizedExpression parenthesizedExpression(
832 parenthesizedExpression(Expression expression) => 659 Expression expression) => new ParenthesizedExpression(
833 new ParenthesizedExpression( 660 TokenFactory.tokenFromType(TokenType.OPEN_PAREN), expression,
834 TokenFactory.tokenFromType(TokenType.OPEN_PAREN), 661 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN));
835 expression,
836 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN));
837 662
838 static PartDirective partDirective(List<Annotation> metadata, String url) => 663 static PartDirective partDirective(List<Annotation> metadata, String url) =>
839 new PartDirective( 664 new PartDirective(null, metadata,
840 null, 665 TokenFactory.tokenFromKeyword(Keyword.PART), string2(url),
841 metadata,
842 TokenFactory.tokenFromKeyword(Keyword.PART),
843 string2(url),
844 TokenFactory.tokenFromType(TokenType.SEMICOLON)); 666 TokenFactory.tokenFromType(TokenType.SEMICOLON));
845 667
846 static PartDirective partDirective2(String url) => 668 static PartDirective partDirective2(String url) =>
847 partDirective(new List<Annotation>(), url); 669 partDirective(new List<Annotation>(), url);
848 670
849 static PartOfDirective partOfDirective(LibraryIdentifier libraryName) => 671 static PartOfDirective partOfDirective(LibraryIdentifier libraryName) =>
850 partOfDirective2(new List<Annotation>(), libraryName); 672 partOfDirective2(new List<Annotation>(), libraryName);
851 673
852 static PartOfDirective partOfDirective2(List<Annotation> metadata, 674 static PartOfDirective partOfDirective2(
853 LibraryIdentifier libraryName) => 675 List<Annotation> metadata, LibraryIdentifier libraryName) =>
854 new PartOfDirective( 676 new PartOfDirective(null, metadata,
855 null,
856 metadata,
857 TokenFactory.tokenFromKeyword(Keyword.PART), 677 TokenFactory.tokenFromKeyword(Keyword.PART),
858 TokenFactory.tokenFromString("of"), 678 TokenFactory.tokenFromString("of"), libraryName,
859 libraryName,
860 TokenFactory.tokenFromType(TokenType.SEMICOLON)); 679 TokenFactory.tokenFromType(TokenType.SEMICOLON));
861 680
862 static DefaultFormalParameter 681 static DefaultFormalParameter positionalFormalParameter(
863 positionalFormalParameter(NormalFormalParameter parameter, 682 NormalFormalParameter parameter, Expression expression) =>
864 Expression expression) => 683 new DefaultFormalParameter(parameter, ParameterKind.POSITIONAL,
865 new DefaultFormalParameter(
866 parameter,
867 ParameterKind.POSITIONAL,
868 expression == null ? null : TokenFactory.tokenFromType(TokenType.EQ), 684 expression == null ? null : TokenFactory.tokenFromType(TokenType.EQ),
869 expression); 685 expression);
870 686
871 static PostfixExpression postfixExpression(Expression expression, 687 static PostfixExpression postfixExpression(
872 TokenType operator) => 688 Expression expression, TokenType operator) =>
873 new PostfixExpression(expression, TokenFactory.tokenFromType(operator)); 689 new PostfixExpression(expression, TokenFactory.tokenFromType(operator));
874 690
875 static PrefixExpression prefixExpression(TokenType operator, 691 static PrefixExpression prefixExpression(
876 Expression expression) => 692 TokenType operator, Expression expression) =>
877 new PrefixExpression(TokenFactory.tokenFromType(operator), expression); 693 new PrefixExpression(TokenFactory.tokenFromType(operator), expression);
878 694
879 static PropertyAccess propertyAccess(Expression target, 695 static PropertyAccess propertyAccess(
880 SimpleIdentifier propertyName) => 696 Expression target, SimpleIdentifier propertyName) => new PropertyAccess(
881 new PropertyAccess( 697 target, TokenFactory.tokenFromType(TokenType.PERIOD), propertyName);
882 target,
883 TokenFactory.tokenFromType(TokenType.PERIOD),
884 propertyName);
885 698
886 static PropertyAccess propertyAccess2(Expression target, 699 static PropertyAccess propertyAccess2(
887 String propertyName) => 700 Expression target, String propertyName) => new PropertyAccess(target,
888 new PropertyAccess( 701 TokenFactory.tokenFromType(TokenType.PERIOD), identifier3(propertyName));
889 target,
890 TokenFactory.tokenFromType(TokenType.PERIOD),
891 identifier3(propertyName));
892 702
893 static RedirectingConstructorInvocation 703 static RedirectingConstructorInvocation redirectingConstructorInvocation(
894 redirectingConstructorInvocation([List<Expression> arguments]) => 704 [List<Expression> arguments]) =>
895 redirectingConstructorInvocation2(null, arguments); 705 redirectingConstructorInvocation2(null, arguments);
896 706
897 static RedirectingConstructorInvocation 707 static RedirectingConstructorInvocation redirectingConstructorInvocation2(
898 redirectingConstructorInvocation2(String constructorName, 708 String constructorName, [List<Expression> arguments]) =>
899 [List<Expression> arguments]) =>
900 new RedirectingConstructorInvocation( 709 new RedirectingConstructorInvocation(
901 TokenFactory.tokenFromKeyword(Keyword.THIS), 710 TokenFactory.tokenFromKeyword(Keyword.THIS), constructorName == null
902 constructorName == null ? null : TokenFactory.tokenFromType(TokenType. PERIOD), 711 ? null
712 : TokenFactory.tokenFromType(TokenType.PERIOD),
903 constructorName == null ? null : identifier3(constructorName), 713 constructorName == null ? null : identifier3(constructorName),
904 argumentList(arguments)); 714 argumentList(arguments));
905 715
906 static RethrowExpression rethrowExpression() => 716 static RethrowExpression rethrowExpression() =>
907 new RethrowExpression(TokenFactory.tokenFromKeyword(Keyword.RETHROW)); 717 new RethrowExpression(TokenFactory.tokenFromKeyword(Keyword.RETHROW));
908 718
909 static ReturnStatement returnStatement() => returnStatement2(null); 719 static ReturnStatement returnStatement() => returnStatement2(null);
910 720
911 static ReturnStatement returnStatement2(Expression expression) => 721 static ReturnStatement returnStatement2(Expression expression) =>
912 new ReturnStatement( 722 new ReturnStatement(TokenFactory.tokenFromKeyword(Keyword.RETURN),
913 TokenFactory.tokenFromKeyword(Keyword.RETURN), 723 expression, TokenFactory.tokenFromType(TokenType.SEMICOLON));
914 expression,
915 TokenFactory.tokenFromType(TokenType.SEMICOLON));
916 724
917 static ScriptTag scriptTag(String scriptTag) => 725 static ScriptTag scriptTag(String scriptTag) =>
918 new ScriptTag(TokenFactory.tokenFromString(scriptTag)); 726 new ScriptTag(TokenFactory.tokenFromString(scriptTag));
919 727
920 static ShowCombinator showCombinator(List<SimpleIdentifier> identifiers) => 728 static ShowCombinator showCombinator(List<SimpleIdentifier> identifiers) =>
921 new ShowCombinator(TokenFactory.tokenFromString("show"), identifiers); 729 new ShowCombinator(TokenFactory.tokenFromString("show"), identifiers);
922 730
923 static ShowCombinator showCombinator2(List<String> identifiers) => 731 static ShowCombinator showCombinator2(List<String> identifiers) =>
924 new ShowCombinator( 732 new ShowCombinator(
925 TokenFactory.tokenFromString("show"), 733 TokenFactory.tokenFromString("show"), identifierList(identifiers));
926 identifierList(identifiers));
927 734
928 static SimpleFormalParameter simpleFormalParameter(Keyword keyword, 735 static SimpleFormalParameter simpleFormalParameter(
929 String parameterName) => 736 Keyword keyword, String parameterName) =>
930 simpleFormalParameter2(keyword, null, parameterName); 737 simpleFormalParameter2(keyword, null, parameterName);
931 738
932 static SimpleFormalParameter simpleFormalParameter2(Keyword keyword, 739 static SimpleFormalParameter simpleFormalParameter2(
933 TypeName type, String parameterName) => 740 Keyword keyword, TypeName type, String parameterName) =>
934 new SimpleFormalParameter( 741 new SimpleFormalParameter(null, null,
935 null, 742 keyword == null ? null : TokenFactory.tokenFromKeyword(keyword), type,
936 null,
937 keyword == null ? null : TokenFactory.tokenFromKeyword(keyword),
938 type,
939 identifier3(parameterName)); 743 identifier3(parameterName));
940 744
941 static SimpleFormalParameter simpleFormalParameter3(String parameterName) => 745 static SimpleFormalParameter simpleFormalParameter3(String parameterName) =>
942 simpleFormalParameter2(null, null, parameterName); 746 simpleFormalParameter2(null, null, parameterName);
943 747
944 static SimpleFormalParameter simpleFormalParameter4(TypeName type, 748 static SimpleFormalParameter simpleFormalParameter4(
945 String parameterName) => 749 TypeName type, String parameterName) =>
946 simpleFormalParameter2(null, type, parameterName); 750 simpleFormalParameter2(null, type, parameterName);
947 751
948 static StringInterpolation string([List<InterpolationElement> elements]) => 752 static StringInterpolation string([List<InterpolationElement> elements]) =>
949 new StringInterpolation(elements); 753 new StringInterpolation(elements);
950 754
951 static SimpleStringLiteral string2(String content) => 755 static SimpleStringLiteral string2(String content) => new SimpleStringLiteral(
952 new SimpleStringLiteral(TokenFactory.tokenFromString("'$content'"), conten t); 756 TokenFactory.tokenFromString("'$content'"), content);
953 757
954 static SuperConstructorInvocation 758 static SuperConstructorInvocation superConstructorInvocation(
955 superConstructorInvocation([List<Expression> arguments]) => 759 [List<Expression> arguments]) =>
956 superConstructorInvocation2(null, arguments); 760 superConstructorInvocation2(null, arguments);
957 761
958 static SuperConstructorInvocation superConstructorInvocation2(String name, 762 static SuperConstructorInvocation superConstructorInvocation2(String name,
959 [List<Expression> arguments]) => 763 [List<Expression> arguments]) => new SuperConstructorInvocation(
960 new SuperConstructorInvocation( 764 TokenFactory.tokenFromKeyword(Keyword.SUPER),
961 TokenFactory.tokenFromKeyword(Keyword.SUPER), 765 name == null ? null : TokenFactory.tokenFromType(TokenType.PERIOD),
962 name == null ? null : TokenFactory.tokenFromType(TokenType.PERIOD), 766 name == null ? null : identifier3(name), argumentList(arguments));
963 name == null ? null : identifier3(name),
964 argumentList(arguments));
965 767
966 static SuperExpression superExpression() => 768 static SuperExpression superExpression() =>
967 new SuperExpression(TokenFactory.tokenFromKeyword(Keyword.SUPER)); 769 new SuperExpression(TokenFactory.tokenFromKeyword(Keyword.SUPER));
968 770
969 static SwitchCase switchCase(Expression expression, 771 static SwitchCase switchCase(
970 List<Statement> statements) => 772 Expression expression, List<Statement> statements) =>
971 switchCase2(new List<Label>(), expression, statements); 773 switchCase2(new List<Label>(), expression, statements);
972 774
973 static SwitchCase switchCase2(List<Label> labels, Expression expression, 775 static SwitchCase switchCase2(List<Label> labels, Expression expression,
974 List<Statement> statements) => 776 List<Statement> statements) => new SwitchCase(labels,
975 new SwitchCase( 777 TokenFactory.tokenFromKeyword(Keyword.CASE), expression,
976 labels, 778 TokenFactory.tokenFromType(TokenType.COLON), statements);
977 TokenFactory.tokenFromKeyword(Keyword.CASE),
978 expression,
979 TokenFactory.tokenFromType(TokenType.COLON),
980 statements);
981 779
982 static SwitchDefault switchDefault(List<Label> labels, 780 static SwitchDefault switchDefault(
983 List<Statement> statements) => 781 List<Label> labels, List<Statement> statements) => new SwitchDefault(
984 new SwitchDefault( 782 labels, TokenFactory.tokenFromKeyword(Keyword.DEFAULT),
985 labels, 783 TokenFactory.tokenFromType(TokenType.COLON), statements);
986 TokenFactory.tokenFromKeyword(Keyword.DEFAULT),
987 TokenFactory.tokenFromType(TokenType.COLON),
988 statements);
989 784
990 static SwitchDefault switchDefault2(List<Statement> statements) => 785 static SwitchDefault switchDefault2(List<Statement> statements) =>
991 switchDefault(new List<Label>(), statements); 786 switchDefault(new List<Label>(), statements);
992 787
993 static SwitchStatement switchStatement(Expression expression, 788 static SwitchStatement switchStatement(
994 List<SwitchMember> members) => 789 Expression expression, List<SwitchMember> members) => new SwitchStatement(
995 new SwitchStatement( 790 TokenFactory.tokenFromKeyword(Keyword.SWITCH),
996 TokenFactory.tokenFromKeyword(Keyword.SWITCH), 791 TokenFactory.tokenFromType(TokenType.OPEN_PAREN), expression,
997 TokenFactory.tokenFromType(TokenType.OPEN_PAREN), 792 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN),
998 expression, 793 TokenFactory.tokenFromType(TokenType.OPEN_CURLY_BRACKET), members,
999 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN), 794 TokenFactory.tokenFromType(TokenType.CLOSE_CURLY_BRACKET));
1000 TokenFactory.tokenFromType(TokenType.OPEN_CURLY_BRACKET),
1001 members,
1002 TokenFactory.tokenFromType(TokenType.CLOSE_CURLY_BRACKET));
1003 795
1004 static SymbolLiteral symbolLiteral(List<String> components) { 796 static SymbolLiteral symbolLiteral(List<String> components) {
1005 List<Token> identifierList = new List<Token>(); 797 List<Token> identifierList = new List<Token>();
1006 for (String component in components) { 798 for (String component in components) {
1007 identifierList.add( 799 identifierList.add(
1008 TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, component)); 800 TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, component));
1009 } 801 }
1010 return new SymbolLiteral( 802 return new SymbolLiteral(
1011 TokenFactory.tokenFromType(TokenType.HASH), 803 TokenFactory.tokenFromType(TokenType.HASH), identifierList);
1012 identifierList);
1013 } 804 }
1014 805
1015 static BlockFunctionBody 806 static BlockFunctionBody syncBlockFunctionBody(
1016 syncBlockFunctionBody([List<Statement> statements]) => 807 [List<Statement> statements]) => new BlockFunctionBody(
1017 new BlockFunctionBody( 808 TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "sync"), null,
1018 TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "sync"), 809 block(statements));
1019 null,
1020 block(statements));
1021 810
1022 static BlockFunctionBody 811 static BlockFunctionBody syncGeneratorBlockFunctionBody(
1023 syncGeneratorBlockFunctionBody([List<Statement> statements]) => 812 [List<Statement> statements]) => new BlockFunctionBody(
1024 new BlockFunctionBody( 813 TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "sync"),
1025 TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "sync"), 814 TokenFactory.tokenFromType(TokenType.STAR), block(statements));
1026 TokenFactory.tokenFromType(TokenType.STAR),
1027 block(statements));
1028 815
1029 static ThisExpression thisExpression() => 816 static ThisExpression thisExpression() =>
1030 new ThisExpression(TokenFactory.tokenFromKeyword(Keyword.THIS)); 817 new ThisExpression(TokenFactory.tokenFromKeyword(Keyword.THIS));
1031 818
1032 static ThrowExpression throwExpression() => throwExpression2(null); 819 static ThrowExpression throwExpression() => throwExpression2(null);
1033 820
1034 static ThrowExpression throwExpression2(Expression expression) => 821 static ThrowExpression throwExpression2(Expression expression) =>
1035 new ThrowExpression(TokenFactory.tokenFromKeyword(Keyword.THROW), expressi on); 822 new ThrowExpression(
823 TokenFactory.tokenFromKeyword(Keyword.THROW), expression);
1036 824
1037 static TopLevelVariableDeclaration 825 static TopLevelVariableDeclaration topLevelVariableDeclaration(
1038 topLevelVariableDeclaration(Keyword keyword, TypeName type, 826 Keyword keyword, TypeName type,
1039 List<VariableDeclaration> variables) => 827 List<VariableDeclaration> variables) => new TopLevelVariableDeclaration(
1040 new TopLevelVariableDeclaration( 828 null, null, variableDeclarationList(keyword, type, variables),
1041 null, 829 TokenFactory.tokenFromType(TokenType.SEMICOLON));
1042 null,
1043 variableDeclarationList(keyword, type, variables),
1044 TokenFactory.tokenFromType(TokenType.SEMICOLON));
1045 830
1046 static TopLevelVariableDeclaration 831 static TopLevelVariableDeclaration topLevelVariableDeclaration2(
1047 topLevelVariableDeclaration2(Keyword keyword, 832 Keyword keyword, List<VariableDeclaration> variables) =>
1048 List<VariableDeclaration> variables) => 833 new TopLevelVariableDeclaration(null, null,
1049 new TopLevelVariableDeclaration(
1050 null,
1051 null,
1052 variableDeclarationList(keyword, null, variables), 834 variableDeclarationList(keyword, null, variables),
1053 TokenFactory.tokenFromType(TokenType.SEMICOLON)); 835 TokenFactory.tokenFromType(TokenType.SEMICOLON));
1054 836
1055 static TryStatement tryStatement(Block body, Block finallyClause) => 837 static TryStatement tryStatement(Block body, Block finallyClause) =>
1056 tryStatement3(body, new List<CatchClause>(), finallyClause); 838 tryStatement3(body, new List<CatchClause>(), finallyClause);
1057 839
1058 static TryStatement tryStatement2(Block body, 840 static TryStatement tryStatement2(
1059 List<CatchClause> catchClauses) => 841 Block body, List<CatchClause> catchClauses) =>
1060 tryStatement3(body, catchClauses, null); 842 tryStatement3(body, catchClauses, null);
1061 843
1062 static TryStatement tryStatement3(Block body, List<CatchClause> catchClauses, 844 static TryStatement tryStatement3(
1063 Block finallyClause) => 845 Block body, List<CatchClause> catchClauses, Block finallyClause) =>
1064 new TryStatement( 846 new TryStatement(TokenFactory.tokenFromKeyword(Keyword.TRY), body,
1065 TokenFactory.tokenFromKeyword(Keyword.TRY), 847 catchClauses, finallyClause == null
1066 body, 848 ? null
1067 catchClauses, 849 : TokenFactory.tokenFromKeyword(Keyword.FINALLY), finallyClause);
1068 finallyClause == null ? null : TokenFactory.tokenFromKeyword(Keyword.F INALLY),
1069 finallyClause);
1070 850
1071 static FunctionTypeAlias typeAlias(TypeName returnType, String name, 851 static FunctionTypeAlias typeAlias(TypeName returnType, String name,
1072 TypeParameterList typeParameters, FormalParameterList parameters) => 852 TypeParameterList typeParameters, FormalParameterList parameters) =>
1073 new FunctionTypeAlias( 853 new FunctionTypeAlias(null, null,
1074 null, 854 TokenFactory.tokenFromKeyword(Keyword.TYPEDEF), returnType,
1075 null, 855 identifier3(name), typeParameters, parameters,
1076 TokenFactory.tokenFromKeyword(Keyword.TYPEDEF),
1077 returnType,
1078 identifier3(name),
1079 typeParameters,
1080 parameters,
1081 TokenFactory.tokenFromType(TokenType.SEMICOLON)); 856 TokenFactory.tokenFromType(TokenType.SEMICOLON));
1082 857
1083 static TypeArgumentList typeArgumentList(List<TypeName> typeNames) { 858 static TypeArgumentList typeArgumentList(List<TypeName> typeNames) {
1084 if (typeNames == null || typeNames.length == 0) { 859 if (typeNames == null || typeNames.length == 0) {
1085 return null; 860 return null;
1086 } 861 }
1087 return new TypeArgumentList( 862 return new TypeArgumentList(TokenFactory.tokenFromType(TokenType.LT),
1088 TokenFactory.tokenFromType(TokenType.LT), 863 typeNames, TokenFactory.tokenFromType(TokenType.GT));
1089 typeNames,
1090 TokenFactory.tokenFromType(TokenType.GT));
1091 } 864 }
1092 865
1093 /** 866 /**
1094 * Create a type name whose name has been resolved to the given [element] and 867 * Create a type name whose name has been resolved to the given [element] and
1095 * whose type has been resolved to the type of the given element. 868 * whose type has been resolved to the type of the given element.
1096 * 869 *
1097 * <b>Note:</b> This method does not correctly handle class elements that have 870 * <b>Note:</b> This method does not correctly handle class elements that have
1098 * type parameters. 871 * type parameters.
1099 */ 872 */
1100 static TypeName typeName(ClassElement element, [List<TypeName> arguments]) { 873 static TypeName typeName(ClassElement element, [List<TypeName> arguments]) {
1101 SimpleIdentifier name = identifier3(element.name); 874 SimpleIdentifier name = identifier3(element.name);
1102 name.staticElement = element; 875 name.staticElement = element;
1103 TypeName typeName = typeName3(name, arguments); 876 TypeName typeName = typeName3(name, arguments);
1104 typeName.type = element.type; 877 typeName.type = element.type;
1105 return typeName; 878 return typeName;
1106 } 879 }
1107 880
1108 static TypeName typeName3(Identifier name, [List<TypeName> arguments]) => 881 static TypeName typeName3(Identifier name, [List<TypeName> arguments]) =>
1109 new TypeName(name, typeArgumentList(arguments)); 882 new TypeName(name, typeArgumentList(arguments));
1110 883
1111 static TypeName typeName4(String name, [List<TypeName> arguments]) => 884 static TypeName typeName4(String name, [List<TypeName> arguments]) =>
1112 new TypeName(identifier3(name), typeArgumentList(arguments)); 885 new TypeName(identifier3(name), typeArgumentList(arguments));
1113 886
1114 static TypeParameter typeParameter(String name) => 887 static TypeParameter typeParameter(String name) =>
1115 new TypeParameter(null, null, identifier3(name), null, null); 888 new TypeParameter(null, null, identifier3(name), null, null);
1116 889
1117 static TypeParameter typeParameter2(String name, TypeName bound) => 890 static TypeParameter typeParameter2(String name, TypeName bound) =>
1118 new TypeParameter( 891 new TypeParameter(null, null, identifier3(name),
1119 null, 892 TokenFactory.tokenFromKeyword(Keyword.EXTENDS), bound);
1120 null,
1121 identifier3(name),
1122 TokenFactory.tokenFromKeyword(Keyword.EXTENDS),
1123 bound);
1124 893
1125 static TypeParameterList typeParameterList([List<String> typeNames]) { 894 static TypeParameterList typeParameterList([List<String> typeNames]) {
1126 List<TypeParameter> typeParameters = null; 895 List<TypeParameter> typeParameters = null;
1127 if (typeNames != null && !typeNames.isEmpty) { 896 if (typeNames != null && !typeNames.isEmpty) {
1128 typeParameters = new List<TypeParameter>(); 897 typeParameters = new List<TypeParameter>();
1129 for (String typeName in typeNames) { 898 for (String typeName in typeNames) {
1130 typeParameters.add(typeParameter(typeName)); 899 typeParameters.add(typeParameter(typeName));
1131 } 900 }
1132 } 901 }
1133 return new TypeParameterList( 902 return new TypeParameterList(TokenFactory.tokenFromType(TokenType.LT),
1134 TokenFactory.tokenFromType(TokenType.LT), 903 typeParameters, TokenFactory.tokenFromType(TokenType.GT));
1135 typeParameters,
1136 TokenFactory.tokenFromType(TokenType.GT));
1137 } 904 }
1138 905
1139 static VariableDeclaration variableDeclaration(String name) => 906 static VariableDeclaration variableDeclaration(String name) =>
1140 new VariableDeclaration(null, null, identifier3(name), null, null); 907 new VariableDeclaration(null, null, identifier3(name), null, null);
1141 908
1142 static VariableDeclaration variableDeclaration2(String name, 909 static VariableDeclaration variableDeclaration2(
1143 Expression initializer) => 910 String name, Expression initializer) => new VariableDeclaration(null,
1144 new VariableDeclaration( 911 null, identifier3(name), TokenFactory.tokenFromType(TokenType.EQ),
1145 null, 912 initializer);
1146 null,
1147 identifier3(name),
1148 TokenFactory.tokenFromType(TokenType.EQ),
1149 initializer);
1150 913
1151 static VariableDeclarationList variableDeclarationList(Keyword keyword, 914 static VariableDeclarationList variableDeclarationList(Keyword keyword,
1152 TypeName type, List<VariableDeclaration> variables) => 915 TypeName type, List<VariableDeclaration> variables) =>
1153 new VariableDeclarationList( 916 new VariableDeclarationList(null, null,
1154 null, 917 keyword == null ? null : TokenFactory.tokenFromKeyword(keyword), type,
1155 null,
1156 keyword == null ? null : TokenFactory.tokenFromKeyword(keyword),
1157 type,
1158 variables); 918 variables);
1159 919
1160 static VariableDeclarationList variableDeclarationList2(Keyword keyword, 920 static VariableDeclarationList variableDeclarationList2(
1161 List<VariableDeclaration> variables) => 921 Keyword keyword, List<VariableDeclaration> variables) =>
1162 variableDeclarationList(keyword, null, variables); 922 variableDeclarationList(keyword, null, variables);
1163 923
1164 static VariableDeclarationStatement 924 static VariableDeclarationStatement variableDeclarationStatement(
1165 variableDeclarationStatement(Keyword keyword, TypeName type, 925 Keyword keyword, TypeName type,
1166 List<VariableDeclaration> variables) => 926 List<VariableDeclaration> variables) => new VariableDeclarationStatement(
1167 new VariableDeclarationStatement( 927 variableDeclarationList(keyword, type, variables),
1168 variableDeclarationList(keyword, type, variables), 928 TokenFactory.tokenFromType(TokenType.SEMICOLON));
1169 TokenFactory.tokenFromType(TokenType.SEMICOLON));
1170 929
1171 static VariableDeclarationStatement 930 static VariableDeclarationStatement variableDeclarationStatement2(
1172 variableDeclarationStatement2(Keyword keyword, 931 Keyword keyword, List<VariableDeclaration> variables) =>
1173 List<VariableDeclaration> variables) =>
1174 variableDeclarationStatement(keyword, null, variables); 932 variableDeclarationStatement(keyword, null, variables);
1175 933
1176 static WhileStatement whileStatement(Expression condition, Statement body) => 934 static WhileStatement whileStatement(Expression condition, Statement body) =>
1177 new WhileStatement( 935 new WhileStatement(TokenFactory.tokenFromKeyword(Keyword.WHILE),
1178 TokenFactory.tokenFromKeyword(Keyword.WHILE), 936 TokenFactory.tokenFromType(TokenType.OPEN_PAREN), condition,
1179 TokenFactory.tokenFromType(TokenType.OPEN_PAREN), 937 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN), body);
1180 condition,
1181 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN),
1182 body);
1183 938
1184 static WithClause withClause(List<TypeName> types) => 939 static WithClause withClause(List<TypeName> types) =>
1185 new WithClause(TokenFactory.tokenFromKeyword(Keyword.WITH), types); 940 new WithClause(TokenFactory.tokenFromKeyword(Keyword.WITH), types);
1186 941
1187 static YieldStatement yieldEachStatement(Expression expression) => 942 static YieldStatement yieldEachStatement(Expression expression) =>
1188 new YieldStatement( 943 new YieldStatement(
1189 TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "yield"), 944 TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "yield"),
1190 TokenFactory.tokenFromType(TokenType.STAR), 945 TokenFactory.tokenFromType(TokenType.STAR), expression,
1191 expression,
1192 TokenFactory.tokenFromType(TokenType.SEMICOLON)); 946 TokenFactory.tokenFromType(TokenType.SEMICOLON));
1193 947
1194 static YieldStatement yieldStatement(Expression expression) => 948 static YieldStatement yieldStatement(
1195 new YieldStatement( 949 Expression expression) => new YieldStatement(
1196 TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "yield"), 950 TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "yield"), null,
1197 null, 951 expression, TokenFactory.tokenFromType(TokenType.SEMICOLON));
1198 expression,
1199 TokenFactory.tokenFromType(TokenType.SEMICOLON));
1200 } 952 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/generated/static_type_analyzer.dart ('k') | pkg/analyzer/lib/src/generated/testing/element_factory.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698