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.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; |
11 import 'package:analyzer/dart/ast/token.dart' show Token, TokenType; | 11 import 'package:analyzer/dart/ast/token.dart' show Token, TokenType; |
12 import 'package:analyzer/dart/element/element.dart' show Element; | 12 import 'package:analyzer/dart/element/element.dart' show Element; |
13 import 'package:front_end/src/fasta/parser/parser.dart' | 13 import 'package:front_end/src/fasta/parser/parser.dart' |
14 show Assert, FormalParameterType, MemberKind, Parser; | 14 show Assert, FormalParameterType, MemberKind, Parser; |
15 import 'package:front_end/src/fasta/scanner/string_scanner.dart'; | 15 import 'package:front_end/src/fasta/scanner/string_scanner.dart'; |
16 import 'package:front_end/src/fasta/scanner/token.dart' show CommentToken; | 16 import 'package:front_end/src/fasta/scanner/token.dart' show CommentToken; |
17 import 'package:front_end/src/scanner/token.dart' as analyzer; | 17 import 'package:front_end/src/scanner/token.dart' as analyzer; |
18 | 18 |
19 import 'package:front_end/src/fasta/errors.dart' show internalError; | 19 import 'package:front_end/src/fasta/errors.dart' show internalError; |
20 import 'package:front_end/src/fasta/fasta_codes.dart' | 20 import 'package:front_end/src/fasta/fasta_codes.dart' |
21 show FastaMessage, codeExpectedExpression, codeExpectedFunctionBody; | 21 show |
| 22 FastaCode, |
| 23 FastaMessage, |
| 24 codeExpectedExpression, |
| 25 codeExpectedFunctionBody; |
22 import 'package:front_end/src/fasta/kernel/kernel_builder.dart' | 26 import 'package:front_end/src/fasta/kernel/kernel_builder.dart' |
23 show Builder, KernelLibraryBuilder, ProcedureBuilder, Scope; | 27 show Builder, KernelLibraryBuilder, ProcedureBuilder, Scope; |
24 import 'package:front_end/src/fasta/parser/identifier_context.dart' | 28 import 'package:front_end/src/fasta/parser/identifier_context.dart' |
25 show IdentifierContext; | 29 show IdentifierContext; |
26 import 'package:front_end/src/fasta/quote.dart'; | 30 import 'package:front_end/src/fasta/quote.dart'; |
27 import 'package:front_end/src/fasta/source/scope_listener.dart' | 31 import 'package:front_end/src/fasta/source/scope_listener.dart' |
28 show JumpTargetKind, NullValue, ScopeListener; | 32 show JumpTargetKind, NullValue, ScopeListener; |
29 import 'analyzer.dart' show toKernel; | 33 import 'analyzer.dart' show toKernel; |
30 import 'element_store.dart' | 34 import 'element_store.dart' |
31 show | 35 show |
(...skipping 1879 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1911 var scanner = new SubStringScanner(offset, code); | 1915 var scanner = new SubStringScanner(offset, code); |
1912 Token firstToken = scanner.tokenize(); | 1916 Token firstToken = scanner.tokenize(); |
1913 if (scanner.hasErrors) { | 1917 if (scanner.hasErrors) { |
1914 return null; | 1918 return null; |
1915 } | 1919 } |
1916 return firstToken; | 1920 return firstToken; |
1917 } | 1921 } |
1918 | 1922 |
1919 @override | 1923 @override |
1920 void addCompileTimeErrorFromMessage(FastaMessage message) { | 1924 void addCompileTimeErrorFromMessage(FastaMessage message) { |
| 1925 FastaCode code = message.code; |
| 1926 switch (code.analyzerCode) { |
| 1927 case "EXPECTED_TYPE_NAME": |
| 1928 errorReporter?.reportErrorForOffset( |
| 1929 ParserErrorCode.EXPECTED_TYPE_NAME, message.charOffset, 1); |
| 1930 return; |
| 1931 default: |
| 1932 // fall through |
| 1933 } |
1921 library.addCompileTimeError(message.charOffset, message.message, | 1934 library.addCompileTimeError(message.charOffset, message.message, |
1922 fileUri: message.uri); | 1935 fileUri: message.uri); |
1923 } | 1936 } |
1924 } | 1937 } |
1925 | 1938 |
1926 /// Data structure placed on the stack to represent a class body. | 1939 /// Data structure placed on the stack to represent a class body. |
1927 /// | 1940 /// |
1928 /// This is needed because analyzer has no separate AST representation of a | 1941 /// This is needed because analyzer has no separate AST representation of a |
1929 /// class body; it simply stores all of the relevant data in the | 1942 /// class body; it simply stores all of the relevant data in the |
1930 /// [ClassDeclaration] object. | 1943 /// [ClassDeclaration] object. |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2021 } else if (identical('var', s)) { | 2034 } else if (identical('var', s)) { |
2022 finalConstOrVarKeyword = token; | 2035 finalConstOrVarKeyword = token; |
2023 } else if (identical('covariant', s)) { | 2036 } else if (identical('covariant', s)) { |
2024 covariantKeyword = token; | 2037 covariantKeyword = token; |
2025 } else { | 2038 } else { |
2026 internalError('Unhandled modifier: $s'); | 2039 internalError('Unhandled modifier: $s'); |
2027 } | 2040 } |
2028 } | 2041 } |
2029 } | 2042 } |
2030 } | 2043 } |
OLD | NEW |