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 '../../scanner/token.dart' show Token; | 9 import '../../scanner/token.dart' show Token; |
10 | 10 |
(...skipping 13 matching lines...) Expand all Loading... |
24 | 24 |
25 import '../modifier.dart' show abstractMask, externalMask, Modifier; | 25 import '../modifier.dart' show abstractMask, externalMask, Modifier; |
26 | 26 |
27 import '../operator.dart' | 27 import '../operator.dart' |
28 show | 28 show |
29 Operator, | 29 Operator, |
30 operatorFromString, | 30 operatorFromString, |
31 operatorToString, | 31 operatorToString, |
32 operatorRequiredArgumentCount; | 32 operatorRequiredArgumentCount; |
33 | 33 |
34 import '../parser/identifier_context.dart' show IdentifierContext; | |
35 | |
36 import '../parser/native_support.dart' | 34 import '../parser/native_support.dart' |
37 show extractNativeMethodName, removeNativeClause, skipNativeClause; | 35 show extractNativeMethodName, removeNativeClause, skipNativeClause; |
38 | 36 |
39 import '../parser/parser.dart' show FormalParameterType, MemberKind, optional; | 37 import '../parser.dart' |
| 38 show FormalParameterKind, IdentifierContext, MemberKind, optional; |
40 | 39 |
41 import '../problems.dart' show unhandled, unimplemented; | 40 import '../problems.dart' show unhandled, unimplemented; |
42 | 41 |
43 import '../quote.dart' show unescapeString; | 42 import '../quote.dart' show unescapeString; |
44 | 43 |
45 import '../util/link.dart' show Link; | 44 import '../util/link.dart' show Link; |
46 | 45 |
47 import 'source_library_builder.dart' show SourceLibraryBuilder; | 46 import 'source_library_builder.dart' show SourceLibraryBuilder; |
48 | 47 |
49 import 'unhandled_listener.dart' show NullValue, Unhandled, UnhandledListener; | 48 import 'unhandled_listener.dart' show NullValue, Unhandled, UnhandledListener; |
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
488 } | 487 } |
489 | 488 |
490 @override | 489 @override |
491 void handleVoidKeyword(Token token) { | 490 void handleVoidKeyword(Token token) { |
492 debugEvent("VoidKeyword"); | 491 debugEvent("VoidKeyword"); |
493 push(library.addVoidType(token.charOffset)); | 492 push(library.addVoidType(token.charOffset)); |
494 } | 493 } |
495 | 494 |
496 @override | 495 @override |
497 void endFormalParameter(Token thisKeyword, Token nameToken, | 496 void endFormalParameter(Token thisKeyword, Token nameToken, |
498 FormalParameterType kind, MemberKind memberKind) { | 497 FormalParameterKind kind, MemberKind memberKind) { |
499 debugEvent("FormalParameter"); | 498 debugEvent("FormalParameter"); |
500 int charOffset = pop(); | 499 int charOffset = pop(); |
501 String name = pop(); | 500 String name = pop(); |
502 TypeBuilder type = pop(); | 501 TypeBuilder type = pop(); |
503 int modifiers = Modifier.validate(pop()); | 502 int modifiers = Modifier.validate(pop()); |
504 List<MetadataBuilder> metadata = pop(); | 503 List<MetadataBuilder> metadata = pop(); |
505 push(library.addFormalParameter( | 504 push(library.addFormalParameter( |
506 metadata, modifiers, type, name, thisKeyword != null, charOffset)); | 505 metadata, modifiers, type, name, thisKeyword != null, charOffset)); |
507 } | 506 } |
508 | 507 |
509 @override | 508 @override |
510 void handleValuedFormalParameter(Token equals, Token token) { | 509 void handleValuedFormalParameter(Token equals, Token token) { |
511 debugEvent("ValuedFormalParameter"); | 510 debugEvent("ValuedFormalParameter"); |
512 // Ignored for now. | 511 // Ignored for now. |
513 } | 512 } |
514 | 513 |
515 @override | 514 @override |
516 void handleFormalParameterWithoutValue(Token token) { | 515 void handleFormalParameterWithoutValue(Token token) { |
517 debugEvent("FormalParameterWithoutValue"); | 516 debugEvent("FormalParameterWithoutValue"); |
518 // Ignored for now. | 517 // Ignored for now. |
519 } | 518 } |
520 | 519 |
521 @override | 520 @override |
522 void endOptionalFormalParameters( | 521 void endOptionalFormalParameters( |
523 int count, Token beginToken, Token endToken) { | 522 int count, Token beginToken, Token endToken) { |
524 debugEvent("OptionalFormalParameters"); | 523 debugEvent("OptionalFormalParameters"); |
525 FormalParameterType kind = optional("{", beginToken) | 524 FormalParameterKind kind = optional("{", beginToken) |
526 ? FormalParameterType.NAMED | 525 ? FormalParameterKind.optionalNamed |
527 : FormalParameterType.POSITIONAL; | 526 : FormalParameterKind.optionalPositional; |
528 // When recovering from an empty list of optional arguments, count may be | 527 // When recovering from an empty list of optional arguments, count may be |
529 // 0. It might be simpler if the parser didn't call this method in that | 528 // 0. It might be simpler if the parser didn't call this method in that |
530 // case, however, then [beginOptionalFormalParameters] wouldn't always be | 529 // case, however, then [beginOptionalFormalParameters] wouldn't always be |
531 // matched by this method. | 530 // matched by this method. |
532 List parameters = popList(count) ?? []; | 531 List parameters = popList(count) ?? []; |
533 for (FormalParameterBuilder parameter in parameters) { | 532 for (FormalParameterBuilder parameter in parameters) { |
534 parameter.kind = kind; | 533 parameter.kind = kind; |
535 } | 534 } |
536 push(parameters); | 535 push(parameters); |
537 } | 536 } |
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
893 Link<Token> handleMemberName(Link<Token> identifiers) { | 892 Link<Token> handleMemberName(Link<Token> identifiers) { |
894 if (!enableNative || identifiers.isEmpty) return identifiers; | 893 if (!enableNative || identifiers.isEmpty) return identifiers; |
895 return removeNativeClause(identifiers, stringExpectedAfterNative); | 894 return removeNativeClause(identifiers, stringExpectedAfterNative); |
896 } | 895 } |
897 | 896 |
898 @override | 897 @override |
899 void debugEvent(String name) { | 898 void debugEvent(String name) { |
900 // printEvent(name); | 899 // printEvent(name); |
901 } | 900 } |
902 } | 901 } |
OLD | NEW |