Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 /** | 5 /** |
| 6 * Code transform for @observable. The core transformation is relatively | 6 * Code transform for @observable. The core transformation is relatively |
| 7 * straightforward, and essentially like an editor refactoring. | 7 * straightforward, and essentially like an editor refactoring. |
| 8 */ | 8 */ |
| 9 library observe.transformer; | 9 library observe.transformer; |
| 10 | 10 |
| 11 import 'dart:async'; | 11 import 'dart:async'; |
| 12 | 12 |
| 13 import 'package:analyzer/src/generated/java_core.dart' show CharSequence; | |
| 14 import 'package:analyzer/src/generated/ast.dart'; | 13 import 'package:analyzer/src/generated/ast.dart'; |
| 15 import 'package:analyzer/src/generated/error.dart'; | 14 import 'package:analyzer/src/generated/error.dart'; |
| 16 import 'package:analyzer/src/generated/parser.dart'; | 15 import 'package:analyzer/src/generated/parser.dart'; |
| 17 import 'package:analyzer/src/generated/scanner.dart'; | 16 import 'package:analyzer/src/generated/scanner.dart'; |
| 18 import 'package:barback/barback.dart'; | 17 import 'package:barback/barback.dart'; |
| 19 import 'package:source_maps/refactor.dart'; | 18 import 'package:source_maps/refactor.dart'; |
| 20 import 'package:source_maps/span.dart' show SourceFile; | 19 import 'package:source_maps/span.dart' show SourceFile; |
| 21 | 20 |
| 22 /** | 21 /** |
| 23 * A [Transformer] that replaces observables based on dirty-checking with an | 22 * A [Transformer] that replaces observables based on dirty-checking with an |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 109 span: _getSpan(sourceFile, declaration)); | 108 span: _getSpan(sourceFile, declaration)); |
| 110 } | 109 } |
| 111 } | 110 } |
| 112 } | 111 } |
| 113 return code; | 112 return code; |
| 114 } | 113 } |
| 115 | 114 |
| 116 /** Parse [code] using analyzer. */ | 115 /** Parse [code] using analyzer. */ |
| 117 CompilationUnit _parseCompilationUnit(String code) { | 116 CompilationUnit _parseCompilationUnit(String code) { |
| 118 var errorListener = new _ErrorCollector(); | 117 var errorListener = new _ErrorCollector(); |
| 119 var reader = new CharSequenceReader(new CharSequence(code)); | 118 var reader = new CharSequenceReader(code); |
|
blois
2014/02/13 01:08:41
Note that the pubspec.yaml for observe is still <0
Siggi Cherem (dart-lang)
2014/02/13 01:25:22
Good catch Pete. Yeah, this should bump up the ver
| |
| 120 var scanner = new Scanner(null, reader, errorListener); | 119 var scanner = new Scanner(null, reader, errorListener); |
| 121 var token = scanner.tokenize(); | 120 var token = scanner.tokenize(); |
| 122 var parser = new Parser(null, errorListener); | 121 var parser = new Parser(null, errorListener); |
| 123 return parser.parseCompilationUnit(token); | 122 return parser.parseCompilationUnit(token); |
| 124 } | 123 } |
| 125 | 124 |
| 126 class _ErrorCollector extends AnalysisErrorListener { | 125 class _ErrorCollector extends AnalysisErrorListener { |
| 127 final errors = <AnalysisError>[]; | 126 final errors = <AnalysisError>[]; |
| 128 onError(error) => errors.add(error); | 127 onError(error) => errors.add(error); |
| 129 } | 128 } |
| (...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 431 | 430 |
| 432 Token _findFieldSeperator(Token token) { | 431 Token _findFieldSeperator(Token token) { |
| 433 while (token != null) { | 432 while (token != null) { |
| 434 if (token.type == TokenType.COMMA || token.type == TokenType.SEMICOLON) { | 433 if (token.type == TokenType.COMMA || token.type == TokenType.SEMICOLON) { |
| 435 break; | 434 break; |
| 436 } | 435 } |
| 437 token = token.next; | 436 token = token.next; |
| 438 } | 437 } |
| 439 return token; | 438 return token; |
| 440 } | 439 } |
| OLD | NEW |