我找到了一个ANTLRv4 Python3 grammer,但它生成了一个解析树,它通常有许多无用的节点。在
我正在寻找一个已知的包来从解析树中获取Python-AST。在
像这样的东西存在吗?在
编辑:关于Python ast
包的使用说明:我的项目是用Java编写的,我需要解析Python文件。在
编辑2:所说的“AST”是指http://docs.python.org/2/library/ast.html#abstract-grammar,而“parse tree”是指http://docs.python.org/2/reference/grammar.html。在
以下是一个开始:
可用于为输入
^{pr2}$"f(arg1='1')\n"
创建AST,如下所示:会打印:
我知道它仍然包含您可能不想要的节点,但是您甚至可以添加一组您想要排除的令牌类型。请随意砍掉!在
Here is a Gist包含上面代码的一个版本,带有正确的import语句和一些javadoc和内联注释。在
eclipsedltk项目Python子项目在Java中实现了custom Python AST model。它是从AntlrV3 ast构建的,但是从AntlrV4解析树重新构建应该不会太困难。在
EclipsePyDev project大概还实现了一个基于Java的AST for python源代码。注意,两个项目中的源树布局应该非常相似。在
当然,您应该在使用这些源代码之前检查许可证,只是为了确定。在
我找到了一个解决办法:
使用
Jython
和ast
(谢谢@delnan带我去那里)。或者,直接用Python代码执行所有需要的操作,然后将结果返回Java。在输出是
^{pr2}$这并没有严格回答问题,也可能不适用于所有用户,所以我不选择这个答案。在
相关问题 更多 >
编程相关推荐