纯python编写的轻量级解析工具包。

pynetree的Python项目详细描述


关于

pynetree是python库和 解析.< /P>

解析是传递与特定 语法,如程序源代码,转换成格式良好的数据 结构。这个数据结构就是所谓的抽象语法树 (AST)。Pynetree是一个为你做这一切的工具:它需要一个语法 描述,对提供的输入运行解析器并生成抽象 成功解析的语法树。这个ast不能用来执行 后续任务,如编写解释器、编译器或任何其他 一种需要解析器的软件。

下面使用pynetree的python示例定义了一个简单的 双函数计算器作为一种表达式语言,在其上运行一个解析器, 并转储生成的抽象语法树。

importpynetreep=pynetree.Parser("""
    %skip /\s+/;
    @int /\d+/;

    factor: int | '(' expr ')';

    @mul: term '*' factor;
    term: mul | factor;

    @add: expr '+' term;
    expr$: add | term;
""")p.parse("1 + 2 * ( 3 + 4 ) * 5").dump()

当这个程序从控制台运行时,一个适当的抽象语法树 将生成并打印,其中显示 解析的表达式。

add
 int (1)
 div
  mul
   int (2)
   add
    int (3)
    int (4)
  int (5)

pynetree还提供了一个方便的命令行工具来快速原型化 语法。下一个命令只是生成与示例相同的解析器 从上面开始编程。

$ pynetree "@int /[0-9]+/; f: int | '(' e ')'; t: @mul( t '*' f ) | f; e: @add( e '+' t ) | t;"

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Cassandra复制因子大于节点数   java J2EE JTA事务回滚不适用于OSE Glassfish 4.0(Build 89)   java spring安全预认证用户登录   org的java类文件。反应流。从RxJava编译示例时未找到Publisher?   java在使用dataFormat作为POJO通过Camel调用Web服务时无法设置SOAP标头   Javafx类的java静态实例   java如何防止一个部件在关闭时覆盖另一个部件的位置   sql server无法从我的java代码连接到数据库   java在JList(Swing)中显示带有的ArrayList   从Java中的CXF服务获取WSAddressing数据   使用资产文件夹进行java简单json解析(本地)   java LDAPException未绑定的无效凭据   JavaJSFspring部署到weblogic   JAVA中字符数组中的特定元素排列?   如果脚本位于不同的目录中,则ant不会使用exec标记运行Javashell脚本