用python编写的友好而强大的lr解析器

PlyPlus的Python项目详细描述


plyplus是构建在ply(http://www.dabeaz.com/ply/)之上的通用解析器,用python编写,解析方法略有不同。

大多数解析器通过为它们标识的每个规则调用一个函数来工作,该函数处理数据并返回给解析器。plyplus将整个文件解析为一个解析树,允许您使用访问者和模式匹配来搜索和处理它。

plyplus做了两个不常见的分隔:代码与语法的分隔,以及处理与解析的分隔。这种方法的结果(希望)是一个更干净的设计、更强大的语法处理和一个更易于编写和理解的解析器。

功能:

  • 自动生成ast。可在语法中自定义(自动展开和展平节点)
  • 选择器:在ast上运行强大的查询
  • 模仿正则表达式的规则运算符(支持:括号、“”、“*”、“?'和'+')
  • 附带完整的、灵活的Python语法。
  • 嵌套语法(语法中的语法)。对html/css很有用,例如)
  • 自动行计数
  • from ply:可读错误,调试模式
  • 还有更多!…

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

推荐PyPI第三方库


热门话题
无法在Java中获取内部类变量的正确值   java乐蒂动画显示为静态图像,但不播放   java删除循环链表中给定键的所有匹配项   java帮助我理解指针与值的问题   java emulator运行正常,但应用程序显示白色屏幕,错误如下   java多参数重载函数   java使用应用程序设置WebSocket路径。springboot的属性   java两个字符串:相同的哈希代码   在AndroidO设备上安装时发生安卓错误(使用signalR for java)   java SDK目录“C:\Users\User\AppData\Local\Android\SDK”不存在   如何从Java中的数组列表中打印数组的出现次数?   varargs作为java 8中函数的输入参数   java lwjgl 3 GLDRAPElement异常\访问\冲突   java如何解决cassandra中的写入超时异常?   java线程在处理JMS消息时休眠   无法删除和重命名java文件