纯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;"