| 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 |