| OLD | NEW |
| 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.diet_listener; | 5 library fasta.diet_listener; |
| 6 | 6 |
| 7 import 'package:front_end/src/fasta/kernel/kernel_ast_factory.dart' | 7 import 'package:front_end/src/fasta/kernel/kernel_ast_factory.dart' |
| 8 show KernelAstFactory; | 8 show KernelAstFactory; |
| 9 | 9 |
| 10 import 'package:front_end/src/fasta/type_inference/type_inference_engine.dart' | 10 import 'package:front_end/src/fasta/type_inference/type_inference_engine.dart' |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 | 41 |
| 42 import 'source_library_builder.dart' show SourceLibraryBuilder; | 42 import 'source_library_builder.dart' show SourceLibraryBuilder; |
| 43 | 43 |
| 44 class DietListener extends StackListener { | 44 class DietListener extends StackListener { |
| 45 final SourceLibraryBuilder library; | 45 final SourceLibraryBuilder library; |
| 46 | 46 |
| 47 final ClassHierarchy hierarchy; | 47 final ClassHierarchy hierarchy; |
| 48 | 48 |
| 49 final CoreTypes coreTypes; | 49 final CoreTypes coreTypes; |
| 50 | 50 |
| 51 final bool isDartLibrary; | 51 final bool enableNative; |
| 52 | 52 |
| 53 final TypeInferenceEngine typeInferenceEngine; | 53 final TypeInferenceEngine typeInferenceEngine; |
| 54 | 54 |
| 55 ClassBuilder currentClass; | 55 ClassBuilder currentClass; |
| 56 | 56 |
| 57 /// For top-level declarations, this is the library scope. For class members, | 57 /// For top-level declarations, this is the library scope. For class members, |
| 58 /// this is the instance scope of [currentClass]. | 58 /// this is the instance scope of [currentClass]. |
| 59 Scope memberScope; | 59 Scope memberScope; |
| 60 | 60 |
| 61 @override | 61 @override |
| 62 Uri uri; | 62 Uri uri; |
| 63 | 63 |
| 64 DietListener(SourceLibraryBuilder library, this.hierarchy, this.coreTypes, | 64 DietListener(SourceLibraryBuilder library, this.hierarchy, this.coreTypes, |
| 65 this.typeInferenceEngine) | 65 this.typeInferenceEngine) |
| 66 : library = library, | 66 : library = library, |
| 67 uri = library.fileUri, | 67 uri = library.fileUri, |
| 68 memberScope = library.scope, | 68 memberScope = library.scope, |
| 69 isDartLibrary = library.uri.scheme == "dart"; | 69 enableNative = (library.uri.scheme == "dart" || library.isPatch); |
| 70 | 70 |
| 71 void discard(int n) { | 71 void discard(int n) { |
| 72 for (int i = 0; i < n; i++) { | 72 for (int i = 0; i < n; i++) { |
| 73 pop(); | 73 pop(); |
| 74 } | 74 } |
| 75 } | 75 } |
| 76 | 76 |
| 77 @override | 77 @override |
| 78 void endMetadataStar(int count, bool forParameter) { | 78 void endMetadataStar(int count, bool forParameter) { |
| 79 debugEvent("MetadataStar"); | 79 debugEvent("MetadataStar"); |
| (...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 493 @override | 493 @override |
| 494 void endNamedMixinApplication(Token beginToken, Token classKeyword, | 494 void endNamedMixinApplication(Token beginToken, Token classKeyword, |
| 495 Token equals, Token implementsKeyword, Token endToken) { | 495 Token equals, Token implementsKeyword, Token endToken) { |
| 496 debugEvent("NamedMixinApplication"); | 496 debugEvent("NamedMixinApplication"); |
| 497 pop(); // Name. | 497 pop(); // Name. |
| 498 checkEmpty(beginToken.charOffset); | 498 checkEmpty(beginToken.charOffset); |
| 499 } | 499 } |
| 500 | 500 |
| 501 @override | 501 @override |
| 502 Token handleUnrecoverableError(Token token, FastaMessage message) { | 502 Token handleUnrecoverableError(Token token, FastaMessage message) { |
| 503 if (isDartLibrary && message.code == codeExpectedBlockToSkip) { | 503 if (enableNative && message.code == codeExpectedBlockToSkip) { |
| 504 Token recover = library.loader.target.skipNativeClause(token); | 504 Token recover = library.loader.target.skipNativeClause(token); |
| 505 if (recover != null) return recover; | 505 if (recover != null) return recover; |
| 506 } | 506 } |
| 507 return super.handleUnrecoverableError(token, message); | 507 return super.handleUnrecoverableError(token, message); |
| 508 } | 508 } |
| 509 | 509 |
| 510 @override | 510 @override |
| 511 Link<Token> handleMemberName(Link<Token> identifiers) { | 511 Link<Token> handleMemberName(Link<Token> identifiers) { |
| 512 if (!isDartLibrary || identifiers.isEmpty) return identifiers; | 512 if (!enableNative || identifiers.isEmpty) return identifiers; |
| 513 return removeNativeClause(identifiers); | 513 return removeNativeClause(identifiers); |
| 514 } | 514 } |
| 515 | 515 |
| 516 AsyncMarker getAsyncMarker(StackListener listener) => listener.pop(); | 516 AsyncMarker getAsyncMarker(StackListener listener) => listener.pop(); |
| 517 | 517 |
| 518 void parseFunctionBody(StackListener listener, Token token, MemberKind kind) { | 518 void parseFunctionBody(StackListener listener, Token token, MemberKind kind) { |
| 519 try { | 519 try { |
| 520 Parser parser = new Parser(listener); | 520 Parser parser = new Parser(listener); |
| 521 token = parser.parseFormalParametersOpt(token, kind); | 521 token = parser.parseFormalParametersOpt(token, kind); |
| 522 var formals = listener.pop(); | 522 var formals = listener.pop(); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 582 return inputError(uri, token.charOffset, "Duplicated name: $name"); | 582 return inputError(uri, token.charOffset, "Duplicated name: $name"); |
| 583 } | 583 } |
| 584 return builder; | 584 return builder; |
| 585 } | 585 } |
| 586 | 586 |
| 587 @override | 587 @override |
| 588 void debugEvent(String name) { | 588 void debugEvent(String name) { |
| 589 // printEvent(name); | 589 // printEvent(name); |
| 590 } | 590 } |
| 591 } | 591 } |
| OLD | NEW |