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

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

Issue 712083003: Create fewer unnecessary lists (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 // This code was auto-generated, is not intended to be edited, and is subject to 5 // This code was auto-generated, is not intended to be edited, and is subject to
6 // significant change. Please see the README file for more information. 6 // significant change. Please see the README file for more information.
7 7
8 library engine.testing.ast_factory; 8 library engine.testing.ast_factory;
9 9
10 import 'package:analyzer/src/generated/utilities_dart.dart'; 10 import 'package:analyzer/src/generated/utilities_dart.dart';
11 import 'package:analyzer/src/generated/ast.dart'; 11 import 'package:analyzer/src/generated/ast.dart';
12 import 'package:analyzer/src/generated/element.dart'; 12 import 'package:analyzer/src/generated/element.dart';
13 import 'package:analyzer/src/generated/scanner.dart'; 13 import 'package:analyzer/src/generated/scanner.dart';
14 import 'package:analyzer/src/generated/testing/token_factory.dart'; 14 import 'package:analyzer/src/generated/testing/token_factory.dart';
15 15
16 /** 16 /**
17 * The class `AstFactory` defines utility methods that can be used to create AST nodes. The 17 * The class `AstFactory` defines utility methods that can be used to create AST nodes. The
18 * nodes that are created are complete in the sense that all of the tokens that would have been 18 * nodes that are created are complete in the sense that all of the tokens that would have been
19 * associated with the nodes by a parser are also created, but the token stream is not constructed. 19 * associated with the nodes by a parser are also created, but the token stream is not constructed.
20 * None of the nodes are resolved. 20 * None of the nodes are resolved.
21 * 21 *
22 * The general pattern is for the name of the factory method to be the same as t he name of the class 22 * The general pattern is for the name of the factory method to be the same as t he name of the class
23 * of AST node being created. There are two notable exceptions. The first is for methods creating 23 * of AST node being created. There are two notable exceptions. The first is for methods creating
24 * nodes that are part of a cascade expression. These methods are all prefixed w ith 'cascaded'. The 24 * nodes that are part of a cascade expression. These methods are all prefixed w ith 'cascaded'. The
25 * second is places where a shorter name seemed unambiguous and easier to read, such as using 25 * second is places where a shorter name seemed unambiguous and easier to read, such as using
26 * 'identifier' rather than 'prefixedIdentifier', or 'integer' rather than 'inte gerLiteral'. 26 * 'identifier' rather than 'prefixedIdentifier', or 'integer' rather than 'inte gerLiteral'.
27 */ 27 */
28 class AstFactory { 28 class AstFactory {
29 static AdjacentStrings adjacentStrings(List<StringLiteral> strings) => new Adj acentStrings(list(strings)); 29 static AdjacentStrings adjacentStrings(List<StringLiteral> strings) => new Adj acentStrings(strings);
30 30
31 static Annotation annotation(Identifier name) => new Annotation(TokenFactory.t okenFromType(TokenType.AT), name, null, null, null); 31 static Annotation annotation(Identifier name) => new Annotation(TokenFactory.t okenFromType(TokenType.AT), name, null, null, null);
32 32
33 static Annotation annotation2(Identifier name, SimpleIdentifier constructorNam e, ArgumentList arguments) => new Annotation(TokenFactory.tokenFromType(TokenTyp e.AT), name, TokenFactory.tokenFromType(TokenType.PERIOD), constructorName, argu ments); 33 static Annotation annotation2(Identifier name, SimpleIdentifier constructorNam e, ArgumentList arguments) => new Annotation(TokenFactory.tokenFromType(TokenTyp e.AT), name, TokenFactory.tokenFromType(TokenType.PERIOD), constructorName, argu ments);
34 34
35 static ArgumentList argumentList(List<Expression> arguments) => new ArgumentLi st(TokenFactory.tokenFromType(TokenType.OPEN_PAREN), list(arguments), TokenFacto ry.tokenFromType(TokenType.CLOSE_PAREN)); 35 static ArgumentList argumentList([List<Expression> arguments])
36 => new ArgumentList(
37 TokenFactory.tokenFromType(TokenType.OPEN_PAREN),
38 arguments,
39 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN));
36 40
37 static AsExpression asExpression(Expression expression, TypeName type) => new AsExpression(expression, TokenFactory.tokenFromKeyword(Keyword.AS), type); 41 static AsExpression asExpression(Expression expression, TypeName type) => new AsExpression(expression, TokenFactory.tokenFromKeyword(Keyword.AS), type);
38 42
39 static AssertStatement assertStatement(Expression condition) => new AssertStat ement(TokenFactory.tokenFromKeyword(Keyword.ASSERT), TokenFactory.tokenFromType( TokenType.OPEN_PAREN), condition, TokenFactory.tokenFromType(TokenType.CLOSE_PAR EN), TokenFactory.tokenFromType(TokenType.SEMICOLON)); 43 static AssertStatement assertStatement(Expression condition) => new AssertStat ement(TokenFactory.tokenFromKeyword(Keyword.ASSERT), TokenFactory.tokenFromType( TokenType.OPEN_PAREN), condition, TokenFactory.tokenFromType(TokenType.CLOSE_PAR EN), TokenFactory.tokenFromType(TokenType.SEMICOLON));
40 44
41 static AssignmentExpression assignmentExpression(Expression leftHandSide, Toke nType operator, Expression rightHandSide) => new AssignmentExpression(leftHandSi de, TokenFactory.tokenFromType(operator), rightHandSide); 45 static AssignmentExpression assignmentExpression(Expression leftHandSide, Toke nType operator, Expression rightHandSide) => new AssignmentExpression(leftHandSi de, TokenFactory.tokenFromType(operator), rightHandSide);
42 46
43 static BlockFunctionBody asyncBlockFunctionBody(List<Statement> statements) => new BlockFunctionBody(TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "async"), null, block(statements)); 47 static BlockFunctionBody asyncBlockFunctionBody([List<Statement> statements])
48 => new BlockFunctionBody(
49 TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "async"),
50 null,
51 block(statements));
44 52
45 static ExpressionFunctionBody asyncExpressionFunctionBody(Expression expressio n) => new ExpressionFunctionBody(TokenFactory.tokenFromTypeAndString(TokenType.I DENTIFIER, "async"), TokenFactory.tokenFromType(TokenType.FUNCTION), expression, TokenFactory.tokenFromType(TokenType.SEMICOLON)); 53 static ExpressionFunctionBody asyncExpressionFunctionBody(Expression expressio n) => new ExpressionFunctionBody(TokenFactory.tokenFromTypeAndString(TokenType.I DENTIFIER, "async"), TokenFactory.tokenFromType(TokenType.FUNCTION), expression, TokenFactory.tokenFromType(TokenType.SEMICOLON));
46 54
47 static BlockFunctionBody asyncGeneratorBlockFunctionBody(List<Statement> state ments) => new BlockFunctionBody(TokenFactory.tokenFromTypeAndString(TokenType.ID ENTIFIER, "async"), TokenFactory.tokenFromType(TokenType.STAR), block(statements )); 55 static BlockFunctionBody asyncGeneratorBlockFunctionBody([List<Statement> stat ements])
56 => new BlockFunctionBody(
57 TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "async"),
58 TokenFactory.tokenFromType(TokenType.STAR),
59 block(statements));
48 60
49 static AwaitExpression awaitExpression(Expression expression) => new AwaitExpr ession(TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "await"), expre ssion); 61 static AwaitExpression awaitExpression(Expression expression) => new AwaitExpr ession(TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "await"), expre ssion);
50 62
51 static BinaryExpression binaryExpression(Expression leftOperand, TokenType ope rator, Expression rightOperand) => new BinaryExpression(leftOperand, TokenFactor y.tokenFromType(operator), rightOperand); 63 static BinaryExpression binaryExpression(Expression leftOperand, TokenType ope rator, Expression rightOperand) => new BinaryExpression(leftOperand, TokenFactor y.tokenFromType(operator), rightOperand);
52 64
53 static Block block(List<Statement> statements) => new Block(TokenFactory.token FromType(TokenType.OPEN_CURLY_BRACKET), list(statements), TokenFactory.tokenFrom Type(TokenType.CLOSE_CURLY_BRACKET)); 65 static Block block([List<Statement> statements])
66 => new Block(
67 TokenFactory.tokenFromType(TokenType.OPEN_CURLY_BRACKET),
68 statements,
69 TokenFactory.tokenFromType(TokenType.CLOSE_CURLY_BRACKET));
54 70
55 static BlockFunctionBody blockFunctionBody(Block block) => new BlockFunctionBo dy(null, null, block); 71 static BlockFunctionBody blockFunctionBody(Block block)
72 => new BlockFunctionBody(null, null, block);
56 73
57 static BlockFunctionBody blockFunctionBody2(List<Statement> statements) => new BlockFunctionBody(null, null, block(statements)); 74 static BlockFunctionBody blockFunctionBody2([List<Statement> statements])
75 => new BlockFunctionBody(null, null, block(statements));
58 76
59 static BooleanLiteral booleanLiteral(bool value) => new BooleanLiteral(value ? TokenFactory.tokenFromKeyword(Keyword.TRUE) : TokenFactory.tokenFromKeyword(Key word.FALSE), value); 77 static BooleanLiteral booleanLiteral(bool value) => new BooleanLiteral(value ? TokenFactory.tokenFromKeyword(Keyword.TRUE) : TokenFactory.tokenFromKeyword(Key word.FALSE), value);
60 78
61 static BreakStatement breakStatement() => new BreakStatement(TokenFactory.toke nFromKeyword(Keyword.BREAK), null, TokenFactory.tokenFromType(TokenType.SEMICOLO N)); 79 static BreakStatement breakStatement() => new BreakStatement(TokenFactory.toke nFromKeyword(Keyword.BREAK), null, TokenFactory.tokenFromType(TokenType.SEMICOLO N));
62 80
63 static BreakStatement breakStatement2(String label) => new BreakStatement(Toke nFactory.tokenFromKeyword(Keyword.BREAK), identifier3(label), TokenFactory.token FromType(TokenType.SEMICOLON)); 81 static BreakStatement breakStatement2(String label) => new BreakStatement(Toke nFactory.tokenFromKeyword(Keyword.BREAK), identifier3(label), TokenFactory.token FromType(TokenType.SEMICOLON));
64 82
65 static IndexExpression cascadedIndexExpression(Expression index) => new IndexE xpression.forCascade(TokenFactory.tokenFromType(TokenType.PERIOD_PERIOD), TokenF actory.tokenFromType(TokenType.OPEN_SQUARE_BRACKET), index, TokenFactory.tokenFr omType(TokenType.CLOSE_SQUARE_BRACKET)); 83 static IndexExpression cascadedIndexExpression(Expression index) => new IndexE xpression.forCascade(TokenFactory.tokenFromType(TokenType.PERIOD_PERIOD), TokenF actory.tokenFromType(TokenType.OPEN_SQUARE_BRACKET), index, TokenFactory.tokenFr omType(TokenType.CLOSE_SQUARE_BRACKET));
66 84
67 static MethodInvocation cascadedMethodInvocation(String methodName, List<Expre ssion> arguments) => new MethodInvocation(null, TokenFactory.tokenFromType(Token Type.PERIOD_PERIOD), identifier3(methodName), argumentList(arguments)); 85 static MethodInvocation cascadedMethodInvocation(String methodName, [List<Expr ession> arguments])
86 => new MethodInvocation(
87 null,
88 TokenFactory.tokenFromType(TokenType.PERIOD_PERIOD),
89 identifier3(methodName),
90 argumentList(arguments));
68 91
69 static PropertyAccess cascadedPropertyAccess(String propertyName) => new Prope rtyAccess(null, TokenFactory.tokenFromType(TokenType.PERIOD_PERIOD), identifier3 (propertyName)); 92 static PropertyAccess cascadedPropertyAccess(String propertyName) => new Prope rtyAccess(null, TokenFactory.tokenFromType(TokenType.PERIOD_PERIOD), identifier3 (propertyName));
70 93
71 static CascadeExpression cascadeExpression(Expression target, List<Expression> cascadeSections) => new CascadeExpression(target, list(cascadeSections)); 94 static CascadeExpression cascadeExpression(Expression target, [List<Expression > cascadeSections])
95 => new CascadeExpression(target, cascadeSections);
72 96
73 static CatchClause catchClause(String exceptionParameter, List<Statement> stat ements) => catchClause5(null, exceptionParameter, null, statements); 97 static CatchClause catchClause(String exceptionParameter, [List<Statement> sta tements])
98 => catchClause5(null, exceptionParameter, null, statements);
74 99
75 static CatchClause catchClause2(String exceptionParameter, String stackTracePa rameter, List<Statement> statements) => catchClause5(null, exceptionParameter, s tackTraceParameter, statements); 100 static CatchClause catchClause2(String exceptionParameter, String stackTracePa rameter, [List<Statement> statements])
101 => catchClause5(null, exceptionParameter, stackTraceParameter, statements) ;
76 102
77 static CatchClause catchClause3(TypeName exceptionType, List<Statement> statem ents) => catchClause5(exceptionType, null, null, statements); 103 static CatchClause catchClause3(TypeName exceptionType, [List<Statement> state ments])
104 => catchClause5(exceptionType, null, null, statements);
78 105
79 static CatchClause catchClause4(TypeName exceptionType, String exceptionParame ter, List<Statement> statements) => catchClause5(exceptionType, exceptionParamet er, null, statements); 106 static CatchClause catchClause4(TypeName exceptionType, String exceptionParame ter, [List<Statement> statements])
107 => catchClause5(exceptionType, exceptionParameter, null, statements);
80 108
81 static CatchClause catchClause5(TypeName exceptionType, String exceptionParame ter, String stackTraceParameter, List<Statement> statements) => new CatchClause( exceptionType == null ? null : TokenFactory.tokenFromTypeAndString(TokenType.IDE NTIFIER, "on"), exceptionType, exceptionParameter == null ? null : TokenFactory. tokenFromKeyword(Keyword.CATCH), exceptionParameter == null ? null : TokenFactor y.tokenFromType(TokenType.OPEN_PAREN), exceptionParameter == null ? null : ident ifier3(exceptionParameter), stackTraceParameter == null ? null : TokenFactory.to kenFromType(TokenType.COMMA), stackTraceParameter == null ? null : identifier3(s tackTraceParameter), exceptionParameter == null ? null : TokenFactory.tokenFromT ype(TokenType.CLOSE_PAREN), block(statements)); 109 static CatchClause catchClause5(TypeName exceptionType, String exceptionParame ter, String stackTraceParameter, [List<Statement> statements])
110 => new CatchClause(
111 exceptionType == null ? null : TokenFactory.tokenFromTypeAndString(Tok enType.IDENTIFIER, "on"),
112 exceptionType,
113 exceptionParameter == null ? null : TokenFactory.tokenFromKeyword(Keyw ord.CATCH),
114 exceptionParameter == null ? null : TokenFactory.tokenFromType(TokenTy pe.OPEN_PAREN),
115 exceptionParameter == null ? null : identifier3(exceptionParameter),
116 stackTraceParameter == null ? null : TokenFactory.tokenFromType(TokenT ype.COMMA),
117 stackTraceParameter == null ? null : identifier3(stackTraceParameter),
118 exceptionParameter == null ? null : TokenFactory.tokenFromType(TokenTy pe.CLOSE_PAREN),
119 block(statements));
82 120
83 static ClassDeclaration classDeclaration(Keyword abstractKeyword, String name, TypeParameterList typeParameters, ExtendsClause extendsClause, WithClause withC lause, ImplementsClause implementsClause, List<ClassMember> members) => new Clas sDeclaration(null, null, abstractKeyword == null ? null : TokenFactory.tokenFrom Keyword(abstractKeyword), TokenFactory.tokenFromKeyword(Keyword.CLASS), identifi er3(name), typeParameters, extendsClause, withClause, implementsClause, TokenFac tory.tokenFromType(TokenType.OPEN_CURLY_BRACKET), list(members), TokenFactory.to kenFromType(TokenType.CLOSE_CURLY_BRACKET)); 121 static ClassDeclaration classDeclaration(Keyword abstractKeyword, String name, TypeParameterList typeParameters, ExtendsClause extendsClause, WithClause withC lause, ImplementsClause implementsClause, [List<ClassMember> members])
122 => new ClassDeclaration(
123 null,
124 null,
125 abstractKeyword == null ? null : TokenFactory.tokenFromKeyword(abstrac tKeyword),
126 TokenFactory.tokenFromKeyword(Keyword.CLASS),
127 identifier3(name),
128 typeParameters,
129 extendsClause,
130 withClause,
131 implementsClause,
132 TokenFactory.tokenFromType(TokenType.OPEN_CURLY_BRACKET),
133 members,
134 TokenFactory.tokenFromType(TokenType.CLOSE_CURLY_BRACKET));
84 135
85 static ClassTypeAlias classTypeAlias(String name, TypeParameterList typeParame ters, Keyword abstractKeyword, TypeName superclass, WithClause withClause, Imple mentsClause implementsClause) => new ClassTypeAlias(null, null, TokenFactory.tok enFromKeyword(Keyword.CLASS), identifier3(name), typeParameters, TokenFactory.to kenFromType(TokenType.EQ), abstractKeyword == null ? null : TokenFactory.tokenFr omKeyword(abstractKeyword), superclass, withClause, implementsClause, TokenFacto ry.tokenFromType(TokenType.SEMICOLON)); 136 static ClassTypeAlias classTypeAlias(String name, TypeParameterList typeParame ters, Keyword abstractKeyword, TypeName superclass, WithClause withClause, Imple mentsClause implementsClause) => new ClassTypeAlias(null, null, TokenFactory.tok enFromKeyword(Keyword.CLASS), identifier3(name), typeParameters, TokenFactory.to kenFromType(TokenType.EQ), abstractKeyword == null ? null : TokenFactory.tokenFr omKeyword(abstractKeyword), superclass, withClause, implementsClause, TokenFacto ry.tokenFromType(TokenType.SEMICOLON));
86 137
87 static CompilationUnit compilationUnit() => compilationUnit8(null, null, null) ; 138 static CompilationUnit compilationUnit() => compilationUnit8(null, null, null) ;
88 139
89 static CompilationUnit compilationUnit2(List<CompilationUnitMember> declaratio ns) => compilationUnit8(null, null, list(declarations)); 140 static CompilationUnit compilationUnit2(List<CompilationUnitMember> declaratio ns) => compilationUnit8(null, null, declarations);
90 141
91 static CompilationUnit compilationUnit3(List<Directive> directives) => compila tionUnit8(null, list(directives), null); 142 static CompilationUnit compilationUnit3(List<Directive> directives) => compila tionUnit8(null, directives, null);
92 143
93 static CompilationUnit compilationUnit4(List<Directive> directives, List<Compi lationUnitMember> declarations) => compilationUnit8(null, directives, declaratio ns); 144 static CompilationUnit compilationUnit4(List<Directive> directives, List<Compi lationUnitMember> declarations) => compilationUnit8(null, directives, declaratio ns);
94 145
95 static CompilationUnit compilationUnit5(String scriptTag) => compilationUnit8( scriptTag, null, null); 146 static CompilationUnit compilationUnit5(String scriptTag) => compilationUnit8( scriptTag, null, null);
96 147
97 static CompilationUnit compilationUnit6(String scriptTag, List<CompilationUnit Member> declarations) => compilationUnit8(scriptTag, null, list(declarations)); 148 static CompilationUnit compilationUnit6(String scriptTag, List<CompilationUnit Member> declarations) => compilationUnit8(scriptTag, null, declarations);
98 149
99 static CompilationUnit compilationUnit7(String scriptTag, List<Directive> dire ctives) => compilationUnit8(scriptTag, list(directives), null); 150 static CompilationUnit compilationUnit7(String scriptTag, List<Directive> dire ctives) => compilationUnit8(scriptTag, directives, null);
100 151
101 static CompilationUnit compilationUnit8(String scriptTag, List<Directive> dire ctives, List<CompilationUnitMember> declarations) => new CompilationUnit(TokenFa ctory.tokenFromType(TokenType.EOF), scriptTag == null ? null : AstFactory.script Tag(scriptTag), directives == null ? new List<Directive>() : directives, declara tions == null ? new List<CompilationUnitMember>() : declarations, TokenFactory.t okenFromType(TokenType.EOF)); 152 static CompilationUnit compilationUnit8(String scriptTag, List<Directive> dire ctives, List<CompilationUnitMember> declarations) => new CompilationUnit(TokenFa ctory.tokenFromType(TokenType.EOF), scriptTag == null ? null : AstFactory.script Tag(scriptTag), directives == null ? new List<Directive>() : directives, declara tions == null ? new List<CompilationUnitMember>() : declarations, TokenFactory.t okenFromType(TokenType.EOF));
102 153
103 static ConditionalExpression conditionalExpression(Expression condition, Expre ssion thenExpression, Expression elseExpression) => new ConditionalExpression(co ndition, TokenFactory.tokenFromType(TokenType.QUESTION), thenExpression, TokenFa ctory.tokenFromType(TokenType.COLON), elseExpression); 154 static ConditionalExpression conditionalExpression(Expression condition, Expre ssion thenExpression, Expression elseExpression) => new ConditionalExpression(co ndition, TokenFactory.tokenFromType(TokenType.QUESTION), thenExpression, TokenFa ctory.tokenFromType(TokenType.COLON), elseExpression);
104 155
105 static ConstructorDeclaration constructorDeclaration(Identifier returnType, St ring name, FormalParameterList parameters, List<ConstructorInitializer> initiali zers) => new ConstructorDeclaration(null, null, TokenFactory.tokenFromKeyword(Ke yword.EXTERNAL), null, null, returnType, name == null ? null : TokenFactory.toke nFromType(TokenType.PERIOD), name == null ? null : identifier3(name), parameters , initializers == null || initializers.isEmpty ? null : TokenFactory.tokenFromTy pe(TokenType.PERIOD), initializers == null ? new List<ConstructorInitializer>() : initializers, null, emptyFunctionBody()); 156 static ConstructorDeclaration constructorDeclaration(Identifier returnType, St ring name, FormalParameterList parameters, List<ConstructorInitializer> initiali zers) => new ConstructorDeclaration(null, null, TokenFactory.tokenFromKeyword(Ke yword.EXTERNAL), null, null, returnType, name == null ? null : TokenFactory.toke nFromType(TokenType.PERIOD), name == null ? null : identifier3(name), parameters , initializers == null || initializers.isEmpty ? null : TokenFactory.tokenFromTy pe(TokenType.PERIOD), initializers == null ? new List<ConstructorInitializer>() : initializers, null, emptyFunctionBody());
106 157
107 static ConstructorDeclaration constructorDeclaration2(Keyword constKeyword, Ke yword factoryKeyword, Identifier returnType, String name, FormalParameterList pa rameters, List<ConstructorInitializer> initializers, FunctionBody body) => new C onstructorDeclaration(null, null, null, constKeyword == null ? null : TokenFacto ry.tokenFromKeyword(constKeyword), factoryKeyword == null ? null : TokenFactory. tokenFromKeyword(factoryKeyword), returnType, name == null ? null : TokenFactory .tokenFromType(TokenType.PERIOD), name == null ? null : identifier3(name), param eters, initializers == null || initializers.isEmpty ? null : TokenFactory.tokenF romType(TokenType.PERIOD), initializers == null ? new List<ConstructorInitialize r>() : initializers, null, body); 158 static ConstructorDeclaration constructorDeclaration2(Keyword constKeyword, Ke yword factoryKeyword, Identifier returnType, String name, FormalParameterList pa rameters, List<ConstructorInitializer> initializers, FunctionBody body) => new C onstructorDeclaration(null, null, null, constKeyword == null ? null : TokenFacto ry.tokenFromKeyword(constKeyword), factoryKeyword == null ? null : TokenFactory. tokenFromKeyword(factoryKeyword), returnType, name == null ? null : TokenFactory .tokenFromType(TokenType.PERIOD), name == null ? null : identifier3(name), param eters, initializers == null || initializers.isEmpty ? null : TokenFactory.tokenF romType(TokenType.PERIOD), initializers == null ? new List<ConstructorInitialize r>() : initializers, null, body);
108 159
109 static ConstructorFieldInitializer constructorFieldInitializer(bool prefixedWi thThis, String fieldName, Expression expression) => new ConstructorFieldInitiali zer(prefixedWithThis ? TokenFactory.tokenFromKeyword(Keyword.THIS) : null, prefi xedWithThis ? TokenFactory.tokenFromType(TokenType.PERIOD) : null, identifier3(f ieldName), TokenFactory.tokenFromType(TokenType.EQ), expression); 160 static ConstructorFieldInitializer constructorFieldInitializer(bool prefixedWi thThis, String fieldName, Expression expression) => new ConstructorFieldInitiali zer(prefixedWithThis ? TokenFactory.tokenFromKeyword(Keyword.THIS) : null, prefi xedWithThis ? TokenFactory.tokenFromType(TokenType.PERIOD) : null, identifier3(f ieldName), TokenFactory.tokenFromType(TokenType.EQ), expression);
110 161
111 static ConstructorName constructorName(TypeName type, String name) => new Cons tructorName(type, name == null ? null : TokenFactory.tokenFromType(TokenType.PER IOD), name == null ? null : identifier3(name)); 162 static ConstructorName constructorName(TypeName type, String name) => new Cons tructorName(type, name == null ? null : TokenFactory.tokenFromType(TokenType.PER IOD), name == null ? null : identifier3(name));
112 163
113 static ContinueStatement continueStatement([String label]) { 164 static ContinueStatement continueStatement([String label])
114 SimpleIdentifier labelNode = label == null ? null : identifier3(label); 165 => new ContinueStatement(
115 return new ContinueStatement(TokenFactory.tokenFromKeyword(Keyword.CONTINUE) , labelNode, TokenFactory.tokenFromType(TokenType.SEMICOLON)); 166 TokenFactory.tokenFromKeyword(Keyword.CONTINUE),
116 } 167 label == null ? null : identifier3(label),
168 TokenFactory.tokenFromType(TokenType.SEMICOLON));
117 169
118 static DeclaredIdentifier declaredIdentifier(Keyword keyword, String identifie r) => declaredIdentifier2(keyword, null, identifier); 170 static DeclaredIdentifier declaredIdentifier(Keyword keyword, String identifie r) => declaredIdentifier2(keyword, null, identifier);
119 171
120 static DeclaredIdentifier declaredIdentifier2(Keyword keyword, TypeName type, String identifier) => new DeclaredIdentifier(null, null, keyword == null ? null : TokenFactory.tokenFromKeyword(keyword), type, identifier3(identifier)); 172 static DeclaredIdentifier declaredIdentifier2(Keyword keyword, TypeName type, String identifier) => new DeclaredIdentifier(null, null, keyword == null ? null : TokenFactory.tokenFromKeyword(keyword), type, identifier3(identifier));
121 173
122 static DeclaredIdentifier declaredIdentifier3(String identifier) => declaredId entifier2(null, null, identifier); 174 static DeclaredIdentifier declaredIdentifier3(String identifier) => declaredId entifier2(null, null, identifier);
123 175
124 static DeclaredIdentifier declaredIdentifier4(TypeName type, String identifier ) => declaredIdentifier2(null, type, identifier); 176 static DeclaredIdentifier declaredIdentifier4(TypeName type, String identifier ) => declaredIdentifier2(null, type, identifier);
125 177
126 static DoStatement doStatement(Statement body, Expression condition) => new Do Statement(TokenFactory.tokenFromKeyword(Keyword.DO), body, TokenFactory.tokenFro mKeyword(Keyword.WHILE), TokenFactory.tokenFromType(TokenType.OPEN_PAREN), condi tion, TokenFactory.tokenFromType(TokenType.CLOSE_PAREN), TokenFactory.tokenFromT ype(TokenType.SEMICOLON)); 178 static DoStatement doStatement(Statement body, Expression condition) => new Do Statement(TokenFactory.tokenFromKeyword(Keyword.DO), body, TokenFactory.tokenFro mKeyword(Keyword.WHILE), TokenFactory.tokenFromType(TokenType.OPEN_PAREN), condi tion, TokenFactory.tokenFromType(TokenType.CLOSE_PAREN), TokenFactory.tokenFromT ype(TokenType.SEMICOLON));
127 179
128 static DoubleLiteral doubleLiteral(double value) => new DoubleLiteral(TokenFac tory.tokenFromString(value.toString()), value); 180 static DoubleLiteral doubleLiteral(double value) => new DoubleLiteral(TokenFac tory.tokenFromString(value.toString()), value);
129 181
130 static EmptyFunctionBody emptyFunctionBody() => new EmptyFunctionBody(TokenFac tory.tokenFromType(TokenType.SEMICOLON)); 182 static EmptyFunctionBody emptyFunctionBody() => new EmptyFunctionBody(TokenFac tory.tokenFromType(TokenType.SEMICOLON));
131 183
132 static EmptyStatement emptyStatement() => new EmptyStatement(TokenFactory.toke nFromType(TokenType.SEMICOLON)); 184 static EmptyStatement emptyStatement() => new EmptyStatement(TokenFactory.toke nFromType(TokenType.SEMICOLON));
133 185
134 static EnumDeclaration enumDeclaration(SimpleIdentifier name, List<EnumConstan tDeclaration> constants) => new EnumDeclaration(null, null, TokenFactory.tokenFr omKeyword(Keyword.ENUM), name, TokenFactory.tokenFromType(TokenType.OPEN_CURLY_B RACKET), list(constants), TokenFactory.tokenFromType(TokenType.CLOSE_CURLY_BRACK ET)); 186 static EnumDeclaration enumDeclaration(SimpleIdentifier name, List<EnumConstan tDeclaration> constants) => new EnumDeclaration(null, null, TokenFactory.tokenFr omKeyword(Keyword.ENUM), name, TokenFactory.tokenFromType(TokenType.OPEN_CURLY_B RACKET), constants, TokenFactory.tokenFromType(TokenType.CLOSE_CURLY_BRACKET));
135 187
136 static EnumDeclaration enumDeclaration2(String name, List<String> constantName s) { 188 static EnumDeclaration enumDeclaration2(String name, List<String> constantName s) {
137 int count = constantNames.length; 189 int count = constantNames.length;
138 List<EnumConstantDeclaration> constants = new List<EnumConstantDeclaration>( count); 190 List<EnumConstantDeclaration> constants = new List<EnumConstantDeclaration>( count);
139 for (int i = 0; i < count; i++) { 191 for (int i = 0; i < count; i++) {
140 constants[i] = new EnumConstantDeclaration(null, null, identifier3(constan tNames[i])); 192 constants[i] = new EnumConstantDeclaration(null, null, identifier3(constan tNames[i]));
141 } 193 }
142 return enumDeclaration(identifier3(name), constants); 194 return enumDeclaration(identifier3(name), constants);
143 } 195 }
144 196
145 static ExportDirective exportDirective(List<Annotation> metadata, String uri, List<Combinator> combinators) => new ExportDirective(null, metadata, TokenFactor y.tokenFromKeyword(Keyword.EXPORT), string2(uri), list(combinators), TokenFactor y.tokenFromType(TokenType.SEMICOLON)); 197 static ExportDirective exportDirective(List<Annotation> metadata, String uri, [List<Combinator> combinators])
198 => new ExportDirective(
199 null,
200 metadata,
201 TokenFactory.tokenFromKeyword(Keyword.EXPORT),
202 string2(uri),
203 combinators,
204 TokenFactory.tokenFromType(TokenType.SEMICOLON));
146 205
147 static ExportDirective exportDirective2(String uri, List<Combinator> combinato rs) => exportDirective(new List<Annotation>(), uri, combinators); 206 static ExportDirective exportDirective2(String uri, [List<Combinator> combinat ors])
207 => exportDirective(null, uri, combinators);
148 208
149 static ExpressionFunctionBody expressionFunctionBody(Expression expression) => new ExpressionFunctionBody(null, TokenFactory.tokenFromType(TokenType.FUNCTION) , expression, TokenFactory.tokenFromType(TokenType.SEMICOLON)); 209 static ExpressionFunctionBody expressionFunctionBody(Expression expression) => new ExpressionFunctionBody(null, TokenFactory.tokenFromType(TokenType.FUNCTION) , expression, TokenFactory.tokenFromType(TokenType.SEMICOLON));
150 210
151 static ExpressionStatement expressionStatement(Expression expression) => new E xpressionStatement(expression, TokenFactory.tokenFromType(TokenType.SEMICOLON)); 211 static ExpressionStatement expressionStatement(Expression expression) => new E xpressionStatement(expression, TokenFactory.tokenFromType(TokenType.SEMICOLON));
152 212
153 static ExtendsClause extendsClause(TypeName type) => new ExtendsClause(TokenFa ctory.tokenFromKeyword(Keyword.EXTENDS), type); 213 static ExtendsClause extendsClause(TypeName type) => new ExtendsClause(TokenFa ctory.tokenFromKeyword(Keyword.EXTENDS), type);
154 214
155 static FieldDeclaration fieldDeclaration(bool isStatic, Keyword keyword, TypeN ame type, List<VariableDeclaration> variables) => new FieldDeclaration(null, nul l, isStatic ? TokenFactory.tokenFromKeyword(Keyword.STATIC) : null, variableDecl arationList(keyword, type, variables), TokenFactory.tokenFromType(TokenType.SEMI COLON)); 215 static FieldDeclaration fieldDeclaration(bool isStatic, Keyword keyword, TypeN ame type, List<VariableDeclaration> variables) => new FieldDeclaration(null, nul l, isStatic ? TokenFactory.tokenFromKeyword(Keyword.STATIC) : null, variableDecl arationList(keyword, type, variables), TokenFactory.tokenFromType(TokenType.SEMI COLON));
156 216
157 static FieldDeclaration fieldDeclaration2(bool isStatic, Keyword keyword, List <VariableDeclaration> variables) => fieldDeclaration(isStatic, keyword, null, va riables); 217 static FieldDeclaration fieldDeclaration2(bool isStatic, Keyword keyword, List <VariableDeclaration> variables) => fieldDeclaration(isStatic, keyword, null, va riables);
158 218
159 static FieldFormalParameter fieldFormalParameter(Keyword keyword, TypeName typ e, String identifier, [FormalParameterList parameterList]) => new FieldFormalPar ameter(null, null, keyword == null ? null : TokenFactory.tokenFromKeyword(keywor d), type, TokenFactory.tokenFromKeyword(Keyword.THIS), TokenFactory.tokenFromTyp e(TokenType.PERIOD), identifier3(identifier), parameterList); 219 static FieldFormalParameter fieldFormalParameter(Keyword keyword, TypeName typ e, String identifier, [FormalParameterList parameterList]) => new FieldFormalPar ameter(null, null, keyword == null ? null : TokenFactory.tokenFromKeyword(keywor d), type, TokenFactory.tokenFromKeyword(Keyword.THIS), TokenFactory.tokenFromTyp e(TokenType.PERIOD), identifier3(identifier), parameterList);
160 220
161 static FieldFormalParameter fieldFormalParameter2(String identifier) => fieldF ormalParameter(null, null, identifier); 221 static FieldFormalParameter fieldFormalParameter2(String identifier) => fieldF ormalParameter(null, null, identifier);
162 222
163 static ForEachStatement forEachStatement(DeclaredIdentifier loopVariable, Expr ession iterator, Statement body) => new ForEachStatement.con1(null, TokenFactory .tokenFromKeyword(Keyword.FOR), TokenFactory.tokenFromType(TokenType.OPEN_PAREN) , loopVariable, TokenFactory.tokenFromKeyword(Keyword.IN), iterator, TokenFactor y.tokenFromType(TokenType.CLOSE_PAREN), body); 223 static ForEachStatement forEachStatement(DeclaredIdentifier loopVariable, Expr ession iterator, Statement body) => new ForEachStatement.con1(null, TokenFactory .tokenFromKeyword(Keyword.FOR), TokenFactory.tokenFromType(TokenType.OPEN_PAREN) , loopVariable, TokenFactory.tokenFromKeyword(Keyword.IN), iterator, TokenFactor y.tokenFromType(TokenType.CLOSE_PAREN), body);
164 224
165 static ForEachStatement forEachStatement2(SimpleIdentifier identifier, Express ion iterator, Statement body) => new ForEachStatement.con2(null, TokenFactory.to kenFromKeyword(Keyword.FOR), TokenFactory.tokenFromType(TokenType.OPEN_PAREN), i dentifier, TokenFactory.tokenFromKeyword(Keyword.IN), iterator, TokenFactory.tok enFromType(TokenType.CLOSE_PAREN), body); 225 static ForEachStatement forEachStatement2(SimpleIdentifier identifier, Express ion iterator, Statement body) => new ForEachStatement.con2(null, TokenFactory.to kenFromKeyword(Keyword.FOR), TokenFactory.tokenFromType(TokenType.OPEN_PAREN), i dentifier, TokenFactory.tokenFromKeyword(Keyword.IN), iterator, TokenFactory.tok enFromType(TokenType.CLOSE_PAREN), body);
166 226
167 static FormalParameterList formalParameterList(List<FormalParameter> parameter s) => new FormalParameterList(TokenFactory.tokenFromType(TokenType.OPEN_PAREN), list(parameters), null, null, TokenFactory.tokenFromType(TokenType.CLOSE_PAREN)) ; 227 static FormalParameterList formalParameterList([List<FormalParameter> paramete rs])
228 => new FormalParameterList(
229 TokenFactory.tokenFromType(TokenType.OPEN_PAREN),
230 parameters,
231 null,
232 null,
233 TokenFactory.tokenFromType(TokenType.CLOSE_PAREN));
168 234
169 static ForStatement forStatement(Expression initialization, Expression conditi on, List<Expression> updaters, Statement body) => new ForStatement(TokenFactory. tokenFromKeyword(Keyword.FOR), TokenFactory.tokenFromType(TokenType.OPEN_PAREN), null, initialization, TokenFactory.tokenFromType(TokenType.SEMICOLON), conditio n, TokenFactory.tokenFromType(TokenType.SEMICOLON), updaters, TokenFactory.token FromType(TokenType.CLOSE_PAREN), body); 235 static ForStatement forStatement(Expression initialization, Expression conditi on, List<Expression> updaters, Statement body) => new ForStatement(TokenFactory. tokenFromKeyword(Keyword.FOR), TokenFactory.tokenFromType(TokenType.OPEN_PAREN), null, initialization, TokenFactory.tokenFromType(TokenType.SEMICOLON), conditio n, TokenFactory.tokenFromType(TokenType.SEMICOLON), updaters, TokenFactory.token FromType(TokenType.CLOSE_PAREN), body);
170 236
171 static ForStatement forStatement2(VariableDeclarationList variableList, Expres sion condition, List<Expression> updaters, Statement body) => new ForStatement(T okenFactory.tokenFromKeyword(Keyword.FOR), TokenFactory.tokenFromType(TokenType. OPEN_PAREN), variableList, null, TokenFactory.tokenFromType(TokenType.SEMICOLON) , condition, TokenFactory.tokenFromType(TokenType.SEMICOLON), updaters, TokenFac tory.tokenFromType(TokenType.CLOSE_PAREN), body); 237 static ForStatement forStatement2(VariableDeclarationList variableList, Expres sion condition, List<Expression> updaters, Statement body) => new ForStatement(T okenFactory.tokenFromKeyword(Keyword.FOR), TokenFactory.tokenFromType(TokenType. OPEN_PAREN), variableList, null, TokenFactory.tokenFromType(TokenType.SEMICOLON) , condition, TokenFactory.tokenFromType(TokenType.SEMICOLON), updaters, TokenFac tory.tokenFromType(TokenType.CLOSE_PAREN), body);
172 238
173 static FunctionDeclaration functionDeclaration(TypeName type, Keyword keyword, String name, FunctionExpression functionExpression) => new FunctionDeclaration( null, null, null, type, keyword == null ? null : TokenFactory.tokenFromKeyword(k eyword), identifier3(name), functionExpression); 239 static FunctionDeclaration functionDeclaration(TypeName type, Keyword keyword, String name, FunctionExpression functionExpression) => new FunctionDeclaration( null, null, null, type, keyword == null ? null : TokenFactory.tokenFromKeyword(k eyword), identifier3(name), functionExpression);
174 240
175 static FunctionDeclarationStatement functionDeclarationStatement(TypeName type , Keyword keyword, String name, FunctionExpression functionExpression) => new Fu nctionDeclarationStatement(functionDeclaration(type, keyword, name, functionExpr ession)); 241 static FunctionDeclarationStatement functionDeclarationStatement(TypeName type , Keyword keyword, String name, FunctionExpression functionExpression) => new Fu nctionDeclarationStatement(functionDeclaration(type, keyword, name, functionExpr ession));
176 242
177 static FunctionExpression functionExpression() => new FunctionExpression(forma lParameterList([]), blockFunctionBody2([])); 243 static FunctionExpression functionExpression() => new FunctionExpression(forma lParameterList(), blockFunctionBody2());
178 244
179 static FunctionExpression functionExpression2(FormalParameterList parameters, FunctionBody body) => new FunctionExpression(parameters, body); 245 static FunctionExpression functionExpression2(FormalParameterList parameters, FunctionBody body) => new FunctionExpression(parameters, body);
180 246
181 static FunctionExpressionInvocation functionExpressionInvocation(Expression fu nction, List<Expression> arguments) => new FunctionExpressionInvocation(function , argumentList(arguments)); 247 static FunctionExpressionInvocation functionExpressionInvocation(Expression fu nction, [List<Expression> arguments])
248 => new FunctionExpressionInvocation(function, argumentList(arguments));
182 249
183 static FunctionTypedFormalParameter functionTypedFormalParameter(TypeName retu rnType, String identifier, List<FormalParameter> parameters) => new FunctionType dFormalParameter(null, null, returnType, identifier3(identifier), formalParamete rList(parameters)); 250 static FunctionTypedFormalParameter functionTypedFormalParameter(TypeName retu rnType, String identifier, [List<FormalParameter> parameters])
251 => new FunctionTypedFormalParameter(
252 null,
253 null,
254 returnType,
255 identifier3(identifier),
256 formalParameterList(parameters));
184 257
185 static HideCombinator hideCombinator(List<SimpleIdentifier> identifiers) => ne w HideCombinator(TokenFactory.tokenFromString("hide"), list(identifiers)); 258 static HideCombinator hideCombinator(List<SimpleIdentifier> identifiers) => ne w HideCombinator(TokenFactory.tokenFromString("hide"), identifiers);
186 259
187 static HideCombinator hideCombinator2(List<String> identifiers) { 260 static HideCombinator hideCombinator2(List<String> identifiers)
188 List<SimpleIdentifier> identifierList = new List<SimpleIdentifier>(); 261 => new HideCombinator(
189 for (String identifier in identifiers) { 262 TokenFactory.tokenFromString("hide"),
190 identifierList.add(identifier3(identifier)); 263 identifierList(identifiers));
191 }
192 return new HideCombinator(TokenFactory.tokenFromString("hide"), identifierLi st);
193 }
194 264
195 static PrefixedIdentifier identifier(SimpleIdentifier prefix, SimpleIdentifier identifier) => new PrefixedIdentifier(prefix, TokenFactory.tokenFromType(TokenT ype.PERIOD), identifier); 265 static PrefixedIdentifier identifier(SimpleIdentifier prefix, SimpleIdentifier identifier) => new PrefixedIdentifier(prefix, TokenFactory.tokenFromType(TokenT ype.PERIOD), identifier);
196 266
197 static SimpleIdentifier identifier3(String lexeme) => new SimpleIdentifier(Tok enFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, lexeme)); 267 static SimpleIdentifier identifier3(String lexeme) => new SimpleIdentifier(Tok enFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, lexeme));
198 268
199 static PrefixedIdentifier identifier4(String prefix, SimpleIdentifier identifi er) => new PrefixedIdentifier(identifier3(prefix), TokenFactory.tokenFromType(To kenType.PERIOD), identifier); 269 static PrefixedIdentifier identifier4(String prefix, SimpleIdentifier identifi er) => new PrefixedIdentifier(identifier3(prefix), TokenFactory.tokenFromType(To kenType.PERIOD), identifier);
200 270
201 static PrefixedIdentifier identifier5(String prefix, String identifier) => new PrefixedIdentifier(identifier3(prefix), TokenFactory.tokenFromType(TokenType.PE RIOD), identifier3(identifier)); 271 static PrefixedIdentifier identifier5(String prefix, String identifier) => new PrefixedIdentifier(identifier3(prefix), TokenFactory.tokenFromType(TokenType.PE RIOD), identifier3(identifier));
202 272
273 static List<SimpleIdentifier> identifierList(List<String> identifiers) {
274 if (identifiers == null) {
275 return null;
276 }
277 return identifiers.map((String identifier) => identifier3(identifier)).toLis t();
278 }
279
203 static IfStatement ifStatement(Expression condition, Statement thenStatement) => ifStatement2(condition, thenStatement, null); 280 static IfStatement ifStatement(Expression condition, Statement thenStatement) => ifStatement2(condition, thenStatement, null);
204 281
205 static IfStatement ifStatement2(Expression condition, Statement thenStatement, Statement elseStatement) => new IfStatement(TokenFactory.tokenFromKeyword(Keywo rd.IF), TokenFactory.tokenFromType(TokenType.OPEN_PAREN), condition, TokenFactor y.tokenFromType(TokenType.CLOSE_PAREN), thenStatement, elseStatement == null ? n ull : TokenFactory.tokenFromKeyword(Keyword.ELSE), elseStatement); 282 static IfStatement ifStatement2(Expression condition, Statement thenStatement, Statement elseStatement) => new IfStatement(TokenFactory.tokenFromKeyword(Keywo rd.IF), TokenFactory.tokenFromType(TokenType.OPEN_PAREN), condition, TokenFactor y.tokenFromType(TokenType.CLOSE_PAREN), thenStatement, elseStatement == null ? n ull : TokenFactory.tokenFromKeyword(Keyword.ELSE), elseStatement);
206 283
207 static ImplementsClause implementsClause(List<TypeName> types) => new Implemen tsClause(TokenFactory.tokenFromKeyword(Keyword.IMPLEMENTS), list(types)); 284 static ImplementsClause implementsClause(List<TypeName> types) => new Implemen tsClause(TokenFactory.tokenFromKeyword(Keyword.IMPLEMENTS), types);
208 285
209 static ImportDirective importDirective(List<Annotation> metadata, String uri, bool isDeferred, String prefix, List<Combinator> combinators) => new ImportDirec tive(null, metadata, TokenFactory.tokenFromKeyword(Keyword.IMPORT), string2(uri) , !isDeferred ? null : TokenFactory.tokenFromKeyword(Keyword.DEFERRED), prefix = = null ? null : TokenFactory.tokenFromKeyword(Keyword.AS), prefix == null ? null : identifier3(prefix), list(combinators), TokenFactory.tokenFromType(TokenType. SEMICOLON)); 286 static ImportDirective importDirective(List<Annotation> metadata, String uri, bool isDeferred, String prefix, [List<Combinator> combinators])
287 => new ImportDirective(
288 null,
289 metadata,
290 TokenFactory.tokenFromKeyword(Keyword.IMPORT),
291 string2(uri),
292 !isDeferred ? null : TokenFactory.tokenFromKeyword(Keyword.DEFERRED),
293 prefix == null ? null : TokenFactory.tokenFromKeyword(Keyword.AS),
294 prefix == null ? null : identifier3(prefix),
295 combinators,
296 TokenFactory.tokenFromType(TokenType.SEMICOLON));
210 297
211 static ImportDirective importDirective2(String uri, bool isDeferred, String pr efix, List<Combinator> combinators) => importDirective(new List<Annotation>(), u ri, isDeferred, prefix, combinators); 298 static ImportDirective importDirective2(String uri, bool isDeferred, String pr efix, [List<Combinator> combinators])
299 => importDirective(null, uri, isDeferred, prefix, combinators);
212 300
213 static ImportDirective importDirective3(String uri, String prefix, List<Combin ator> combinators) => importDirective(new List<Annotation>(), uri, false, prefix , combinators); 301 static ImportDirective importDirective3(String uri, String prefix, [List<Combi nator> combinators])
302 => importDirective(null, uri, false, prefix, combinators);
214 303
215 static IndexExpression indexExpression(Expression array, Expression index) => new IndexExpression.forTarget(array, TokenFactory.tokenFromType(TokenType.OPEN_S QUARE_BRACKET), index, TokenFactory.tokenFromType(TokenType.CLOSE_SQUARE_BRACKET )); 304 static IndexExpression indexExpression(Expression array, Expression index) => new IndexExpression.forTarget(array, TokenFactory.tokenFromType(TokenType.OPEN_S QUARE_BRACKET), index, TokenFactory.tokenFromType(TokenType.CLOSE_SQUARE_BRACKET ));
216 305
217 static InstanceCreationExpression instanceCreationExpression(Keyword keyword, ConstructorName name, List<Expression> arguments) => new InstanceCreationExpress ion(keyword == null ? null : TokenFactory.tokenFromKeyword(keyword), name, argum entList(arguments)); 306 static InstanceCreationExpression instanceCreationExpression(Keyword keyword, ConstructorName name, [List<Expression> arguments])
307 => new InstanceCreationExpression(
308 keyword == null ? null : TokenFactory.tokenFromKeyword(keyword),
309 name,
310 argumentList(arguments));
218 311
219 static InstanceCreationExpression instanceCreationExpression2(Keyword keyword, TypeName type, List<Expression> arguments) => instanceCreationExpression3(keywo rd, type, null, arguments); 312 static InstanceCreationExpression instanceCreationExpression2(Keyword keyword, TypeName type, [List<Expression> arguments])
313 => instanceCreationExpression3(keyword, type, null, arguments);
220 314
221 static InstanceCreationExpression instanceCreationExpression3(Keyword keyword, TypeName type, String identifier, List<Expression> arguments) => instanceCreati onExpression(keyword, new ConstructorName(type, identifier == null ? null : Toke nFactory.tokenFromType(TokenType.PERIOD), identifier == null ? null : identifier 3(identifier)), arguments); 315 static InstanceCreationExpression instanceCreationExpression3(Keyword keyword, TypeName type, String identifier, [List<Expression> arguments])
316 => instanceCreationExpression(
317 keyword,
318 new ConstructorName(
319 type,
320 identifier == null ? null : TokenFactory.tokenFromType(TokenType.P ERIOD),
321 identifier == null ? null : identifier3(identifier)),
322 arguments);
222 323
223 static IntegerLiteral integer(int value) => new IntegerLiteral(TokenFactory.to kenFromTypeAndString(TokenType.INT, value.toString()), value); 324 static IntegerLiteral integer(int value) => new IntegerLiteral(TokenFactory.to kenFromTypeAndString(TokenType.INT, value.toString()), value);
224 325
225 static InterpolationExpression interpolationExpression(Expression expression) => new InterpolationExpression(TokenFactory.tokenFromType(TokenType.STRING_INTER POLATION_EXPRESSION), expression, TokenFactory.tokenFromType(TokenType.CLOSE_CUR LY_BRACKET)); 326 static InterpolationExpression interpolationExpression(Expression expression) => new InterpolationExpression(TokenFactory.tokenFromType(TokenType.STRING_INTER POLATION_EXPRESSION), expression, TokenFactory.tokenFromType(TokenType.CLOSE_CUR LY_BRACKET));
226 327
227 static InterpolationExpression interpolationExpression2(String identifier) => new InterpolationExpression(TokenFactory.tokenFromType(TokenType.STRING_INTERPOL ATION_IDENTIFIER), identifier3(identifier), null); 328 static InterpolationExpression interpolationExpression2(String identifier) => new InterpolationExpression(TokenFactory.tokenFromType(TokenType.STRING_INTERPOL ATION_IDENTIFIER), identifier3(identifier), null);
228 329
229 static InterpolationString interpolationString(String contents, String value) => new InterpolationString(TokenFactory.tokenFromString(contents), value); 330 static InterpolationString interpolationString(String contents, String value) => new InterpolationString(TokenFactory.tokenFromString(contents), value);
230 331
231 static IsExpression isExpression(Expression expression, bool negated, TypeName type) => new IsExpression(expression, TokenFactory.tokenFromKeyword(Keyword.IS) , negated ? TokenFactory.tokenFromType(TokenType.BANG) : null, type); 332 static IsExpression isExpression(Expression expression, bool negated, TypeName type) => new IsExpression(expression, TokenFactory.tokenFromKeyword(Keyword.IS) , negated ? TokenFactory.tokenFromType(TokenType.BANG) : null, type);
232 333
233 static Label label(SimpleIdentifier label) => new Label(label, TokenFactory.to kenFromType(TokenType.COLON)); 334 static Label label(SimpleIdentifier label) => new Label(label, TokenFactory.to kenFromType(TokenType.COLON));
234 335
235 static Label label2(String label) => AstFactory.label(identifier3(label)); 336 static Label label2(String label) => AstFactory.label(identifier3(label));
236 337
237 static LabeledStatement labeledStatement(List<Label> labels, Statement stateme nt) => new LabeledStatement(labels, statement); 338 static LabeledStatement labeledStatement(List<Label> labels, Statement stateme nt) => new LabeledStatement(labels, statement);
238 339
239 static LibraryDirective libraryDirective(List<Annotation> metadata, LibraryIde ntifier libraryName) => new LibraryDirective(null, metadata, TokenFactory.tokenF romKeyword(Keyword.LIBRARY), libraryName, TokenFactory.tokenFromType(TokenType.S EMICOLON)); 340 static LibraryDirective libraryDirective(List<Annotation> metadata, LibraryIde ntifier libraryName) => new LibraryDirective(null, metadata, TokenFactory.tokenF romKeyword(Keyword.LIBRARY), libraryName, TokenFactory.tokenFromType(TokenType.S EMICOLON));
240 341
241 static LibraryDirective libraryDirective2(String libraryName) => libraryDirect ive(new List<Annotation>(), libraryIdentifier2([libraryName])); 342 static LibraryDirective libraryDirective2(String libraryName) => libraryDirect ive(new List<Annotation>(), libraryIdentifier2([libraryName]));
242 343
243 static LibraryIdentifier libraryIdentifier(List<SimpleIdentifier> components) => new LibraryIdentifier(list(components)); 344 static LibraryIdentifier libraryIdentifier(List<SimpleIdentifier> components) => new LibraryIdentifier(components);
244 345
245 static LibraryIdentifier libraryIdentifier2(List<String> components) { 346 static LibraryIdentifier libraryIdentifier2(List<String> components) {
246 List<SimpleIdentifier> componentList = new List<SimpleIdentifier>(); 347 return new LibraryIdentifier(identifierList(components));
247 for (String component in components) {
248 componentList.add(identifier3(component));
249 }
250 return new LibraryIdentifier(componentList);
251 } 348 }
252 349
253 static List list(List<Object> elements) { 350 static List list(List<Object> elements) {
254 List elementList = new List(); 351 return elements;
255 for (Object element in elements) {
256 elementList.add(element);
257 }
258 return elementList;
259 } 352 }
260 353
261 static ListLiteral listLiteral(List<Expression> elements) => listLiteral2(null , null, elements); 354 static ListLiteral listLiteral([List<Expression> elements])
355 => listLiteral2(null, null, elements);
262 356
263 static ListLiteral listLiteral2(Keyword keyword, TypeArgumentList typeArgument s, List<Expression> elements) => new ListLiteral(keyword == null ? null : TokenF actory.tokenFromKeyword(keyword), typeArguments, TokenFactory.tokenFromType(Toke nType.OPEN_SQUARE_BRACKET), list(elements), TokenFactory.tokenFromType(TokenType .CLOSE_SQUARE_BRACKET)); 357 static ListLiteral listLiteral2(Keyword keyword, TypeArgumentList typeArgument s, [List<Expression> elements])
358 => new ListLiteral(
359 keyword == null ? null : TokenFactory.tokenFromKeyword(keyword),
360 typeArguments,
361 TokenFactory.tokenFromType(TokenType.OPEN_SQUARE_BRACKET),
362 elements,
363 TokenFactory.tokenFromType(TokenType.CLOSE_SQUARE_BRACKET));
264 364
265 static MapLiteral mapLiteral(Keyword keyword, TypeArgumentList typeArguments, List<MapLiteralEntry> entries) => new MapLiteral(keyword == null ? null : TokenF actory.tokenFromKeyword(keyword), typeArguments, TokenFactory.tokenFromType(Toke nType.OPEN_CURLY_BRACKET), list(entries), TokenFactory.tokenFromType(TokenType.C LOSE_CURLY_BRACKET)); 365 static MapLiteral mapLiteral(Keyword keyword, TypeArgumentList typeArguments, [List<MapLiteralEntry> entries])
366 => new MapLiteral(
367 keyword == null ? null : TokenFactory.tokenFromKeyword(keyword),
368 typeArguments,
369 TokenFactory.tokenFromType(TokenType.OPEN_CURLY_BRACKET),
370 entries,
371 TokenFactory.tokenFromType(TokenType.CLOSE_CURLY_BRACKET));
266 372
267 static MapLiteral mapLiteral2(List<MapLiteralEntry> entries) => mapLiteral(nul l, null, entries); 373 static MapLiteral mapLiteral2([List<MapLiteralEntry> entries])
374 => mapLiteral(null, null, entries);
268 375
269 static MapLiteralEntry mapLiteralEntry(String key, Expression value) => new Ma pLiteralEntry(string2(key), TokenFactory.tokenFromType(TokenType.COLON), value); 376 static MapLiteralEntry mapLiteralEntry(String key, Expression value) => new Ma pLiteralEntry(string2(key), TokenFactory.tokenFromType(TokenType.COLON), value);
270 377
271 static MethodDeclaration methodDeclaration(Keyword modifier, TypeName returnTy pe, Keyword property, Keyword operator, SimpleIdentifier name, FormalParameterLi st parameters) => new MethodDeclaration(null, null, TokenFactory.tokenFromKeywor d(Keyword.EXTERNAL), modifier == null ? null : TokenFactory.tokenFromKeyword(mod ifier), returnType, property == null ? null : TokenFactory.tokenFromKeyword(prop erty), operator == null ? null : TokenFactory.tokenFromKeyword(operator), name, parameters, emptyFunctionBody()); 378 static MethodDeclaration methodDeclaration(Keyword modifier, TypeName returnTy pe, Keyword property, Keyword operator, SimpleIdentifier name, FormalParameterLi st parameters) => new MethodDeclaration(null, null, TokenFactory.tokenFromKeywor d(Keyword.EXTERNAL), modifier == null ? null : TokenFactory.tokenFromKeyword(mod ifier), returnType, property == null ? null : TokenFactory.tokenFromKeyword(prop erty), operator == null ? null : TokenFactory.tokenFromKeyword(operator), name, parameters, emptyFunctionBody());
272 379
273 static MethodDeclaration methodDeclaration2(Keyword modifier, TypeName returnT ype, Keyword property, Keyword operator, SimpleIdentifier name, FormalParameterL ist parameters, FunctionBody body) => new MethodDeclaration(null, null, null, mo difier == null ? null : TokenFactory.tokenFromKeyword(modifier), returnType, pro perty == null ? null : TokenFactory.tokenFromKeyword(property), operator == null ? null : TokenFactory.tokenFromKeyword(operator), name, parameters, body); 380 static MethodDeclaration methodDeclaration2(Keyword modifier, TypeName returnT ype, Keyword property, Keyword operator, SimpleIdentifier name, FormalParameterL ist parameters, FunctionBody body) => new MethodDeclaration(null, null, null, mo difier == null ? null : TokenFactory.tokenFromKeyword(modifier), returnType, pro perty == null ? null : TokenFactory.tokenFromKeyword(property), operator == null ? null : TokenFactory.tokenFromKeyword(operator), name, parameters, body);
274 381
275 static MethodInvocation methodInvocation(Expression target, String methodName, List<Expression> arguments) => new MethodInvocation(target, target == null ? nu ll : TokenFactory.tokenFromType(TokenType.PERIOD), identifier3(methodName), argu mentList(arguments)); 382 static MethodInvocation methodInvocation(Expression target, String methodName, [List<Expression> arguments])
383 => new MethodInvocation(
384 target,
385 target == null ? null : TokenFactory.tokenFromType(TokenType.PERIOD),
386 identifier3(methodName),
387 argumentList(arguments));
276 388
277 static MethodInvocation methodInvocation2(String methodName, List<Expression> arguments) => methodInvocation(null, methodName, arguments); 389 static MethodInvocation methodInvocation2(String methodName, [List<Expression> arguments])
390 => methodInvocation(null, methodName, arguments);
278 391
279 static NamedExpression namedExpression(Label label, Expression expression) => new NamedExpression(label, expression); 392 static NamedExpression namedExpression(Label label, Expression expression) => new NamedExpression(label, expression);
280 393
281 static NamedExpression namedExpression2(String label, Expression expression) = > namedExpression(label2(label), expression); 394 static NamedExpression namedExpression2(String label, Expression expression) = > namedExpression(label2(label), expression);
282 395
283 static DefaultFormalParameter namedFormalParameter(NormalFormalParameter param eter, Expression expression) => new DefaultFormalParameter(parameter, ParameterK ind.NAMED, expression == null ? null : TokenFactory.tokenFromType(TokenType.COLO N), expression); 396 static DefaultFormalParameter namedFormalParameter(NormalFormalParameter param eter, Expression expression) => new DefaultFormalParameter(parameter, ParameterK ind.NAMED, expression == null ? null : TokenFactory.tokenFromType(TokenType.COLO N), expression);
284 397
285 static NativeClause nativeClause(String nativeCode) => new NativeClause(TokenF actory.tokenFromString("native"), string2(nativeCode)); 398 static NativeClause nativeClause(String nativeCode) => new NativeClause(TokenF actory.tokenFromString("native"), string2(nativeCode));
286 399
287 static NativeFunctionBody nativeFunctionBody(String nativeMethodName) => new N ativeFunctionBody(TokenFactory.tokenFromString("native"), string2(nativeMethodNa me), TokenFactory.tokenFromType(TokenType.SEMICOLON)); 400 static NativeFunctionBody nativeFunctionBody(String nativeMethodName) => new N ativeFunctionBody(TokenFactory.tokenFromString("native"), string2(nativeMethodNa me), TokenFactory.tokenFromType(TokenType.SEMICOLON));
(...skipping 13 matching lines...) Expand all
301 static DefaultFormalParameter positionalFormalParameter(NormalFormalParameter parameter, Expression expression) => new DefaultFormalParameter(parameter, Param eterKind.POSITIONAL, expression == null ? null : TokenFactory.tokenFromType(Toke nType.EQ), expression); 414 static DefaultFormalParameter positionalFormalParameter(NormalFormalParameter parameter, Expression expression) => new DefaultFormalParameter(parameter, Param eterKind.POSITIONAL, expression == null ? null : TokenFactory.tokenFromType(Toke nType.EQ), expression);
302 415
303 static PostfixExpression postfixExpression(Expression expression, TokenType op erator) => new PostfixExpression(expression, TokenFactory.tokenFromType(operator )); 416 static PostfixExpression postfixExpression(Expression expression, TokenType op erator) => new PostfixExpression(expression, TokenFactory.tokenFromType(operator ));
304 417
305 static PrefixExpression prefixExpression(TokenType operator, Expression expres sion) => new PrefixExpression(TokenFactory.tokenFromType(operator), expression); 418 static PrefixExpression prefixExpression(TokenType operator, Expression expres sion) => new PrefixExpression(TokenFactory.tokenFromType(operator), expression);
306 419
307 static PropertyAccess propertyAccess(Expression target, SimpleIdentifier prope rtyName) => new PropertyAccess(target, TokenFactory.tokenFromType(TokenType.PERI OD), propertyName); 420 static PropertyAccess propertyAccess(Expression target, SimpleIdentifier prope rtyName) => new PropertyAccess(target, TokenFactory.tokenFromType(TokenType.PERI OD), propertyName);
308 421
309 static PropertyAccess propertyAccess2(Expression target, String propertyName) => new PropertyAccess(target, TokenFactory.tokenFromType(TokenType.PERIOD), iden tifier3(propertyName)); 422 static PropertyAccess propertyAccess2(Expression target, String propertyName) => new PropertyAccess(target, TokenFactory.tokenFromType(TokenType.PERIOD), iden tifier3(propertyName));
310 423
311 static RedirectingConstructorInvocation redirectingConstructorInvocation(List< Expression> arguments) => redirectingConstructorInvocation2(null, arguments); 424 static RedirectingConstructorInvocation redirectingConstructorInvocation([List <Expression> arguments])
425 => redirectingConstructorInvocation2(null, arguments);
312 426
313 static RedirectingConstructorInvocation redirectingConstructorInvocation2(Stri ng constructorName, List<Expression> arguments) => new RedirectingConstructorInv ocation(TokenFactory.tokenFromKeyword(Keyword.THIS), constructorName == null ? n ull : TokenFactory.tokenFromType(TokenType.PERIOD), constructorName == null ? nu ll : identifier3(constructorName), argumentList(arguments)); 427 static RedirectingConstructorInvocation redirectingConstructorInvocation2(Stri ng constructorName, [List<Expression> arguments])
428 => new RedirectingConstructorInvocation(
429 TokenFactory.tokenFromKeyword(Keyword.THIS),
430 constructorName == null ? null : TokenFactory.tokenFromType(TokenType. PERIOD),
431 constructorName == null ? null : identifier3(constructorName),
432 argumentList(arguments));
314 433
315 static RethrowExpression rethrowExpression() => new RethrowExpression(TokenFac tory.tokenFromKeyword(Keyword.RETHROW)); 434 static RethrowExpression rethrowExpression() => new RethrowExpression(TokenFac tory.tokenFromKeyword(Keyword.RETHROW));
316 435
317 static ReturnStatement returnStatement() => returnStatement2(null); 436 static ReturnStatement returnStatement() => returnStatement2(null);
318 437
319 static ReturnStatement returnStatement2(Expression expression) => new ReturnSt atement(TokenFactory.tokenFromKeyword(Keyword.RETURN), expression, TokenFactory. tokenFromType(TokenType.SEMICOLON)); 438 static ReturnStatement returnStatement2(Expression expression) => new ReturnSt atement(TokenFactory.tokenFromKeyword(Keyword.RETURN), expression, TokenFactory. tokenFromType(TokenType.SEMICOLON));
320 439
321 static ScriptTag scriptTag(String scriptTag) => new ScriptTag(TokenFactory.tok enFromString(scriptTag)); 440 static ScriptTag scriptTag(String scriptTag) => new ScriptTag(TokenFactory.tok enFromString(scriptTag));
322 441
323 static ShowCombinator showCombinator(List<SimpleIdentifier> identifiers) => ne w ShowCombinator(TokenFactory.tokenFromString("show"), list(identifiers)); 442 static ShowCombinator showCombinator(List<SimpleIdentifier> identifiers) => ne w ShowCombinator(TokenFactory.tokenFromString("show"), identifiers);
324 443
325 static ShowCombinator showCombinator2(List<String> identifiers) { 444 static ShowCombinator showCombinator2(List<String> identifiers)
326 List<SimpleIdentifier> identifierList = new List<SimpleIdentifier>(); 445 => new ShowCombinator(
327 for (String identifier in identifiers) { 446 TokenFactory.tokenFromString("show"),
328 identifierList.add(identifier3(identifier)); 447 identifierList(identifiers));
329 }
330 return new ShowCombinator(TokenFactory.tokenFromString("show"), identifierLi st);
331 }
332 448
333 static SimpleFormalParameter simpleFormalParameter(Keyword keyword, String par ameterName) => simpleFormalParameter2(keyword, null, parameterName); 449 static SimpleFormalParameter simpleFormalParameter(Keyword keyword, String par ameterName) => simpleFormalParameter2(keyword, null, parameterName);
334 450
335 static SimpleFormalParameter simpleFormalParameter2(Keyword keyword, TypeName type, String parameterName) => new SimpleFormalParameter(null, null, keyword == null ? null : TokenFactory.tokenFromKeyword(keyword), type, identifier3(paramete rName)); 451 static SimpleFormalParameter simpleFormalParameter2(Keyword keyword, TypeName type, String parameterName) => new SimpleFormalParameter(null, null, keyword == null ? null : TokenFactory.tokenFromKeyword(keyword), type, identifier3(paramete rName));
336 452
337 static SimpleFormalParameter simpleFormalParameter3(String parameterName) => s impleFormalParameter2(null, null, parameterName); 453 static SimpleFormalParameter simpleFormalParameter3(String parameterName) => s impleFormalParameter2(null, null, parameterName);
338 454
339 static SimpleFormalParameter simpleFormalParameter4(TypeName type, String para meterName) => simpleFormalParameter2(null, type, parameterName); 455 static SimpleFormalParameter simpleFormalParameter4(TypeName type, String para meterName) => simpleFormalParameter2(null, type, parameterName);
340 456
341 static StringInterpolation string(List<InterpolationElement> elements) => new StringInterpolation(list(elements)); 457 static StringInterpolation string([List<InterpolationElement> elements])
458 => new StringInterpolation(elements);
342 459
343 static SimpleStringLiteral string2(String content) => new SimpleStringLiteral( TokenFactory.tokenFromString("'$content'"), content); 460 static SimpleStringLiteral string2(String content) => new SimpleStringLiteral( TokenFactory.tokenFromString("'$content'"), content);
344 461
345 static SuperConstructorInvocation superConstructorInvocation(List<Expression> arguments) => superConstructorInvocation2(null, arguments); 462 static SuperConstructorInvocation superConstructorInvocation([List<Expression> arguments])
463 => superConstructorInvocation2(null, arguments);
346 464
347 static SuperConstructorInvocation superConstructorInvocation2(String name, Lis t<Expression> arguments) => new SuperConstructorInvocation(TokenFactory.tokenFro mKeyword(Keyword.SUPER), name == null ? null : TokenFactory.tokenFromType(TokenT ype.PERIOD), name == null ? null : identifier3(name), argumentList(arguments)); 465 static SuperConstructorInvocation superConstructorInvocation2(String name, [Li st<Expression> arguments])
466 => new SuperConstructorInvocation(
467 TokenFactory.tokenFromKeyword(Keyword.SUPER),
468 name == null ? null : TokenFactory.tokenFromType(TokenType.PERIOD),
469 name == null ? null : identifier3(name),
470 argumentList(arguments));
348 471
349 static SuperExpression superExpression() => new SuperExpression(TokenFactory.t okenFromKeyword(Keyword.SUPER)); 472 static SuperExpression superExpression() => new SuperExpression(TokenFactory.t okenFromKeyword(Keyword.SUPER));
350 473
351 static SwitchCase switchCase(Expression expression, List<Statement> statements ) => switchCase2(new List<Label>(), expression, statements); 474 static SwitchCase switchCase(Expression expression, List<Statement> statements ) => switchCase2(new List<Label>(), expression, statements);
352 475
353 static SwitchCase switchCase2(List<Label> labels, Expression expression, List< Statement> statements) => new SwitchCase(labels, TokenFactory.tokenFromKeyword(K eyword.CASE), expression, TokenFactory.tokenFromType(TokenType.COLON), list(stat ements)); 476 static SwitchCase switchCase2(List<Label> labels, Expression expression, List< Statement> statements) => new SwitchCase(labels, TokenFactory.tokenFromKeyword(K eyword.CASE), expression, TokenFactory.tokenFromType(TokenType.COLON), statement s);
354 477
355 static SwitchDefault switchDefault(List<Label> labels, List<Statement> stateme nts) => new SwitchDefault(labels, TokenFactory.tokenFromKeyword(Keyword.DEFAULT) , TokenFactory.tokenFromType(TokenType.COLON), list(statements)); 478 static SwitchDefault switchDefault(List<Label> labels, List<Statement> stateme nts) => new SwitchDefault(labels, TokenFactory.tokenFromKeyword(Keyword.DEFAULT) , TokenFactory.tokenFromType(TokenType.COLON), statements);
356 479
357 static SwitchDefault switchDefault2(List<Statement> statements) => switchDefau lt(new List<Label>(), statements); 480 static SwitchDefault switchDefault2(List<Statement> statements) => switchDefau lt(new List<Label>(), statements);
358 481
359 static SwitchStatement switchStatement(Expression expression, List<SwitchMembe r> members) => new SwitchStatement(TokenFactory.tokenFromKeyword(Keyword.SWITCH) , TokenFactory.tokenFromType(TokenType.OPEN_PAREN), expression, TokenFactory.tok enFromType(TokenType.CLOSE_PAREN), TokenFactory.tokenFromType(TokenType.OPEN_CUR LY_BRACKET), list(members), TokenFactory.tokenFromType(TokenType.CLOSE_CURLY_BRA CKET)); 482 static SwitchStatement switchStatement(Expression expression, List<SwitchMembe r> members) => new SwitchStatement(TokenFactory.tokenFromKeyword(Keyword.SWITCH) , TokenFactory.tokenFromType(TokenType.OPEN_PAREN), expression, TokenFactory.tok enFromType(TokenType.CLOSE_PAREN), TokenFactory.tokenFromType(TokenType.OPEN_CUR LY_BRACKET), members, TokenFactory.tokenFromType(TokenType.CLOSE_CURLY_BRACKET)) ;
360 483
361 static SymbolLiteral symbolLiteral(List<String> components) { 484 static SymbolLiteral symbolLiteral(List<String> components) {
362 List<Token> identifierList = new List<Token>(); 485 List<Token> identifierList = new List<Token>();
363 for (String component in components) { 486 for (String component in components) {
364 identifierList.add(TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIE R, component)); 487 identifierList.add(TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIE R, component));
365 } 488 }
366 return new SymbolLiteral(TokenFactory.tokenFromType(TokenType.HASH), identif ierList); 489 return new SymbolLiteral(TokenFactory.tokenFromType(TokenType.HASH), identif ierList);
367 } 490 }
368 491
369 static BlockFunctionBody syncBlockFunctionBody(List<Statement> statements) => new BlockFunctionBody(TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "sync"), null, block(statements)); 492 static BlockFunctionBody syncBlockFunctionBody([List<Statement> statements])
493 => new BlockFunctionBody(
494 TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "sync"),
495 null,
496 block(statements));
370 497
371 static BlockFunctionBody syncGeneratorBlockFunctionBody(List<Statement> statem ents) => new BlockFunctionBody(TokenFactory.tokenFromTypeAndString(TokenType.IDE NTIFIER, "sync"), TokenFactory.tokenFromType(TokenType.STAR), block(statements)) ; 498 static BlockFunctionBody syncGeneratorBlockFunctionBody([List<Statement> state ments])
499 => new BlockFunctionBody(
500 TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "sync"),
501 TokenFactory.tokenFromType(TokenType.STAR),
502 block(statements));
372 503
373 static ThisExpression thisExpression() => new ThisExpression(TokenFactory.toke nFromKeyword(Keyword.THIS)); 504 static ThisExpression thisExpression() => new ThisExpression(TokenFactory.toke nFromKeyword(Keyword.THIS));
374 505
375 static ThrowExpression throwExpression() => throwExpression2(null); 506 static ThrowExpression throwExpression() => throwExpression2(null);
376 507
377 static ThrowExpression throwExpression2(Expression expression) => new ThrowExp ression(TokenFactory.tokenFromKeyword(Keyword.THROW), expression); 508 static ThrowExpression throwExpression2(Expression expression) => new ThrowExp ression(TokenFactory.tokenFromKeyword(Keyword.THROW), expression);
378 509
379 static TopLevelVariableDeclaration topLevelVariableDeclaration(Keyword keyword , TypeName type, List<VariableDeclaration> variables) => new TopLevelVariableDec laration(null, null, variableDeclarationList(keyword, type, variables), TokenFac tory.tokenFromType(TokenType.SEMICOLON)); 510 static TopLevelVariableDeclaration topLevelVariableDeclaration(Keyword keyword , TypeName type, List<VariableDeclaration> variables) => new TopLevelVariableDec laration(null, null, variableDeclarationList(keyword, type, variables), TokenFac tory.tokenFromType(TokenType.SEMICOLON));
380 511
381 static TopLevelVariableDeclaration topLevelVariableDeclaration2(Keyword keywor d, List<VariableDeclaration> variables) => new TopLevelVariableDeclaration(null, null, variableDeclarationList(keyword, null, variables), TokenFactory.tokenFrom Type(TokenType.SEMICOLON)); 512 static TopLevelVariableDeclaration topLevelVariableDeclaration2(Keyword keywor d, List<VariableDeclaration> variables) => new TopLevelVariableDeclaration(null, null, variableDeclarationList(keyword, null, variables), TokenFactory.tokenFrom Type(TokenType.SEMICOLON));
382 513
383 static TryStatement tryStatement(Block body, Block finallyClause) => tryStatem ent3(body, new List<CatchClause>(), finallyClause); 514 static TryStatement tryStatement(Block body, Block finallyClause) => tryStatem ent3(body, new List<CatchClause>(), finallyClause);
384 515
385 static TryStatement tryStatement2(Block body, List<CatchClause> catchClauses) => tryStatement3(body, list(catchClauses), null); 516 static TryStatement tryStatement2(Block body, List<CatchClause> catchClauses) => tryStatement3(body, catchClauses, null);
386 517
387 static TryStatement tryStatement3(Block body, List<CatchClause> catchClauses, Block finallyClause) => new TryStatement(TokenFactory.tokenFromKeyword(Keyword.T RY), body, catchClauses, finallyClause == null ? null : TokenFactory.tokenFromKe yword(Keyword.FINALLY), finallyClause); 518 static TryStatement tryStatement3(Block body, List<CatchClause> catchClauses, Block finallyClause) => new TryStatement(TokenFactory.tokenFromKeyword(Keyword.T RY), body, catchClauses, finallyClause == null ? null : TokenFactory.tokenFromKe yword(Keyword.FINALLY), finallyClause);
388 519
389 static FunctionTypeAlias typeAlias(TypeName returnType, String name, TypeParam eterList typeParameters, FormalParameterList parameters) => new FunctionTypeAlia s(null, null, TokenFactory.tokenFromKeyword(Keyword.TYPEDEF), returnType, identi fier3(name), typeParameters, parameters, TokenFactory.tokenFromType(TokenType.SE MICOLON)); 520 static FunctionTypeAlias typeAlias(TypeName returnType, String name, TypeParam eterList typeParameters, FormalParameterList parameters) => new FunctionTypeAlia s(null, null, TokenFactory.tokenFromKeyword(Keyword.TYPEDEF), returnType, identi fier3(name), typeParameters, parameters, TokenFactory.tokenFromType(TokenType.SE MICOLON));
390 521
391 static TypeArgumentList typeArgumentList(List<TypeName> typeNames) => new Type ArgumentList(TokenFactory.tokenFromType(TokenType.LT), list(typeNames), TokenFac tory.tokenFromType(TokenType.GT)); 522 static TypeArgumentList typeArgumentList(List<TypeName> typeNames) {
523 if (typeNames == null || typeNames.length == 0) {
524 return null;
525 }
526 return new TypeArgumentList(
527 TokenFactory.tokenFromType(TokenType.LT),
528 typeNames,
529 TokenFactory.tokenFromType(TokenType.GT));
530 }
392 531
393 /** 532 /**
394 * Create a type name whose name has been resolved to the given element and wh ose type has been 533 * Create a type name whose name has been resolved to the given [element] and
395 * resolved to the type of the given element. 534 * whose type has been resolved to the type of the given element.
396 * 535 *
397 * <b>Note:</b> This method does not correctly handle class elements that have type parameters. 536 * <b>Note:</b> This method does not correctly handle class elements that have
398 * 537 * type parameters.
399 * @param element the element defining the type represented by the type name
400 * @return the type name that was created
401 */ 538 */
402 static TypeName typeName(ClassElement element, List<TypeName> arguments) { 539 static TypeName typeName(ClassElement element, [List<TypeName> arguments]) {
403 SimpleIdentifier name = identifier3(element.name); 540 SimpleIdentifier name = identifier3(element.name);
404 name.staticElement = element; 541 name.staticElement = element;
405 TypeName typeName = typeName3(name, arguments); 542 TypeName typeName = typeName3(name, arguments);
406 typeName.type = element.type; 543 typeName.type = element.type;
407 return typeName; 544 return typeName;
408 } 545 }
409 546
410 static TypeName typeName3(Identifier name, List<TypeName> arguments) { 547 static TypeName typeName3(Identifier name, [List<TypeName> arguments])
411 if (arguments.length == 0) { 548 => new TypeName(name, typeArgumentList(arguments));
412 return new TypeName(name, null);
413 }
414 return new TypeName(name, typeArgumentList(arguments));
415 }
416 549
417 static TypeName typeName4(String name, List<TypeName> arguments) { 550 static TypeName typeName4(String name, [List<TypeName> arguments])
418 if (arguments.length == 0) { 551 => new TypeName(identifier3(name), typeArgumentList(arguments));
419 return new TypeName(identifier3(name), null);
420 }
421 return new TypeName(identifier3(name), typeArgumentList(arguments));
422 }
423 552
424 static TypeParameter typeParameter(String name) => new TypeParameter(null, nul l, identifier3(name), null, null); 553 static TypeParameter typeParameter(String name) => new TypeParameter(null, nul l, identifier3(name), null, null);
425 554
426 static TypeParameter typeParameter2(String name, TypeName bound) => new TypePa rameter(null, null, identifier3(name), TokenFactory.tokenFromKeyword(Keyword.EXT ENDS), bound); 555 static TypeParameter typeParameter2(String name, TypeName bound) => new TypePa rameter(null, null, identifier3(name), TokenFactory.tokenFromKeyword(Keyword.EXT ENDS), bound);
427 556
428 static TypeParameterList typeParameterList(List<String> typeNames) { 557 static TypeParameterList typeParameterList([List<String> typeNames]) {
429 List<TypeParameter> typeParameters = new List<TypeParameter>(); 558 List<TypeParameter> typeParameters = null;
430 for (String typeName in typeNames) { 559 if (typeNames != null && !typeNames.isEmpty) {
431 typeParameters.add(typeParameter(typeName)); 560 typeParameters = new List<TypeParameter>();
561 for (String typeName in typeNames) {
562 typeParameters.add(typeParameter(typeName));
563 }
432 } 564 }
433 return new TypeParameterList(TokenFactory.tokenFromType(TokenType.LT), typeP arameters, TokenFactory.tokenFromType(TokenType.GT)); 565 return new TypeParameterList(
566 TokenFactory.tokenFromType(TokenType.LT),
567 typeParameters,
568 TokenFactory.tokenFromType(TokenType.GT));
434 } 569 }
435 570
436 static VariableDeclaration variableDeclaration(String name) => new VariableDec laration(null, null, identifier3(name), null, null); 571 static VariableDeclaration variableDeclaration(String name) => new VariableDec laration(null, null, identifier3(name), null, null);
437 572
438 static VariableDeclaration variableDeclaration2(String name, Expression initia lizer) => new VariableDeclaration(null, null, identifier3(name), TokenFactory.to kenFromType(TokenType.EQ), initializer); 573 static VariableDeclaration variableDeclaration2(String name, Expression initia lizer) => new VariableDeclaration(null, null, identifier3(name), TokenFactory.to kenFromType(TokenType.EQ), initializer);
439 574
440 static VariableDeclarationList variableDeclarationList(Keyword keyword, TypeNa me type, List<VariableDeclaration> variables) => new VariableDeclarationList(nul l, null, keyword == null ? null : TokenFactory.tokenFromKeyword(keyword), type, list(variables)); 575 static VariableDeclarationList variableDeclarationList(Keyword keyword, TypeNa me type, List<VariableDeclaration> variables) => new VariableDeclarationList(nul l, null, keyword == null ? null : TokenFactory.tokenFromKeyword(keyword), type, variables);
441 576
442 static VariableDeclarationList variableDeclarationList2(Keyword keyword, List< VariableDeclaration> variables) => variableDeclarationList(keyword, null, variab les); 577 static VariableDeclarationList variableDeclarationList2(Keyword keyword, List< VariableDeclaration> variables) => variableDeclarationList(keyword, null, variab les);
443 578
444 static VariableDeclarationStatement variableDeclarationStatement(Keyword keywo rd, TypeName type, List<VariableDeclaration> variables) => new VariableDeclarati onStatement(variableDeclarationList(keyword, type, variables), TokenFactory.toke nFromType(TokenType.SEMICOLON)); 579 static VariableDeclarationStatement variableDeclarationStatement(Keyword keywo rd, TypeName type, List<VariableDeclaration> variables) => new VariableDeclarati onStatement(variableDeclarationList(keyword, type, variables), TokenFactory.toke nFromType(TokenType.SEMICOLON));
445 580
446 static VariableDeclarationStatement variableDeclarationStatement2(Keyword keyw ord, List<VariableDeclaration> variables) => variableDeclarationStatement(keywor d, null, variables); 581 static VariableDeclarationStatement variableDeclarationStatement2(Keyword keyw ord, List<VariableDeclaration> variables) => variableDeclarationStatement(keywor d, null, variables);
447 582
448 static WhileStatement whileStatement(Expression condition, Statement body) => new WhileStatement(TokenFactory.tokenFromKeyword(Keyword.WHILE), TokenFactory.to kenFromType(TokenType.OPEN_PAREN), condition, TokenFactory.tokenFromType(TokenTy pe.CLOSE_PAREN), body); 583 static WhileStatement whileStatement(Expression condition, Statement body) => new WhileStatement(TokenFactory.tokenFromKeyword(Keyword.WHILE), TokenFactory.to kenFromType(TokenType.OPEN_PAREN), condition, TokenFactory.tokenFromType(TokenTy pe.CLOSE_PAREN), body);
449 584
450 static WithClause withClause(List<TypeName> types) => new WithClause(TokenFact ory.tokenFromKeyword(Keyword.WITH), list(types)); 585 static WithClause withClause(List<TypeName> types) => new WithClause(TokenFact ory.tokenFromKeyword(Keyword.WITH), types);
451 586
452 static YieldStatement yieldEachStatement(Expression expression) => new YieldSt atement(TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "yield"), Toke nFactory.tokenFromType(TokenType.STAR), expression, TokenFactory.tokenFromType(T okenType.SEMICOLON)); 587 static YieldStatement yieldEachStatement(Expression expression) => new YieldSt atement(TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "yield"), Toke nFactory.tokenFromType(TokenType.STAR), expression, TokenFactory.tokenFromType(T okenType.SEMICOLON));
453 588
454 static YieldStatement yieldStatement(Expression expression) => new YieldStatem ent(TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "yield"), null, ex pression, TokenFactory.tokenFromType(TokenType.SEMICOLON)); 589 static YieldStatement yieldStatement(Expression expression) => new YieldStatem ent(TokenFactory.tokenFromTypeAndString(TokenType.IDENTIFIER, "yield"), null, ex pression, TokenFactory.tokenFromType(TokenType.SEMICOLON));
455 } 590 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/generated/scanner.dart ('k') | pkg/analyzer/lib/src/generated/testing/element_factory.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698