| OLD | NEW |
| 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, 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 'package:analyzer/dart/ast/ast.dart'; | 5 import 'package:analyzer/dart/ast/ast.dart'; |
| 6 import 'package:analyzer/dart/ast/token.dart' as analyzer; | 6 import 'package:analyzer/dart/ast/token.dart' as analyzer; |
| 7 import 'package:analyzer/error/error.dart'; | 7 import 'package:analyzer/error/error.dart'; |
| 8 import 'package:analyzer/error/listener.dart' show ErrorReporter; | 8 import 'package:analyzer/error/listener.dart' show ErrorReporter; |
| 9 import 'package:analyzer/src/dart/scanner/scanner.dart'; | 9 import 'package:analyzer/src/dart/scanner/scanner.dart'; |
| 10 import 'package:analyzer/src/fasta/ast_builder.dart'; | 10 import 'package:analyzer/src/fasta/ast_builder.dart'; |
| (...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 460 token, | 460 token, |
| 461 inFunctionType | 461 inFunctionType |
| 462 ? fasta.MemberKind.GeneralizedFunctionType | 462 ? fasta.MemberKind.GeneralizedFunctionType |
| 463 : fasta.MemberKind.NonStaticMethod); | 463 : fasta.MemberKind.NonStaticMethod); |
| 464 }, | 464 }, |
| 465 errorCodes) as FormalParameterList; | 465 errorCodes) as FormalParameterList; |
| 466 } | 466 } |
| 467 | 467 |
| 468 @override | 468 @override |
| 469 CompilationUnitMember parseFullCompilationUnitMember() { | 469 CompilationUnitMember parseFullCompilationUnitMember() { |
| 470 return _parserProxy.parseTopLevelDeclaration(); | 470 return _parserProxy.parseTopLevelDeclaration(false); |
| 471 } | 471 } |
| 472 | 472 |
| 473 @override | 473 @override |
| 474 Directive parseFullDirective() { | 474 Directive parseFullDirective() { |
| 475 return _parserProxy.parseTopLevelDeclaration(); | 475 return _parserProxy.parseTopLevelDeclaration(true); |
| 476 } | 476 } |
| 477 | 477 |
| 478 @override | 478 @override |
| 479 FunctionExpression parseFunctionExpression(String code) { | 479 FunctionExpression parseFunctionExpression(String code) { |
| 480 return _parseExpression(code); | 480 return _parseExpression(code); |
| 481 } | 481 } |
| 482 | 482 |
| 483 @override | 483 @override |
| 484 InstanceCreationExpression parseInstanceCreationExpression( | 484 InstanceCreationExpression parseInstanceCreationExpression( |
| 485 String code, analyzer.Token newToken) { | 485 String code, analyzer.Token newToken) { |
| (...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 831 return result; | 831 return result; |
| 832 } | 832 } |
| 833 | 833 |
| 834 @override | 834 @override |
| 835 CompilationUnit parseCompilationUnit2() { | 835 CompilationUnit parseCompilationUnit2() { |
| 836 var result = _run((parser) => parser.parseUnit) as CompilationUnit; | 836 var result = _run((parser) => parser.parseUnit) as CompilationUnit; |
| 837 _eventListener.expectEmpty(); | 837 _eventListener.expectEmpty(); |
| 838 return result; | 838 return result; |
| 839 } | 839 } |
| 840 | 840 |
| 841 AnnotatedNode parseTopLevelDeclaration() { | 841 AnnotatedNode parseTopLevelDeclaration(bool isDirective) { |
| 842 _eventListener.begin('CompilationUnit'); | 842 _eventListener.begin('CompilationUnit'); |
| 843 var result = _run((parser) => parser.parseTopLevelDeclaration); | 843 _currentFastaToken = |
| 844 _fastaParser.parseTopLevelDeclaration(_currentFastaToken); |
| 845 expect(_currentFastaToken.isEof, isTrue); |
| 846 expect(_astBuilder.stack, hasLength(0)); |
| 847 expect(_astBuilder.scriptTag, isNull); |
| 848 expect(_astBuilder.directives, hasLength(isDirective ? 1 : 0)); |
| 849 expect(_astBuilder.declarations, hasLength(isDirective ? 0 : 1)); |
| 844 _eventListener.end('CompilationUnit'); | 850 _eventListener.end('CompilationUnit'); |
| 845 return result; | 851 return (isDirective ? _astBuilder.directives : _astBuilder.declarations) |
| 852 .first; |
| 846 } | 853 } |
| 847 | 854 |
| 848 /** | 855 /** |
| 849 * Runs a single parser function, and returns the result as an analyzer AST. | 856 * Runs a single parser function, and returns the result as an analyzer AST. |
| 850 */ | 857 */ |
| 851 Object _run(ParseFunction getParseFunction(fasta.Parser parser)) { | 858 Object _run(ParseFunction getParseFunction(fasta.Parser parser)) { |
| 852 var parseFunction = getParseFunction(_fastaParser); | 859 var parseFunction = getParseFunction(_fastaParser); |
| 853 _currentFastaToken = parseFunction(_currentFastaToken); | 860 _currentFastaToken = parseFunction(_currentFastaToken); |
| 854 expect(_currentFastaToken.isEof, isTrue); | 861 expect(_currentFastaToken.isEof, isTrue); |
| 855 expect(_astBuilder.stack, hasLength(1)); | 862 expect(_astBuilder.stack, hasLength(1)); |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1024 assertNoErrors(); | 1031 assertNoErrors(); |
| 1025 } | 1032 } |
| 1026 | 1033 |
| 1027 @failingTest | 1034 @failingTest |
| 1028 void test_parseCompilationUnitMember_abstractAsPrefix2() { | 1035 void test_parseCompilationUnitMember_abstractAsPrefix2() { |
| 1029 // TODO(danrubel): should not be generating an error | 1036 // TODO(danrubel): should not be generating an error |
| 1030 super.test_parseCompilationUnitMember_abstractAsPrefix(); | 1037 super.test_parseCompilationUnitMember_abstractAsPrefix(); |
| 1031 assertNoErrors(); | 1038 assertNoErrors(); |
| 1032 } | 1039 } |
| 1033 } | 1040 } |
| OLD | NEW |