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

Side by Side Diff: pkg/compiler/lib/src/tree/nodes.dart

Issue 1873823002: Update elements, nodes and visitors for serialization. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Rebased Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « pkg/compiler/lib/src/ssa/builder.dart ('k') | pkg/compiler/lib/src/tree/prettyprint.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 import 'dart:collection' show IterableMixin; 5 import 'dart:collection' show IterableMixin;
6 6
7 import '../common.dart'; 7 import '../common.dart';
8 import '../tokens/precedence_constants.dart' as Precedence show FUNCTION_INFO; 8 import '../tokens/precedence_constants.dart' as Precedence show FUNCTION_INFO;
9 import '../tokens/token.dart' show BeginGroupToken, Token; 9 import '../tokens/token.dart' show BeginGroupToken, Token;
10 import '../tokens/token_constants.dart' as Tokens 10 import '../tokens/token_constants.dart' as Tokens
11 show IDENTIFIER_TOKEN, KEYWORD_TOKEN, PLUS_TOKEN; 11 show IDENTIFIER_TOKEN, KEYWORD_TOKEN, PLUS_TOKEN;
12 import '../util/util.dart'; 12 import '../util/util.dart';
13 import '../util/characters.dart'; 13 import '../util/characters.dart';
14 import '../resolution/secret_tree_element.dart' 14 import '../resolution/secret_tree_element.dart'
15 show NullTreeElementMixin, StoredTreeElementMixin; 15 show NullTreeElementMixin, StoredTreeElementMixin;
16 import '../elements/elements.dart' show MetadataAnnotation; 16 import '../elements/elements.dart' show MetadataAnnotation;
17 import 'dartstring.dart'; 17 import 'dartstring.dart';
18 import 'prettyprint.dart'; 18 import 'prettyprint.dart';
19 import 'unparser.dart'; 19 import 'unparser.dart';
20 20
21 abstract class Visitor<R> { 21 abstract class Visitor<R> {
22 const Visitor(); 22 const Visitor();
23 23
24 R visitNode(Node node); 24 R visitNode(Node node);
25 25
26 R visitAssert(Assert node) => visitStatement(node); 26 R visitAssert(Assert node) => visitStatement(node);
27 R visitAsyncForIn(AsyncForIn node) => visitLoop(node); 27 R visitAsyncForIn(AsyncForIn node) => visitForIn(node);
28 R visitAsyncModifier(AsyncModifier node) => visitNode(node); 28 R visitAsyncModifier(AsyncModifier node) => visitNode(node);
29 R visitAwait(Await node) => visitExpression(node); 29 R visitAwait(Await node) => visitExpression(node);
30 R visitBlock(Block node) => visitStatement(node); 30 R visitBlock(Block node) => visitStatement(node);
31 R visitBreakStatement(BreakStatement node) => visitGotoStatement(node); 31 R visitBreakStatement(BreakStatement node) => visitGotoStatement(node);
32 R visitCascade(Cascade node) => visitExpression(node); 32 R visitCascade(Cascade node) => visitExpression(node);
33 R visitCascadeReceiver(CascadeReceiver node) => visitExpression(node); 33 R visitCascadeReceiver(CascadeReceiver node) => visitExpression(node);
34 R visitCaseMatch(CaseMatch node) => visitNode(node); 34 R visitCaseMatch(CaseMatch node) => visitNode(node);
35 R visitCatchBlock(CatchBlock node) => visitNode(node); 35 R visitCatchBlock(CatchBlock node) => visitNode(node);
36 R visitClassNode(ClassNode node) => visitNode(node); 36 R visitClassNode(ClassNode node) => visitNode(node);
37 R visitCombinator(Combinator node) => visitNode(node); 37 R visitCombinator(Combinator node) => visitNode(node);
38 R visitConditional(Conditional node) => visitExpression(node); 38 R visitConditional(Conditional node) => visitExpression(node);
39 R visitConditionalUri(ConditionalUri node) => visitNode(node); 39 R visitConditionalUri(ConditionalUri node) => visitNode(node);
40 R visitContinueStatement(ContinueStatement node) => visitGotoStatement(node); 40 R visitContinueStatement(ContinueStatement node) => visitGotoStatement(node);
41 R visitDottedName(DottedName node) => visitExpression(node); 41 R visitDottedName(DottedName node) => visitExpression(node);
42 R visitDoWhile(DoWhile node) => visitLoop(node); 42 R visitDoWhile(DoWhile node) => visitLoop(node);
43 R visitEmptyStatement(EmptyStatement node) => visitStatement(node); 43 R visitEmptyStatement(EmptyStatement node) => visitStatement(node);
44 R visitEnum(Enum node) => visitNode(node); 44 R visitEnum(Enum node) => visitNode(node);
45 R visitExport(Export node) => visitLibraryDependency(node); 45 R visitExport(Export node) => visitLibraryDependency(node);
46 R visitExpression(Expression node) => visitNode(node); 46 R visitExpression(Expression node) => visitNode(node);
47 R visitExpressionStatement(ExpressionStatement node) => visitStatement(node); 47 R visitExpressionStatement(ExpressionStatement node) => visitStatement(node);
48 R visitFor(For node) => visitLoop(node); 48 R visitFor(For node) => visitLoop(node);
49 R visitForIn(ForIn node) => visitLoop(node);
49 R visitFunctionDeclaration(FunctionDeclaration node) => visitStatement(node); 50 R visitFunctionDeclaration(FunctionDeclaration node) => visitStatement(node);
50 R visitFunctionExpression(FunctionExpression node) => visitExpression(node); 51 R visitFunctionExpression(FunctionExpression node) => visitExpression(node);
51 R visitGotoStatement(GotoStatement node) => visitStatement(node); 52 R visitGotoStatement(GotoStatement node) => visitStatement(node);
52 R visitIdentifier(Identifier node) => visitExpression(node); 53 R visitIdentifier(Identifier node) => visitExpression(node);
53 R visitImport(Import node) => visitLibraryDependency(node); 54 R visitImport(Import node) => visitLibraryDependency(node);
54 R visitIf(If node) => visitStatement(node); 55 R visitIf(If node) => visitStatement(node);
55 R visitLabel(Label node) => visitNode(node); 56 R visitLabel(Label node) => visitNode(node);
56 R visitLabeledStatement(LabeledStatement node) => visitStatement(node); 57 R visitLabeledStatement(LabeledStatement node) => visitStatement(node);
57 R visitLibraryDependency(LibraryDependency node) => visitLibraryTag(node); 58 R visitLibraryDependency(LibraryDependency node) => visitLibraryTag(node);
58 R visitLibraryName(LibraryName node) => visitLibraryTag(node); 59 R visitLibraryName(LibraryName node) => visitLibraryTag(node);
59 R visitLibraryTag(LibraryTag node) => visitNode(node); 60 R visitLibraryTag(LibraryTag node) => visitNode(node);
60 R visitLiteral(Literal node) => visitExpression(node); 61 R visitLiteral(Literal node) => visitExpression(node);
61 R visitLiteralBool(LiteralBool node) => visitLiteral(node); 62 R visitLiteralBool(LiteralBool node) => visitLiteral(node);
62 R visitLiteralDouble(LiteralDouble node) => visitLiteral(node); 63 R visitLiteralDouble(LiteralDouble node) => visitLiteral(node);
63 R visitLiteralInt(LiteralInt node) => visitLiteral(node); 64 R visitLiteralInt(LiteralInt node) => visitLiteral(node);
64 R visitLiteralList(LiteralList node) => visitExpression(node); 65 R visitLiteralList(LiteralList node) => visitExpression(node);
65 R visitLiteralMap(LiteralMap node) => visitExpression(node); 66 R visitLiteralMap(LiteralMap node) => visitExpression(node);
66 R visitLiteralMapEntry(LiteralMapEntry node) => visitNode(node); 67 R visitLiteralMapEntry(LiteralMapEntry node) => visitNode(node);
67 R visitLiteralNull(LiteralNull node) => visitLiteral(node); 68 R visitLiteralNull(LiteralNull node) => visitLiteral(node);
68 R visitLiteralString(LiteralString node) => visitStringNode(node); 69 R visitLiteralString(LiteralString node) => visitStringNode(node);
69 R visitStringJuxtaposition(StringJuxtaposition node) => visitStringNode(node); 70 R visitStringJuxtaposition(StringJuxtaposition node) => visitStringNode(node);
70 R visitSyncForIn(SyncForIn node) => visitLoop(node); 71 R visitSyncForIn(SyncForIn node) => visitForIn(node);
71 R visitLoop(Loop node) => visitStatement(node); 72 R visitLoop(Loop node) => visitStatement(node);
72 R visitMetadata(Metadata node) => visitNode(node); 73 R visitMetadata(Metadata node) => visitNode(node);
73 R visitMixinApplication(MixinApplication node) => visitNode(node); 74 R visitMixinApplication(MixinApplication node) => visitNode(node);
74 R visitModifiers(Modifiers node) => visitNode(node); 75 R visitModifiers(Modifiers node) => visitNode(node);
75 R visitNamedArgument(NamedArgument node) => visitExpression(node); 76 R visitNamedArgument(NamedArgument node) => visitExpression(node);
76 R visitNamedMixinApplication(NamedMixinApplication node) { 77 R visitNamedMixinApplication(NamedMixinApplication node) {
77 return visitMixinApplication(node); 78 return visitMixinApplication(node);
78 } 79 }
79 80
80 R visitNewExpression(NewExpression node) => visitExpression(node); 81 R visitNewExpression(NewExpression node) => visitExpression(node);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 } 118 }
118 119
119 /// Visitor for [Node]s that take an additional argument of type [A] and returns 120 /// Visitor for [Node]s that take an additional argument of type [A] and returns
120 /// a value of type [R]. 121 /// a value of type [R].
121 abstract class Visitor1<R, A> { 122 abstract class Visitor1<R, A> {
122 const Visitor1(); 123 const Visitor1();
123 124
124 R visitNode(Node node, A arg); 125 R visitNode(Node node, A arg);
125 126
126 R visitAssert(Assert node, A arg) => visitStatement(node, arg); 127 R visitAssert(Assert node, A arg) => visitStatement(node, arg);
127 R visitAsyncForIn(AsyncForIn node, A arg) => visitLoop(node, arg); 128 R visitAsyncForIn(AsyncForIn node, A arg) => visitForIn(node, arg);
128 R visitAsyncModifier(AsyncModifier node, A arg) => visitNode(node, arg); 129 R visitAsyncModifier(AsyncModifier node, A arg) => visitNode(node, arg);
129 R visitAwait(Await node, A arg) => visitExpression(node, arg); 130 R visitAwait(Await node, A arg) => visitExpression(node, arg);
130 R visitBlock(Block node, A arg) => visitStatement(node, arg); 131 R visitBlock(Block node, A arg) => visitStatement(node, arg);
131 R visitBreakStatement(BreakStatement node, A arg) { 132 R visitBreakStatement(BreakStatement node, A arg) {
132 return visitGotoStatement(node, arg); 133 return visitGotoStatement(node, arg);
133 } 134 }
134 135
135 R visitCascade(Cascade node, A arg) => visitExpression(node, arg); 136 R visitCascade(Cascade node, A arg) => visitExpression(node, arg);
136 R visitCascadeReceiver(CascadeReceiver node, A arg) { 137 R visitCascadeReceiver(CascadeReceiver node, A arg) {
137 return visitExpression(node, arg); 138 return visitExpression(node, arg);
(...skipping 22 matching lines...) Expand all
160 } 161 }
161 162
162 R visitEnum(Enum node, A arg) => visitNode(node, arg); 163 R visitEnum(Enum node, A arg) => visitNode(node, arg);
163 R visitExport(Export node, A arg) => visitLibraryDependency(node, arg); 164 R visitExport(Export node, A arg) => visitLibraryDependency(node, arg);
164 R visitExpression(Expression node, A arg) => visitNode(node, arg); 165 R visitExpression(Expression node, A arg) => visitNode(node, arg);
165 R visitExpressionStatement(ExpressionStatement node, A arg) { 166 R visitExpressionStatement(ExpressionStatement node, A arg) {
166 return visitStatement(node, arg); 167 return visitStatement(node, arg);
167 } 168 }
168 169
169 R visitFor(For node, A arg) => visitLoop(node, arg); 170 R visitFor(For node, A arg) => visitLoop(node, arg);
171 R visitForIn(ForIn node, A arg) => visitLoop(node, arg);
170 R visitFunctionDeclaration(FunctionDeclaration node, A arg) { 172 R visitFunctionDeclaration(FunctionDeclaration node, A arg) {
171 return visitStatement(node, arg); 173 return visitStatement(node, arg);
172 } 174 }
173 175
174 R visitFunctionExpression(FunctionExpression node, A arg) { 176 R visitFunctionExpression(FunctionExpression node, A arg) {
175 return visitExpression(node, arg); 177 return visitExpression(node, arg);
176 } 178 }
177 179
178 R visitGotoStatement(GotoStatement node, A arg) { 180 R visitGotoStatement(GotoStatement node, A arg) {
179 return visitStatement(node, arg); 181 return visitStatement(node, arg);
(...skipping 25 matching lines...) Expand all
205 R visitLiteralInt(LiteralInt node, A arg) => visitLiteral(node, arg); 207 R visitLiteralInt(LiteralInt node, A arg) => visitLiteral(node, arg);
206 R visitLiteralList(LiteralList node, A arg) => visitExpression(node, arg); 208 R visitLiteralList(LiteralList node, A arg) => visitExpression(node, arg);
207 R visitLiteralMap(LiteralMap node, A arg) => visitExpression(node, arg); 209 R visitLiteralMap(LiteralMap node, A arg) => visitExpression(node, arg);
208 R visitLiteralMapEntry(LiteralMapEntry node, A arg) => visitNode(node, arg); 210 R visitLiteralMapEntry(LiteralMapEntry node, A arg) => visitNode(node, arg);
209 R visitLiteralNull(LiteralNull node, A arg) => visitLiteral(node, arg); 211 R visitLiteralNull(LiteralNull node, A arg) => visitLiteral(node, arg);
210 R visitLiteralString(LiteralString node, A arg) => visitStringNode(node, arg); 212 R visitLiteralString(LiteralString node, A arg) => visitStringNode(node, arg);
211 R visitStringJuxtaposition(StringJuxtaposition node, A arg) { 213 R visitStringJuxtaposition(StringJuxtaposition node, A arg) {
212 return visitStringNode(node, arg); 214 return visitStringNode(node, arg);
213 } 215 }
214 216
215 R visitSyncForIn(SyncForIn node, A arg) => visitLoop(node, arg); 217 R visitSyncForIn(SyncForIn node, A arg) => visitForIn(node, arg);
216 R visitLoop(Loop node, A arg) => visitStatement(node, arg); 218 R visitLoop(Loop node, A arg) => visitStatement(node, arg);
217 R visitMetadata(Metadata node, A arg) => visitNode(node, arg); 219 R visitMetadata(Metadata node, A arg) => visitNode(node, arg);
218 R visitMixinApplication(MixinApplication node, A arg) => visitNode(node, arg); 220 R visitMixinApplication(MixinApplication node, A arg) => visitNode(node, arg);
219 R visitModifiers(Modifiers node, A arg) => visitNode(node, arg); 221 R visitModifiers(Modifiers node, A arg) => visitNode(node, arg);
220 R visitNamedArgument(NamedArgument node, A arg) => visitExpression(node, arg); 222 R visitNamedArgument(NamedArgument node, A arg) => visitExpression(node, arg);
221 R visitNamedMixinApplication(NamedMixinApplication node, A arg) { 223 R visitNamedMixinApplication(NamedMixinApplication node, A arg) {
222 return visitMixinApplication(node, arg); 224 return visitMixinApplication(node, arg);
223 } 225 }
224 226
225 R visitNewExpression(NewExpression node, A arg) => visitExpression(node, arg); 227 R visitNewExpression(NewExpression node, A arg) => visitExpression(node, arg);
(...skipping 2886 matching lines...) Expand 10 before | Expand all | Expand 10 after
3112 3114
3113 // VariableDefinitions. 3115 // VariableDefinitions.
3114 get metadata => null; 3116 get metadata => null;
3115 get type => null; 3117 get type => null;
3116 3118
3117 // Typedef. 3119 // Typedef.
3118 get typeParameters => null; 3120 get typeParameters => null;
3119 get formals => null; 3121 get formals => null;
3120 get typedefKeyword => null; 3122 get typedefKeyword => null;
3121 } 3123 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/ssa/builder.dart ('k') | pkg/compiler/lib/src/tree/prettyprint.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698