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

Side by Side Diff: pkg/front_end/lib/src/fasta/kernel/kernel_ast_factory.dart

Issue 2841863002: Change accessors and AstFactory to use tokens rather than file offsets. (Closed)
Patch Set: Created 3 years, 8 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
OLDNEW
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, 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 import 'package:front_end/src/fasta/scanner/token.dart'
6 show Token, offsetForToken;
5 import 'package:kernel/ast.dart'; 7 import 'package:kernel/ast.dart';
6 8
7 import '../builder/ast_factory.dart'; 9 import '../builder/ast_factory.dart';
8 import 'kernel_shadow_ast.dart'; 10 import 'kernel_shadow_ast.dart';
9 11
10 /// Concrete implementation of [builder.AstFactory] for building a kernel AST. 12 /// Concrete implementation of [builder.AstFactory] for building a kernel AST.
11 class KernelAstFactory implements AstFactory { 13 class KernelAstFactory implements AstFactory {
12 @override 14 @override
13 KernelBlock block(List<Statement> statements, int charOffset) { 15 KernelBlock block(List<Statement> statements, Token beginToken) {
14 return new KernelBlock(statements)..fileOffset = charOffset; 16 return new KernelBlock(statements)..fileOffset = offsetForToken(beginToken);
15 } 17 }
16 18
17 @override 19 @override
18 Field field(Name name, int charOffset, {String fileUri}) { 20 Field field(Name name, int charOffset, {String fileUri}) {
19 return new KernelField(name, fileUri: fileUri)..fileOffset = charOffset; 21 return new KernelField(name, fileUri: fileUri)..fileOffset = charOffset;
20 } 22 }
21 23
22 @override 24 @override
23 KernelIntLiteral intLiteral(value, int charOffset) { 25 KernelIntLiteral intLiteral(value, Token token) {
24 return new KernelIntLiteral(value)..fileOffset = charOffset; 26 return new KernelIntLiteral(value)..fileOffset = offsetForToken(token);
25 } 27 }
26 28
27 @override 29 @override
28 KernelListLiteral listLiteral(List<Expression> expressions, 30 KernelListLiteral listLiteral(List<Expression> expressions,
29 DartType typeArgument, bool isConst, int charOffset) { 31 DartType typeArgument, bool isConst, Token token) {
30 return new KernelListLiteral(expressions, 32 return new KernelListLiteral(expressions,
31 typeArgument: typeArgument, isConst: isConst) 33 typeArgument: typeArgument, isConst: isConst)
32 ..fileOffset = charOffset; 34 ..fileOffset = offsetForToken(token);
33 } 35 }
34 36
35 @override 37 @override
36 KernelNullLiteral nullLiteral(int charOffset) { 38 KernelNullLiteral nullLiteral(Token token) {
37 return new KernelNullLiteral()..fileOffset = charOffset; 39 return new KernelNullLiteral()..fileOffset = offsetForToken(token);
38 } 40 }
39 41
40 @override 42 @override
41 KernelReturnStatement returnStatement(Expression expression, int charOffset) { 43 KernelReturnStatement returnStatement(Expression expression, Token token) {
42 return new KernelReturnStatement(expression)..fileOffset = charOffset; 44 return new KernelReturnStatement(expression)
45 ..fileOffset = offsetForToken(token);
43 } 46 }
44 47
45 @override 48 @override
46 StaticGet staticGet(Member readTarget, int offset) { 49 StaticGet staticGet(Member readTarget, Token token) {
47 return new KernelStaticGet(readTarget)..fileOffset = offset; 50 return new KernelStaticGet(readTarget)..fileOffset = offsetForToken(token);
48 } 51 }
49 52
50 @override 53 @override
51 KernelVariableDeclaration variableDeclaration(String name, int charOffset, 54 KernelVariableDeclaration variableDeclaration(String name, Token token,
52 {DartType type, 55 {DartType type,
53 Expression initializer, 56 Expression initializer,
54 int equalsCharOffset = TreeNode.noOffset, 57 Token equalsToken,
55 bool isFinal: false, 58 bool isFinal: false,
56 bool isConst: false}) { 59 bool isConst: false}) {
57 return new KernelVariableDeclaration(name, 60 return new KernelVariableDeclaration(name,
58 type: type, 61 type: type,
59 initializer: initializer, 62 initializer: initializer,
60 isFinal: isFinal, 63 isFinal: isFinal,
61 isConst: isConst) 64 isConst: isConst)
62 ..fileOffset = charOffset 65 ..fileOffset = offsetForToken(token)
63 ..fileEqualsOffset = equalsCharOffset; 66 ..fileEqualsOffset = offsetForToken(equalsToken);
64 } 67 }
65 } 68 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698