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

Side by Side Diff: pkg/kernel/lib/visitor.dart

Issue 2767773004: Add Vector type to Kernel (Closed)
Patch Set: Make fixes suggested by the reviewers Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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 library kernel.ast.visitor; 4 library kernel.ast.visitor;
5 5
6 import 'ast.dart'; 6 import 'ast.dart';
7 7
8 abstract class ExpressionVisitor<R> { 8 abstract class ExpressionVisitor<R> {
9 R defaultExpression(Expression node) => null; 9 R defaultExpression(Expression node) => null;
10 R defaultBasicLiteral(BasicLiteral node) => defaultExpression(node); 10 R defaultBasicLiteral(BasicLiteral node) => defaultExpression(node);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 R visitFunctionExpression(FunctionExpression node) => defaultExpression(node); 47 R visitFunctionExpression(FunctionExpression node) => defaultExpression(node);
48 R visitStringLiteral(StringLiteral node) => defaultBasicLiteral(node); 48 R visitStringLiteral(StringLiteral node) => defaultBasicLiteral(node);
49 R visitIntLiteral(IntLiteral node) => defaultBasicLiteral(node); 49 R visitIntLiteral(IntLiteral node) => defaultBasicLiteral(node);
50 R visitDoubleLiteral(DoubleLiteral node) => defaultBasicLiteral(node); 50 R visitDoubleLiteral(DoubleLiteral node) => defaultBasicLiteral(node);
51 R visitBoolLiteral(BoolLiteral node) => defaultBasicLiteral(node); 51 R visitBoolLiteral(BoolLiteral node) => defaultBasicLiteral(node);
52 R visitNullLiteral(NullLiteral node) => defaultBasicLiteral(node); 52 R visitNullLiteral(NullLiteral node) => defaultBasicLiteral(node);
53 R visitLet(Let node) => defaultExpression(node); 53 R visitLet(Let node) => defaultExpression(node);
54 R visitLoadLibrary(LoadLibrary node) => defaultExpression(node); 54 R visitLoadLibrary(LoadLibrary node) => defaultExpression(node);
55 R visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node) => 55 R visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node) =>
56 defaultExpression(node); 56 defaultExpression(node);
57 R visitVectorCreation(VectorCreation node) => defaultExpression(node);
58 R visitVectorGet(VectorGet node) => defaultExpression(node);
59 R visitVectorSet(VectorSet node) => defaultExpression(node);
60 R visitVectorCopy(VectorCopy node) => defaultExpression(node);
57 } 61 }
58 62
59 abstract class StatementVisitor<R> { 63 abstract class StatementVisitor<R> {
60 R defaultStatement(Statement node) => null; 64 R defaultStatement(Statement node) => null;
61 65
62 R visitInvalidStatement(InvalidStatement node) => defaultStatement(node); 66 R visitInvalidStatement(InvalidStatement node) => defaultStatement(node);
63 R visitExpressionStatement(ExpressionStatement node) => 67 R visitExpressionStatement(ExpressionStatement node) =>
64 defaultStatement(node); 68 defaultStatement(node);
65 R visitBlock(Block node) => defaultStatement(node); 69 R visitBlock(Block node) => defaultStatement(node);
66 R visitEmptyStatement(EmptyStatement node) => defaultStatement(node); 70 R visitEmptyStatement(EmptyStatement node) => defaultStatement(node);
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 R visitFunctionExpression(FunctionExpression node) => defaultExpression(node); 158 R visitFunctionExpression(FunctionExpression node) => defaultExpression(node);
155 R visitStringLiteral(StringLiteral node) => defaultBasicLiteral(node); 159 R visitStringLiteral(StringLiteral node) => defaultBasicLiteral(node);
156 R visitIntLiteral(IntLiteral node) => defaultBasicLiteral(node); 160 R visitIntLiteral(IntLiteral node) => defaultBasicLiteral(node);
157 R visitDoubleLiteral(DoubleLiteral node) => defaultBasicLiteral(node); 161 R visitDoubleLiteral(DoubleLiteral node) => defaultBasicLiteral(node);
158 R visitBoolLiteral(BoolLiteral node) => defaultBasicLiteral(node); 162 R visitBoolLiteral(BoolLiteral node) => defaultBasicLiteral(node);
159 R visitNullLiteral(NullLiteral node) => defaultBasicLiteral(node); 163 R visitNullLiteral(NullLiteral node) => defaultBasicLiteral(node);
160 R visitLet(Let node) => defaultExpression(node); 164 R visitLet(Let node) => defaultExpression(node);
161 R visitLoadLibrary(LoadLibrary node) => defaultExpression(node); 165 R visitLoadLibrary(LoadLibrary node) => defaultExpression(node);
162 R visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node) => 166 R visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node) =>
163 defaultExpression(node); 167 defaultExpression(node);
168 R visitVectorCreation(VectorCreation node) => defaultExpression(node);
169 R visitVectorGet(VectorGet node) => defaultExpression(node);
170 R visitVectorSet(VectorSet node) => defaultExpression(node);
171 R visitVectorCopy(VectorCopy node) => defaultExpression(node);
164 172
165 // Statements 173 // Statements
166 R defaultStatement(Statement node) => defaultTreeNode(node); 174 R defaultStatement(Statement node) => defaultTreeNode(node);
167 R visitInvalidStatement(InvalidStatement node) => defaultStatement(node); 175 R visitInvalidStatement(InvalidStatement node) => defaultStatement(node);
168 R visitExpressionStatement(ExpressionStatement node) => 176 R visitExpressionStatement(ExpressionStatement node) =>
169 defaultStatement(node); 177 defaultStatement(node);
170 R visitBlock(Block node) => defaultStatement(node); 178 R visitBlock(Block node) => defaultStatement(node);
171 R visitEmptyStatement(EmptyStatement node) => defaultStatement(node); 179 R visitEmptyStatement(EmptyStatement node) => defaultStatement(node);
172 R visitAssertStatement(AssertStatement node) => defaultStatement(node); 180 R visitAssertStatement(AssertStatement node) => defaultStatement(node);
173 R visitLabeledStatement(LabeledStatement node) => defaultStatement(node); 181 R visitLabeledStatement(LabeledStatement node) => defaultStatement(node);
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 } 230 }
223 231
224 class DartTypeVisitor<R> { 232 class DartTypeVisitor<R> {
225 R defaultDartType(DartType node) => null; 233 R defaultDartType(DartType node) => null;
226 234
227 R visitInvalidType(InvalidType node) => defaultDartType(node); 235 R visitInvalidType(InvalidType node) => defaultDartType(node);
228 R visitDynamicType(DynamicType node) => defaultDartType(node); 236 R visitDynamicType(DynamicType node) => defaultDartType(node);
229 R visitVoidType(VoidType node) => defaultDartType(node); 237 R visitVoidType(VoidType node) => defaultDartType(node);
230 R visitBottomType(BottomType node) => defaultDartType(node); 238 R visitBottomType(BottomType node) => defaultDartType(node);
231 R visitInterfaceType(InterfaceType node) => defaultDartType(node); 239 R visitInterfaceType(InterfaceType node) => defaultDartType(node);
240 R visitVectorType(VectorType node) => defaultDartType(node);
232 R visitFunctionType(FunctionType node) => defaultDartType(node); 241 R visitFunctionType(FunctionType node) => defaultDartType(node);
233 R visitTypeParameterType(TypeParameterType node) => defaultDartType(node); 242 R visitTypeParameterType(TypeParameterType node) => defaultDartType(node);
234 } 243 }
235 244
236 class MemberReferenceVisitor<R> { 245 class MemberReferenceVisitor<R> {
237 R defaultMemberReference(Member node) => null; 246 R defaultMemberReference(Member node) => null;
238 247
239 R visitFieldReference(Field node) => defaultMemberReference(node); 248 R visitFieldReference(Field node) => defaultMemberReference(node);
240 R visitConstructorReference(Constructor node) => defaultMemberReference(node); 249 R visitConstructorReference(Constructor node) => defaultMemberReference(node);
241 R visitProcedureReference(Procedure node) => defaultMemberReference(node); 250 R visitProcedureReference(Procedure node) => defaultMemberReference(node);
242 } 251 }
243 252
244 class Visitor<R> extends TreeVisitor<R> 253 class Visitor<R> extends TreeVisitor<R>
245 implements DartTypeVisitor<R>, MemberReferenceVisitor<R> { 254 implements DartTypeVisitor<R>, MemberReferenceVisitor<R> {
246 /// The catch-all case, except for references. 255 /// The catch-all case, except for references.
247 R defaultNode(Node node) => null; 256 R defaultNode(Node node) => null;
248 R defaultTreeNode(TreeNode node) => defaultNode(node); 257 R defaultTreeNode(TreeNode node) => defaultNode(node);
249 258
250 /// Inferred values 259 /// Inferred values
251 R visitInferredValue(InferredValue node) => defaultNode(node); 260 R visitInferredValue(InferredValue node) => defaultNode(node);
252 261
253 // DartTypes 262 // DartTypes
254 R defaultDartType(DartType node) => defaultNode(node); 263 R defaultDartType(DartType node) => defaultNode(node);
255 R visitInvalidType(InvalidType node) => defaultDartType(node); 264 R visitInvalidType(InvalidType node) => defaultDartType(node);
256 R visitDynamicType(DynamicType node) => defaultDartType(node); 265 R visitDynamicType(DynamicType node) => defaultDartType(node);
257 R visitVoidType(VoidType node) => defaultDartType(node); 266 R visitVoidType(VoidType node) => defaultDartType(node);
258 R visitBottomType(BottomType node) => defaultDartType(node); 267 R visitBottomType(BottomType node) => defaultDartType(node);
259 R visitInterfaceType(InterfaceType node) => defaultDartType(node); 268 R visitInterfaceType(InterfaceType node) => defaultDartType(node);
269 R visitVectorType(VectorType node) => defaultDartType(node);
260 R visitFunctionType(FunctionType node) => defaultDartType(node); 270 R visitFunctionType(FunctionType node) => defaultDartType(node);
261 R visitTypeParameterType(TypeParameterType node) => defaultDartType(node); 271 R visitTypeParameterType(TypeParameterType node) => defaultDartType(node);
262 272
263 // Class references 273 // Class references
264 R visitClassReference(Class node) => null; 274 R visitClassReference(Class node) => null;
265 275
266 // Member references 276 // Member references
267 R defaultMemberReference(Member node) => null; 277 R defaultMemberReference(Member node) => null;
268 R visitFieldReference(Field node) => defaultMemberReference(node); 278 R visitFieldReference(Field node) => defaultMemberReference(node);
269 R visitConstructorReference(Constructor node) => defaultMemberReference(node); 279 R visitConstructorReference(Constructor node) => defaultMemberReference(node);
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
373 defaultBasicLiteral(node, arg); 383 defaultBasicLiteral(node, arg);
374 R visitIntLiteral(IntLiteral node, arg) => defaultBasicLiteral(node, arg); 384 R visitIntLiteral(IntLiteral node, arg) => defaultBasicLiteral(node, arg);
375 R visitDoubleLiteral(DoubleLiteral node, arg) => 385 R visitDoubleLiteral(DoubleLiteral node, arg) =>
376 defaultBasicLiteral(node, arg); 386 defaultBasicLiteral(node, arg);
377 R visitBoolLiteral(BoolLiteral node, arg) => defaultBasicLiteral(node, arg); 387 R visitBoolLiteral(BoolLiteral node, arg) => defaultBasicLiteral(node, arg);
378 R visitNullLiteral(NullLiteral node, arg) => defaultBasicLiteral(node, arg); 388 R visitNullLiteral(NullLiteral node, arg) => defaultBasicLiteral(node, arg);
379 R visitLet(Let node, arg) => defaultExpression(node, arg); 389 R visitLet(Let node, arg) => defaultExpression(node, arg);
380 R visitLoadLibrary(LoadLibrary node, arg) => defaultExpression(node, arg); 390 R visitLoadLibrary(LoadLibrary node, arg) => defaultExpression(node, arg);
381 R visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node, arg) => 391 R visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node, arg) =>
382 defaultExpression(node, arg); 392 defaultExpression(node, arg);
393 R visitVectorCreation(VectorCreation node, arg) =>
394 defaultExpression(node, arg);
395 R visitVectorGet(VectorGet node, arg) => defaultExpression(node, arg);
396 R visitVectorSet(VectorSet node, arg) => defaultExpression(node, arg);
397 R visitVectorCopy(VectorCopy node, arg) => defaultExpression(node, arg);
383 } 398 }
384 399
385 abstract class StatementVisitor1<R> { 400 abstract class StatementVisitor1<R> {
386 R defaultStatement(Statement node, arg) => null; 401 R defaultStatement(Statement node, arg) => null;
387 402
388 R visitInvalidStatement(InvalidStatement node, arg) => 403 R visitInvalidStatement(InvalidStatement node, arg) =>
389 defaultStatement(node, arg); 404 defaultStatement(node, arg);
390 R visitExpressionStatement(ExpressionStatement node, arg) => 405 R visitExpressionStatement(ExpressionStatement node, arg) =>
391 defaultStatement(node, arg); 406 defaultStatement(node, arg);
392 R visitBlock(Block node, arg) => defaultStatement(node, arg); 407 R visitBlock(Block node, arg) => defaultStatement(node, arg);
(...skipping 20 matching lines...) Expand all
413 defaultStatement(node, arg); 428 defaultStatement(node, arg);
414 R visitTryCatch(TryCatch node, arg) => defaultStatement(node, arg); 429 R visitTryCatch(TryCatch node, arg) => defaultStatement(node, arg);
415 R visitTryFinally(TryFinally node, arg) => defaultStatement(node, arg); 430 R visitTryFinally(TryFinally node, arg) => defaultStatement(node, arg);
416 R visitYieldStatement(YieldStatement node, arg) => 431 R visitYieldStatement(YieldStatement node, arg) =>
417 defaultStatement(node, arg); 432 defaultStatement(node, arg);
418 R visitVariableDeclaration(VariableDeclaration node, arg) => 433 R visitVariableDeclaration(VariableDeclaration node, arg) =>
419 defaultStatement(node, arg); 434 defaultStatement(node, arg);
420 R visitFunctionDeclaration(FunctionDeclaration node, arg) => 435 R visitFunctionDeclaration(FunctionDeclaration node, arg) =>
421 defaultStatement(node, arg); 436 defaultStatement(node, arg);
422 } 437 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698