| 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.outline_builder; | 5 library fasta.outline_builder; |
| 6 | 6 |
| 7 import 'package:kernel/ast.dart' show ProcedureKind; | 7 import 'package:kernel/ast.dart' show ProcedureKind; |
| 8 | 8 |
| 9 import '../fasta_codes.dart' show Message, codeExpectedBlockToSkip; | |
| 10 | |
| 11 import '../parser/parser.dart' show FormalParameterType, MemberKind, optional; | |
| 12 | |
| 13 import '../parser/identifier_context.dart' show IdentifierContext; | |
| 14 | |
| 15 import '../../scanner/token.dart' show Token; | 9 import '../../scanner/token.dart' show Token; |
| 16 | 10 |
| 17 import '../util/link.dart' show Link; | 11 import '../builder/builder.dart'; |
| 18 | 12 |
| 19 import '../combinator.dart' show Combinator; | 13 import '../combinator.dart' show Combinator; |
| 20 | 14 |
| 21 import '../deprecated_problems.dart' show deprecated_internalProblem; | 15 import '../fasta_codes.dart' show Message, codeExpectedBlockToSkip; |
| 22 | |
| 23 import '../builder/builder.dart'; | |
| 24 | 16 |
| 25 import '../modifier.dart' show abstractMask, externalMask, Modifier; | 17 import '../modifier.dart' show abstractMask, externalMask, Modifier; |
| 26 | 18 |
| 27 import 'source_library_builder.dart' show SourceLibraryBuilder; | |
| 28 | |
| 29 import 'unhandled_listener.dart' show NullValue, Unhandled, UnhandledListener; | |
| 30 | |
| 31 import '../parser/native_support.dart' | |
| 32 show extractNativeMethodName, removeNativeClause, skipNativeClause; | |
| 33 | |
| 34 import '../operator.dart' | 19 import '../operator.dart' |
| 35 show | 20 show |
| 36 Operator, | 21 Operator, |
| 37 operatorFromString, | 22 operatorFromString, |
| 38 operatorToString, | 23 operatorToString, |
| 39 operatorRequiredArgumentCount; | 24 operatorRequiredArgumentCount; |
| 40 | 25 |
| 26 import '../parser/identifier_context.dart' show IdentifierContext; |
| 27 |
| 28 import '../parser/native_support.dart' |
| 29 show extractNativeMethodName, removeNativeClause, skipNativeClause; |
| 30 |
| 31 import '../parser/parser.dart' show FormalParameterType, MemberKind, optional; |
| 32 |
| 33 import '../problems.dart' show unhandled, unimplemented; |
| 34 |
| 41 import '../quote.dart' show unescapeString; | 35 import '../quote.dart' show unescapeString; |
| 42 | 36 |
| 37 import '../util/link.dart' show Link; |
| 38 |
| 39 import 'source_library_builder.dart' show SourceLibraryBuilder; |
| 40 |
| 41 import 'unhandled_listener.dart' show NullValue, Unhandled, UnhandledListener; |
| 42 |
| 43 enum MethodBody { | 43 enum MethodBody { |
| 44 Abstract, | 44 Abstract, |
| 45 Regular, | 45 Regular, |
| 46 RedirectingFactoryBody, | 46 RedirectingFactoryBody, |
| 47 } | 47 } |
| 48 | 48 |
| 49 class OutlineBuilder extends UnhandledListener { | 49 class OutlineBuilder extends UnhandledListener { |
| 50 final SourceLibraryBuilder library; | 50 final SourceLibraryBuilder library; |
| 51 | 51 |
| 52 final bool enableNative; | 52 final bool enableNative; |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 199 } | 199 } |
| 200 | 200 |
| 201 @override | 201 @override |
| 202 void endLiteralString(int interpolationCount, Token endToken) { | 202 void endLiteralString(int interpolationCount, Token endToken) { |
| 203 debugEvent("endLiteralString"); | 203 debugEvent("endLiteralString"); |
| 204 if (interpolationCount == 0) { | 204 if (interpolationCount == 0) { |
| 205 Token token = pop(); | 205 Token token = pop(); |
| 206 push(unescapeString(token.lexeme)); | 206 push(unescapeString(token.lexeme)); |
| 207 push(token.charOffset); | 207 push(token.charOffset); |
| 208 } else { | 208 } else { |
| 209 deprecated_internalProblem("String interpolation not implemented."); | 209 unimplemented("string interpolation", endToken.charOffset, uri); |
| 210 } | 210 } |
| 211 } | 211 } |
| 212 | 212 |
| 213 @override | 213 @override |
| 214 void handleStringJuxtaposition(int literalCount) { | 214 void handleStringJuxtaposition(int literalCount) { |
| 215 debugEvent("StringJuxtaposition"); | 215 debugEvent("StringJuxtaposition"); |
| 216 List<String> list = | 216 List<String> list = |
| 217 new List<String>.filled(literalCount, null, growable: false); | 217 new List<String>.filled(literalCount, null, growable: false); |
| 218 int charOffset = -1; | 218 int charOffset = -1; |
| 219 for (int i = literalCount - 1; i >= 0; i--) { | 219 for (int i = literalCount - 1; i >= 0; i--) { |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 288 List<MetadataBuilder> metadata = pop(); | 288 List<MetadataBuilder> metadata = pop(); |
| 289 library.addClass(metadata, modifiers, name, typeVariables, supertype, | 289 library.addClass(metadata, modifiers, name, typeVariables, supertype, |
| 290 interfaces, charOffset); | 290 interfaces, charOffset); |
| 291 checkEmpty(beginToken.charOffset); | 291 checkEmpty(beginToken.charOffset); |
| 292 } | 292 } |
| 293 | 293 |
| 294 ProcedureKind computeProcedureKind(Token token) { | 294 ProcedureKind computeProcedureKind(Token token) { |
| 295 if (token == null) return ProcedureKind.Method; | 295 if (token == null) return ProcedureKind.Method; |
| 296 if (optional("get", token)) return ProcedureKind.Getter; | 296 if (optional("get", token)) return ProcedureKind.Getter; |
| 297 if (optional("set", token)) return ProcedureKind.Setter; | 297 if (optional("set", token)) return ProcedureKind.Setter; |
| 298 return deprecated_internalProblem("Unhandled: ${token.lexeme}"); | 298 return unhandled( |
| 299 token.lexeme, "computeProcedureKind", token.charOffset, uri); |
| 299 } | 300 } |
| 300 | 301 |
| 301 @override | 302 @override |
| 302 void beginTopLevelMethod(Token token, Token name) { | 303 void beginTopLevelMethod(Token token, Token name) { |
| 303 library.beginNestedDeclaration(name.lexeme, hasMembers: false); | 304 library.beginNestedDeclaration(name.lexeme, hasMembers: false); |
| 304 } | 305 } |
| 305 | 306 |
| 306 @override | 307 @override |
| 307 void endTopLevelMethod(Token beginToken, Token getOrSet, Token endToken) { | 308 void endTopLevelMethod(Token beginToken, Token getOrSet, Token endToken) { |
| 308 debugEvent("endTopLevelMethod"); | 309 debugEvent("endTopLevelMethod"); |
| (...skipping 566 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 875 Link<Token> handleMemberName(Link<Token> identifiers) { | 876 Link<Token> handleMemberName(Link<Token> identifiers) { |
| 876 if (!enableNative || identifiers.isEmpty) return identifiers; | 877 if (!enableNative || identifiers.isEmpty) return identifiers; |
| 877 return removeNativeClause(identifiers, stringExpectedAfterNative); | 878 return removeNativeClause(identifiers, stringExpectedAfterNative); |
| 878 } | 879 } |
| 879 | 880 |
| 880 @override | 881 @override |
| 881 void debugEvent(String name) { | 882 void debugEvent(String name) { |
| 882 // printEvent(name); | 883 // printEvent(name); |
| 883 } | 884 } |
| 884 } | 885 } |
| OLD | NEW |