| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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('parser_helper'); | 5 #library('parser_helper'); |
| 6 | 6 |
| 7 #import("dart:uri"); | 7 #import("dart:uri"); |
| 8 | 8 |
| 9 #import("../../../lib/compiler/implementation/elements/elements.dart"); | 9 #import("../../../lib/compiler/implementation/elements/elements.dart"); |
| 10 #import("../../../lib/compiler/implementation/tree/tree.dart"); | 10 #import("../../../lib/compiler/implementation/tree/tree.dart"); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 Node parseStatement(String text) => | 40 Node parseStatement(String text) => |
| 41 parseBodyCode(text, (parser, tokens) => parser.parseStatement(tokens)); | 41 parseBodyCode(text, (parser, tokens) => parser.parseStatement(tokens)); |
| 42 | 42 |
| 43 Node parseFunction(String text, Compiler compiler) { | 43 Node parseFunction(String text, Compiler compiler) { |
| 44 Element element = parseUnit(text, compiler, compiler.mainApp).head; | 44 Element element = parseUnit(text, compiler, compiler.mainApp).head; |
| 45 Expect.isNotNull(element); | 45 Expect.isNotNull(element); |
| 46 Expect.equals(ElementKind.FUNCTION, element.kind); | 46 Expect.equals(ElementKind.FUNCTION, element.kind); |
| 47 return element.parseNode(compiler); | 47 return element.parseNode(compiler); |
| 48 } | 48 } |
| 49 | 49 |
| 50 Node parseMember(String text) => |
| 51 parseBodyCode(text, (parser, tokens) => parser.parseMember(tokens)); |
| 52 |
| 50 class MockFile { | 53 class MockFile { |
| 51 final filename = '<string>'; | 54 final filename = '<string>'; |
| 52 final text; | 55 final text; |
| 53 MockFile(this.text); | 56 MockFile(this.text); |
| 54 } | 57 } |
| 55 | 58 |
| 56 Link<Element> parseUnit(String text, Compiler compiler, | 59 Link<Element> parseUnit(String text, Compiler compiler, |
| 57 LibraryElement library) { | 60 LibraryElement library) { |
| 58 Token tokens = scan(text); | 61 Token tokens = scan(text); |
| 59 Uri uri = new Uri(scheme: "source"); | 62 Uri uri = new Uri(scheme: "source"); |
| 60 var script = new Script(uri, new MockFile(text)); | 63 var script = new Script(uri, new MockFile(text)); |
| 61 var unit = new CompilationUnitElement(script, library); | 64 var unit = new CompilationUnitElement(script, library); |
| 62 int id = 0; | 65 int id = 0; |
| 63 ElementListener listener = new ElementListener(compiler, unit, () => id++); | 66 ElementListener listener = new ElementListener(compiler, unit, () => id++); |
| 64 PartialParser parser = new PartialParser(listener); | 67 PartialParser parser = new PartialParser(listener); |
| 65 compiler.withCurrentElement(unit, () => parser.parseUnit(tokens)); | 68 compiler.withCurrentElement(unit, () => parser.parseUnit(tokens)); |
| 66 return unit.topLevelElements; | 69 return unit.topLevelElements; |
| 67 } | 70 } |
| 68 | 71 |
| 69 // TODO(ahe): We define this method to avoid having to import | 72 // TODO(ahe): We define this method to avoid having to import |
| 70 // the scanner in the tests. We should move SourceString to another | 73 // the scanner in the tests. We should move SourceString to another |
| 71 // location instead. | 74 // location instead. |
| 72 SourceString buildSourceString(String name) { | 75 SourceString buildSourceString(String name) { |
| 73 return new SourceString(name); | 76 return new SourceString(name); |
| 74 } | 77 } |
| OLD | NEW |