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

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

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

Powered by Google App Engine
This is Rietveld 408576698