esrapy是一个完全用python编写的易于使用的解析库。

Esrap的Python项目详细描述


esrapy几乎可以解析任何上下文无关的语法,包括左递归语法 能够从文本或过程描述中编译模式(语法); 统一解析和标记化,因此标记化可以是上下文;支持 优先权(歧义解决)和属性(有限 上下文敏感);可以返回“first match”或forrest parsings(用于不明确的语法);很容易使用,结果是 可读的应用程序;只有大约600行代码(不包括 注释)–或者只有450,如果你不需要文本编译器。esrapy作为 从原始源文本到友好(!)的简单转换程序解析树。大部分 esrapy的重点是使返回的解析树非常容易遍历。

esrapy的速度不是很快,在运行时可能会占用内存 (这可能是轻描淡写)。可能对语言最有用 通用性和易用性的原型或小型交互应用程序 比速度更重要。(我可能对速度错了——我没有跑 它使用的解析方法介于图表解析和 一个packrat递归下降。

在主页上有一个非常简短但完整的例子 用运算符实现五函数(加赋值)中缀计算器 优先。这应该能让你快速了解它提供了什么以及如何 使用它(以及它是多么容易使用)。

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

推荐PyPI第三方库


热门话题
内存Java正在运行。jar heapdump错误   java如何在安卓画布中弯曲文本区域?   java如何在Gdx 安卓游戏编程中获得矩形的真实触碰位置?   找不到java Spring MVC控制器   在Java中使用双重检查锁定单例扩展类   java在高效的时间和内存中动态执行insert(索引、数据)、delete(索引)、getAt(索引)操作。   java 安卓 Toast和视图帮助   java协议缓冲区:从文件中读取所有序列化消息   java如何在Jackson中为参数化接口类型执行通用自定义反序列化程序   与简单的空检查相比,使用(平面)映射的java优势是什么?   异步方法seam中的java Get contextparam   jar使用相同的java运行时运行另一个java程序   java访问Spring批处理中的作业参数   java给定字符串为空或null   在h2数据库1.4中找不到java类“org.h2.fulltext.FullTextLucene”。*不适用于Lucene Core 4*   java Spring Boot在使用@enableSync时不响应任何请求   java错误:在bash上找不到或加载主类pj2   “返回对象”和“返回(对象)”之间的Java差异   java Android开发:如何使用onKeyUp?