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

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

Issue 2965393002: Use FastaMessage instead of String. Part 1. (Closed)
Patch Set: Add type variable to Code. Created 3 years, 5 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/tool/summary/mini_ast.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/deprecated_problems.dart' 19 import 'package:front_end/src/fasta/deprecated_problems.dart'
20 show deprecated_internalProblem; 20 show deprecated_internalProblem;
21 import 'package:front_end/src/fasta/fasta_codes.dart' 21 import 'package:front_end/src/fasta/messages.dart'
22 show 22 show Code, Message, codeExpectedExpression, codeExpectedFunctionBody;
23 FastaCode,
24 FastaMessage,
25 codeExpectedExpression,
26 codeExpectedFunctionBody;
27 import 'package:front_end/src/fasta/kernel/kernel_builder.dart' 23 import 'package:front_end/src/fasta/kernel/kernel_builder.dart'
28 show Builder, KernelLibraryBuilder, ProcedureBuilder, Scope; 24 show Builder, KernelLibraryBuilder, ProcedureBuilder, Scope;
29 import 'package:front_end/src/fasta/parser/identifier_context.dart' 25 import 'package:front_end/src/fasta/parser/identifier_context.dart'
30 show IdentifierContext; 26 show IdentifierContext;
31 import 'package:front_end/src/fasta/quote.dart'; 27 import 'package:front_end/src/fasta/quote.dart';
32 import 'package:front_end/src/fasta/source/scope_listener.dart' 28 import 'package:front_end/src/fasta/source/scope_listener.dart'
33 show JumpTargetKind, NullValue, ScopeListener; 29 show JumpTargetKind, NullValue, ScopeListener;
34 import 'analyzer.dart' show toKernel; 30 import 'analyzer.dart' show toKernel;
35 import 'element_store.dart' 31 import 'element_store.dart'
36 show 32 show
(...skipping 1042 matching lines...) Expand 10 before | Expand all | Expand 10 after
1079 void handleInvalidExpression(Token token) { 1075 void handleInvalidExpression(Token token) {
1080 debugEvent("InvalidExpression"); 1076 debugEvent("InvalidExpression");
1081 } 1077 }
1082 1078
1083 @override 1079 @override
1084 void handleInvalidFunctionBody(Token token) { 1080 void handleInvalidFunctionBody(Token token) {
1085 debugEvent("InvalidFunctionBody"); 1081 debugEvent("InvalidFunctionBody");
1086 } 1082 }
1087 1083
1088 @override 1084 @override
1089 Token handleUnrecoverableError(Token token, FastaMessage message) { 1085 Token handleUnrecoverableError(Token token, Message message) {
1090 if (message.code == codeExpectedFunctionBody) { 1086 if (message.code == codeExpectedFunctionBody) {
1091 if (identical('native', token.stringValue) && parser != null) { 1087 if (identical('native', token.stringValue) && parser != null) {
1092 Token nativeKeyword = token; 1088 Token nativeKeyword = token;
1093 Token semicolon = parser.parseLiteralString(token.next); 1089 Token semicolon = parser.parseLiteralString(token.next);
1094 token = parser.expectSemicolon(semicolon); 1090 token = parser.expectSemicolon(semicolon);
1095 StringLiteral name = pop(); 1091 StringLiteral name = pop();
1096 pop(); // star 1092 pop(); // star
1097 pop(); // async 1093 pop(); // async
1098 push(ast.nativeFunctionBody(nativeKeyword, name, semicolon)); 1094 push(ast.nativeFunctionBody(nativeKeyword, name, semicolon));
1099 return token; 1095 return token;
(...skipping 808 matching lines...) Expand 10 before | Expand all | Expand 10 after
1908 Token _scanGenericMethodComment(String code, int offset) { 1904 Token _scanGenericMethodComment(String code, int offset) {
1909 var scanner = new SubStringScanner(offset, code); 1905 var scanner = new SubStringScanner(offset, code);
1910 Token firstToken = scanner.tokenize(); 1906 Token firstToken = scanner.tokenize();
1911 if (scanner.hasErrors) { 1907 if (scanner.hasErrors) {
1912 return null; 1908 return null;
1913 } 1909 }
1914 return firstToken; 1910 return firstToken;
1915 } 1911 }
1916 1912
1917 @override 1913 @override
1918 void addCompileTimeErrorFromMessage(FastaMessage message) { 1914 void addCompileTimeError(Message message, int charOffset) {
1919 FastaCode code = message.code; 1915 Code code = message.code;
1920 switch (code.analyzerCode) { 1916 switch (code.analyzerCode) {
1921 case "EXPECTED_TYPE_NAME": 1917 case "EXPECTED_TYPE_NAME":
1922 errorReporter?.reportErrorForOffset( 1918 errorReporter?.reportErrorForOffset(
1923 ParserErrorCode.EXPECTED_TYPE_NAME, message.charOffset, 1); 1919 ParserErrorCode.EXPECTED_TYPE_NAME, charOffset, 1);
1924 return; 1920 return;
1925 default: 1921 default:
1926 // fall through 1922 // fall through
1927 } 1923 }
1928 library.deprecated_addCompileTimeError(message.charOffset, message.message, 1924 library.deprecated_addCompileTimeError(charOffset, message.message,
1929 fileUri: message.uri); 1925 fileUri: uri);
1930 } 1926 }
1931 } 1927 }
1932 1928
1933 /// Data structure placed on the stack to represent a class body. 1929 /// Data structure placed on the stack to represent a class body.
1934 /// 1930 ///
1935 /// This is needed because analyzer has no separate AST representation of a 1931 /// This is needed because analyzer has no separate AST representation of a
1936 /// class body; it simply stores all of the relevant data in the 1932 /// class body; it simply stores all of the relevant data in the
1937 /// [ClassDeclaration] object. 1933 /// [ClassDeclaration] object.
1938 class _ClassBody { 1934 class _ClassBody {
1939 final Token beginToken; 1935 final Token beginToken;
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
2028 } else if (identical('var', s)) { 2024 } else if (identical('var', s)) {
2029 finalConstOrVarKeyword = token; 2025 finalConstOrVarKeyword = token;
2030 } else if (identical('covariant', s)) { 2026 } else if (identical('covariant', s)) {
2031 covariantKeyword = token; 2027 covariantKeyword = token;
2032 } else { 2028 } else {
2033 deprecated_internalProblem('Unhandled modifier: $s'); 2029 deprecated_internalProblem('Unhandled modifier: $s');
2034 } 2030 }
2035 } 2031 }
2036 } 2032 }
2037 } 2033 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analyzer/tool/summary/mini_ast.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698