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

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

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

Powered by Google App Engine
This is Rietveld 408576698