|
1 | 1 | #!/usr/bin/env python |
2 | 2 | # -*- coding: utf-8 -*- |
| 3 | +""" java2python.compiler package marker. """ |
| 4 | +## |
| 5 | +# This module provides a simpler facade over the rest of the compiler |
| 6 | +# subpackage. Client code should use the values in this module |
| 7 | +# instead of using directly referencing items within the subpackage. |
3 | 8 |
|
4 | 9 | from java2python.compiler.block import Module |
5 | | -from java2python.lang import ( |
6 | | - Lexer, Parser, StringStream, TokenStream, TreeAdaptor, walkTreeSelector, |
7 | | - ) |
8 | | - |
9 | | - |
10 | | -def buildAST(source, config=None): |
11 | | - lexer = Lexer(StringStream(source)) |
12 | | - parser = Parser(TokenStream(lexer)) |
13 | | - adapter = TreeAdaptor(lexer, parser) |
14 | | - parser.setTreeAdaptor(adapter) |
15 | | - scope = parser.javaSource() |
16 | | - return scope.tree |
17 | | - |
18 | | - |
19 | | -def transformAST(tree, config): |
20 | | - for selector, call in config.last('astTransforms', ()): |
21 | | - for node in walkTreeSelector(tree, selector): |
22 | | - call(node, config) |
23 | | - |
24 | | - |
25 | | -def buildJavaDocAST(source): |
26 | | - from java2python.lang.JavaDocLexer import JavaDocLexer |
27 | | - from java2python.lang.JavaDocParser import JavaDocParser |
28 | | - lexer = JavaDocLexer(StringStream(source)) |
29 | | - parser = JavaDocParser(TokenStream(lexer)) |
30 | | - scope = parser.commentBody() |
31 | | - return scope.tree |
32 | | - |
33 | | - |
34 | | -def walkJavaDoc(tree, callback=lambda x:None): |
35 | | - pass |
36 | | - |
37 | | - |
38 | | -if __name__ == '__main__': |
39 | | - import sys |
40 | | - tree = buildAST(open(sys.argv[1]).read()) |
41 | | - for idx, tok in enumerate(tree.parser.input.tokens): |
42 | | - print '{0} {1}'.format(idx, tok) |
43 | | - print |
44 | | - tree.dump(sys.stdout) |
| 10 | +from java2python.compiler.tool import buildAST, transformAST |
0 commit comments