OLD | NEW |
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:kernel/ast.dart'; | 5 import 'package:kernel/ast.dart'; |
6 | 6 |
7 import '../builder/ast_factory.dart'; | 7 import '../builder/ast_factory.dart'; |
8 import 'kernel_shadow_ast.dart'; | 8 import 'kernel_shadow_ast.dart'; |
9 | 9 |
10 /// Concrete implementation of [builder.AstFactory] for building a kernel AST. | 10 /// Concrete implementation of [builder.AstFactory] for building a kernel AST. |
11 class KernelAstFactory implements AstFactory { | 11 class KernelAstFactory implements AstFactory { |
12 @override | 12 @override |
13 KernelBlock block(List<Statement> statements, int charOffset) { | 13 KernelBlock block(List<Statement> statements, int charOffset) { |
14 return new KernelBlock(statements)..fileOffset = charOffset; | 14 return new KernelBlock(statements)..fileOffset = charOffset; |
15 } | 15 } |
16 | 16 |
17 @override | 17 @override |
| 18 Field field(Name name, int charOffset, {String fileUri}) { |
| 19 return new KernelField(name, fileUri: fileUri)..fileOffset = charOffset; |
| 20 } |
| 21 |
| 22 @override |
18 KernelIntLiteral intLiteral(value, int charOffset) { | 23 KernelIntLiteral intLiteral(value, int charOffset) { |
19 return new KernelIntLiteral(value)..fileOffset = charOffset; | 24 return new KernelIntLiteral(value)..fileOffset = charOffset; |
20 } | 25 } |
21 | 26 |
22 @override | 27 @override |
23 KernelListLiteral listLiteral(List<Expression> expressions, | 28 KernelListLiteral listLiteral(List<Expression> expressions, |
24 DartType typeArgument, bool isConst, int charOffset) { | 29 DartType typeArgument, bool isConst, int charOffset) { |
25 return new KernelListLiteral(expressions, | 30 return new KernelListLiteral(expressions, |
26 typeArgument: typeArgument, isConst: isConst) | 31 typeArgument: typeArgument, isConst: isConst) |
27 ..fileOffset = charOffset; | 32 ..fileOffset = charOffset; |
28 } | 33 } |
29 | 34 |
30 @override | 35 @override |
31 KernelNullLiteral nullLiteral(int charOffset) { | 36 KernelNullLiteral nullLiteral(int charOffset) { |
32 return new KernelNullLiteral()..fileOffset = charOffset; | 37 return new KernelNullLiteral()..fileOffset = charOffset; |
33 } | 38 } |
34 | 39 |
35 @override | 40 @override |
36 KernelReturnStatement returnStatement(Expression expression, int charOffset) { | 41 KernelReturnStatement returnStatement(Expression expression, int charOffset) { |
37 return new KernelReturnStatement(expression)..fileOffset = charOffset; | 42 return new KernelReturnStatement(expression)..fileOffset = charOffset; |
38 } | 43 } |
39 | 44 |
40 @override | 45 @override |
| 46 StaticGet staticGet(Member readTarget, int offset) { |
| 47 return new KernelStaticGet(readTarget)..fileOffset = offset; |
| 48 } |
| 49 |
| 50 @override |
41 KernelVariableDeclaration variableDeclaration(String name, | 51 KernelVariableDeclaration variableDeclaration(String name, |
42 {DartType type, | 52 {DartType type, |
43 Expression initializer, | 53 Expression initializer, |
44 int charOffset = TreeNode.noOffset, | 54 int charOffset = TreeNode.noOffset, |
45 int equalsCharOffset = TreeNode.noOffset, | 55 int equalsCharOffset = TreeNode.noOffset, |
46 bool isFinal: false, | 56 bool isFinal: false, |
47 bool isConst: false}) { | 57 bool isConst: false}) { |
48 return new KernelVariableDeclaration(name, | 58 return new KernelVariableDeclaration(name, |
49 type: type, | 59 type: type, |
50 initializer: initializer, | 60 initializer: initializer, |
51 isFinal: isFinal, | 61 isFinal: isFinal, |
52 isConst: isConst) | 62 isConst: isConst) |
53 ..fileOffset = charOffset | 63 ..fileOffset = charOffset |
54 ..fileEqualsOffset = equalsCharOffset; | 64 ..fileEqualsOffset = equalsCharOffset; |
55 } | 65 } |
56 } | 66 } |
OLD | NEW |