又一个lr(1)实现

yalr的Python项目详细描述


又一个lr实现

这是经典lr(1)解析的另一个实现 算法,以及knuth的lr(1)表生成算法。

而不是遵循yacc和require这样的工具模型 外部代码生成,此库是动态驱动的 来自python代码。

一个显而易见的问题是,“为什么?“

两个原因:

  • 首先,尝试使用表面语法来表达 python中的语法以尽可能不受影响的方式编写。

    包“ptk”采用了类似的方法。

  • 第二,提供一个看别人的游乐场 “尖端”解析算法,作为改进的基础 我自己对他们的理解。

所谓“尖端”,我主要指的是20世纪70年代末。

当前的实现很大程度上受到yacc的启发, 包括yacc的各种缺陷:

  • 有一个用于减少/减少冲突的线性化 分辨率;
  • 有一个用于标记优先权的线性化。

实际上,很容易被这两样东西咬 默认的shift/reduce分辨率被屏蔽 错误。一个更灵活的偏序当然是可行的。

学分

测试中包含的一些示例语法是派生的 从16岁起我就有了《红龙记》; 这本书确实塑造了我的生活。

我不知道以后参考号是怎么排列的 增加。

Compilers: Principles, Techniques, and Tools (1986) by Alfred V. Aho, Ravi Sethi and Jeffrey D. Ullman

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

推荐PyPI第三方库


热门话题
java Android同步不同页面上的按钮   java评测每个类收集的垃圾对象实例数   java(Spring MVC+Hibernate 4+Test 4)自动连线DAO返回NULL   java Android编辑文本和虚拟键盘   java Selenium与BrowserMobProxy   JAVAlang.NoClassDefFoundError:com/sun/jersey/spi/inject/Errors$关闭原因?   java为什么在我成功登录后仍然会出现“不正确的帐户或密码或用户类型”   安卓应用程序在重新启动java时崩溃。网UnknownHostException:无法解析主机   多线程在Java中同步共享静态对象的正确方法是什么?   未调用自定义注释的java类验证(约束类)   java如何将指定目录的存档文件放入所需位置?   java如何识别Selenium中的每个编辑文本字段,如果它们的Xpath都相同   使用gwtmockito/mockito的java简单单选按钮单元测试?