又一个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中的条目   java在请求范围中存储和检索值   java Android:您能否使用AlertDialog清除数据,以便在启动电子邮件活动后数据不会损坏?   用户和角色的javajpa设计   java为什么mybatis更新和删除不起作用?   在使用swingx jxtreetable进行测试时,java Fest的速度会减慢   如何使用ApachePOI4.0XDDFChartData、XDDFBarChartData生成堆叠条形图;在使用java的excel工作表中,我不想使用jfree   oauth Java执行oAuth1。0具有给定consumerKey、ConsumerCret、accessToken、accessTokenSecret和realm的已验证请求   java TTS OuttanceProgressListener无法正常工作   java if条件在不同的环境中返回不同的值   java Spring Boot应用程序的嵌入式HTTP服务器在哪里?   基于SSL的java SOAP客户端:sun。安全供应商。certpath。SunCertPathBuilderException:找不到请求目标的有效证书路径   java StringBuilder()与StringBuilder(空)与StringBuilder(“”)