| 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; |
| (...skipping 17 matching lines...) Expand all Loading... |
| 28 import 'package:front_end/src/fasta/source/scope_listener.dart' | 28 import 'package:front_end/src/fasta/source/scope_listener.dart' |
| 29 show JumpTargetKind, NullValue, ScopeListener; | 29 show JumpTargetKind, NullValue, ScopeListener; |
| 30 import 'analyzer.dart' show toKernel; | 30 import 'analyzer.dart' show toKernel; |
| 31 import 'element_store.dart' | 31 import 'element_store.dart' |
| 32 show | 32 show |
| 33 AnalyzerLocalVariableElemment, | 33 AnalyzerLocalVariableElemment, |
| 34 AnalyzerParameterElement, | 34 AnalyzerParameterElement, |
| 35 ElementStore, | 35 ElementStore, |
| 36 KernelClassElement; | 36 KernelClassElement; |
| 37 import 'package:analyzer/src/dart/error/syntactic_errors.dart'; | 37 import 'package:analyzer/src/dart/error/syntactic_errors.dart'; |
| 38 import 'package:kernel/ast.dart' show FunctionNode; |
| 38 import 'token_utils.dart' show toAnalyzerToken, toAnalyzerCommentToken; | 39 import 'token_utils.dart' show toAnalyzerToken, toAnalyzerCommentToken; |
| 39 | 40 |
| 40 class AstBuilder extends ScopeListener { | 41 class AstBuilder extends ScopeListener { |
| 41 final AstFactory ast = standard.astFactory; | 42 final AstFactory ast = standard.astFactory; |
| 42 | 43 |
| 43 final ErrorReporter errorReporter; | 44 final ErrorReporter errorReporter; |
| 44 final KernelLibraryBuilder library; | 45 final KernelLibraryBuilder library; |
| 45 final Builder member; | 46 final Builder member; |
| 46 final ElementStore elementStore; | 47 final ElementStore elementStore; |
| 47 | 48 |
| (...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 285 if (beginToken != null) { | 286 if (beginToken != null) { |
| 286 exitLocalScope(); | 287 exitLocalScope(); |
| 287 } | 288 } |
| 288 Block block = ast.block( | 289 Block block = ast.block( |
| 289 toAnalyzerToken(beginToken), statements, toAnalyzerToken(endToken)); | 290 toAnalyzerToken(beginToken), statements, toAnalyzerToken(endToken)); |
| 290 analyzer.Token star = pop(); | 291 analyzer.Token star = pop(); |
| 291 analyzer.Token asyncKeyword = pop(); | 292 analyzer.Token asyncKeyword = pop(); |
| 292 push(ast.blockFunctionBody(asyncKeyword, star, block)); | 293 push(ast.blockFunctionBody(asyncKeyword, star, block)); |
| 293 } | 294 } |
| 294 | 295 |
| 295 void finishFunction(formals, asyncModifier, FunctionBody body) { | 296 void finishFunction( |
| 297 FunctionNode function, formals, asyncModifier, FunctionBody body) { |
| 296 debugEvent("finishFunction"); | 298 debugEvent("finishFunction"); |
| 297 Statement bodyStatement; | 299 Statement bodyStatement; |
| 298 if (body is EmptyFunctionBody) { | 300 if (body is EmptyFunctionBody) { |
| 299 bodyStatement = ast.emptyStatement(body.semicolon); | 301 bodyStatement = ast.emptyStatement(body.semicolon); |
| 300 } else if (body is ExpressionFunctionBody) { | 302 } else if (body is ExpressionFunctionBody) { |
| 301 bodyStatement = ast.returnStatement(null, body.expression, null); | 303 bodyStatement = ast.returnStatement(null, body.expression, null); |
| 302 } else { | 304 } else { |
| 303 bodyStatement = (body as BlockFunctionBody).block; | 305 bodyStatement = (body as BlockFunctionBody).block; |
| 304 } | 306 } |
| 305 var kernel = toKernel(bodyStatement, elementStore, library.library, scope); | 307 var kernel = toKernel(bodyStatement, elementStore, library.library, scope); |
| (...skipping 1794 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2100 } else if (identical('var', s)) { | 2102 } else if (identical('var', s)) { |
| 2101 finalConstOrVarKeyword = token; | 2103 finalConstOrVarKeyword = token; |
| 2102 } else if (identical('covariant', s)) { | 2104 } else if (identical('covariant', s)) { |
| 2103 covariantKeyword = token; | 2105 covariantKeyword = token; |
| 2104 } else { | 2106 } else { |
| 2105 internalError('Unhandled modifier: $s'); | 2107 internalError('Unhandled modifier: $s'); |
| 2106 } | 2108 } |
| 2107 } | 2109 } |
| 2108 } | 2110 } |
| 2109 } | 2111 } |
| OLD | NEW |