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

Side by Side Diff: pkg/front_end/lib/src/fasta/analyzer/ast_builder.dart

Issue 2721973002: Parse SuperExpression with Fasta. (Closed)
Patch Set: 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
« no previous file with comments | « pkg/analyzer/test/generated/parser_fasta_test.dart ('k') | no next file » | 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) 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 4
5 library fasta.analyzer.ast_builder; 5 library fasta.analyzer.ast_builder;
6 6
7 import 'package:analyzer/analyzer.dart'; 7 import 'package:analyzer/analyzer.dart';
8 import 'package:analyzer/dart/ast/ast_factory.dart' show AstFactory; 8 import 'package:analyzer/dart/ast/ast_factory.dart' show AstFactory;
9 import 'package:analyzer/dart/ast/standard_ast_factory.dart' as standard; 9 import 'package:analyzer/dart/ast/standard_ast_factory.dart' as standard;
10 import 'package:analyzer/dart/ast/token.dart' as analyzer show Token; 10 import 'package:analyzer/dart/ast/token.dart' as analyzer show Token;
(...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 void endLiteralSymbol(Token hashToken, int identifierCount) { 437 void endLiteralSymbol(Token hashToken, int identifierCount) {
438 debugEvent("LiteralSymbol"); 438 debugEvent("LiteralSymbol");
439 List<analyzer.Token> components = new List<analyzer.Token>(identifierCount); 439 List<analyzer.Token> components = new List<analyzer.Token>(identifierCount);
440 for (int i = identifierCount - 1; i >= 0; i--) { 440 for (int i = identifierCount - 1; i >= 0; i--) {
441 SimpleIdentifier identifier = pop(); 441 SimpleIdentifier identifier = pop();
442 components[i] = identifier.token; 442 components[i] = identifier.token;
443 } 443 }
444 push(ast.symbolLiteral(toAnalyzerToken(hashToken), components)); 444 push(ast.symbolLiteral(toAnalyzerToken(hashToken), components));
445 } 445 }
446 446
447 @override
448 void handleSuperExpression(Token token) {
449 debugEvent("SuperExpression");
450 push(ast.superExpression(toAnalyzerToken(token)));
451 }
452
447 void handleType(Token beginToken, Token endToken) { 453 void handleType(Token beginToken, Token endToken) {
448 debugEvent("Type"); 454 debugEvent("Type");
449 TypeArgumentList arguments = pop(); 455 TypeArgumentList arguments = pop();
450 Identifier name = pop(); 456 Identifier name = pop();
451 // TODO(paulberry,ahe): what if the type doesn't resolve to a class 457 // TODO(paulberry,ahe): what if the type doesn't resolve to a class
452 // element? Try to share code with BodyBuilder.builderToFirstExpression. 458 // element? Try to share code with BodyBuilder.builderToFirstExpression.
453 KernelClassElement cls = name.staticElement; 459 KernelClassElement cls = name.staticElement;
454 push(ast.typeName(name, arguments)..type = cls?.rawType); 460 push(ast.typeName(name, arguments)..type = cls?.rawType);
455 } 461 }
456 462
(...skipping 882 matching lines...) Expand 10 before | Expand all | Expand 10 after
1339 1345
1340 /// Data structure placed on the stack as a container for optional parameters. 1346 /// Data structure placed on the stack as a container for optional parameters.
1341 class _OptionalFormalParameters { 1347 class _OptionalFormalParameters {
1342 final List<FormalParameter> parameters; 1348 final List<FormalParameter> parameters;
1343 final Token leftDelimiter; 1349 final Token leftDelimiter;
1344 final Token rightDelimiter; 1350 final Token rightDelimiter;
1345 1351
1346 _OptionalFormalParameters( 1352 _OptionalFormalParameters(
1347 this.parameters, this.leftDelimiter, this.rightDelimiter); 1353 this.parameters, this.leftDelimiter, this.rightDelimiter);
1348 } 1354 }
OLDNEW
« no previous file with comments | « pkg/analyzer/test/generated/parser_fasta_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698