Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(133)

Side by Side Diff: pkg/analyzer/lib/src/fasta/ast_builder.dart

Issue 2944383002: translate fasta parser error to analyzer error (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/generated/parser_fasta.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/generated/parser_fasta.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698