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

Side by Side Diff: pkg/analyzer_experimental/example/parser_driver.dart

Issue 42863002: New analyzer_experimental snapshot. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 #!/usr/bin/env dart 1 #!/usr/bin/env dart
2 2
3 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 3 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
4 // for details. All rights reserved. Use of this source code is governed by a 4 // for details. All rights reserved. Use of this source code is governed by a
5 // BSD-style license that can be found in the LICENSE file. 5 // BSD-style license that can be found in the LICENSE file.
6 6
7 import 'dart:io';
8
9 import 'package:analyzer_experimental/src/generated/java_core.dart' show CharSeq uence;
7 import 'package:analyzer_experimental/src/generated/ast.dart'; 10 import 'package:analyzer_experimental/src/generated/ast.dart';
8 import 'package:analyzer_experimental/src/generated/error.dart'; 11 import 'package:analyzer_experimental/src/generated/error.dart';
9 import 'package:analyzer_experimental/src/generated/parser.dart'; 12 import 'package:analyzer_experimental/src/generated/parser.dart';
10 import 'package:analyzer_experimental/src/generated/scanner.dart'; 13 import 'package:analyzer_experimental/src/generated/scanner.dart';
11 14
12 import 'dart:io';
13
14 15
15 main() { 16 main() {
16 17
17 print('working dir ${new File('.').fullPathSync()}'); 18 print('working dir ${new File('.').fullPathSync()}');
18 19
19 var args = new Options().arguments; 20 var args = new Options().arguments;
20 if (args.length == 0) { 21 if (args.length == 0) {
21 print('Usage: parser_driver [files_to_parse]'); 22 print('Usage: parser_driver [files_to_parse]');
22 exit(0); 23 exit(0);
23 } 24 }
24 25
25 for (var arg in args) { 26 for (var arg in args) {
26 _parse(new File(arg)); 27 _parse(new File(arg));
27 } 28 }
28 29
29 } 30 }
30 31
31 _parse(File file) { 32 _parse(File file) {
32 var src = file.readAsStringSync(); 33 var src = file.readAsStringSync();
33 var errorListener = new _ErrorCollector(); 34 var errorListener = new _ErrorCollector();
34 var scanner = new StringScanner(null, src, errorListener); 35 var reader = new CharSequenceReader(new CharSequence(src));
36 var scanner = new Scanner(null, reader, errorListener);
35 var token = scanner.tokenize(); 37 var token = scanner.tokenize();
36 var parser = new Parser(null, errorListener); 38 var parser = new Parser(null, errorListener);
37 var unit = parser.parseCompilationUnit(token); 39 var unit = parser.parseCompilationUnit(token);
38 40
39 var visitor = new _ASTVisitor(); 41 var visitor = new _ASTVisitor();
40 unit.accept(visitor); 42 unit.accept(visitor);
41 43
42 for (var error in errorListener.errors) { 44 for (var error in errorListener.errors) {
43 print(error); 45 print(error);
44 } 46 }
45 } 47 }
46 48
47 class _ErrorCollector extends AnalysisErrorListener { 49 class _ErrorCollector extends AnalysisErrorListener {
48 List<AnalysisError> errors; 50 List<AnalysisError> errors;
49 _ErrorCollector() : errors = new List<AnalysisError>(); 51 _ErrorCollector() : errors = new List<AnalysisError>();
50 onError(error) => errors.add(error); 52 onError(error) => errors.add(error);
51 } 53 }
52 54
53 class _ASTVisitor extends GeneralizingASTVisitor { 55 class _ASTVisitor extends GeneralizingASTVisitor {
54 visitNode(ASTNode node) { 56 visitNode(ASTNode node) {
55 print('${node.runtimeType} : <"${node.toString()}">'); 57 print('${node.runtimeType} : <"${node.toString()}">');
56 return super.visitNode(node); 58 return super.visitNode(node);
57 } 59 }
58 } 60 }
59 61
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698