百科问答小站 logo
百科问答小站 font logo



Parser Combinator 在语法解析的当中处于怎样的位置? 第1页

  

user avatar   ninputer 网友的相关建议: 
      

一句话回答:

Ninputer/VBF · GitHub

一个GLR的Parser Combinator,支持错误恢复,支持歧义文法,支持左递归左公因式等一切东西,实际上它支持任何CFG。对LR(k)文法任何k均是O(N)的。

本质上这不是一个Combinator而是一个语言集成的文法编写器+运行时Generator。但是考虑到JIT都已经用了这么多年了,小小的一次性生成开销无伤大雅。各种日常生活的Parser,DSL级别的文法都可以在今天的计算机上快速处理。VBF简洁的Combinator式文法表达,宽容友好的文法支持,自然地AST生成或单次利用Parse结果,再加上对错误处理方便而专业的支持,绝对可以满足您的大多数需求,彻底摆脱antlr/yacc等额外工具。这完全是一个专业级的语法分析解决方案而非玩具。PS.其他回答中某些陈年ParserCombinator无用论你们可以跳过不看了。




  

相关话题

  为什么大多数解释器都将AST转化成字节码再用虚拟机执行,而不是直接解释AST? 
  如何想学点编译原理,又不想直接看龙虎之类的书籍,太多理论,干燥? 
  计算机语言可以以变量名作为类型判断么? 
  如何对 Expression 进行计算? 
  基于GPU的parsing是否可行? 
  为何巴西人能做出 Lua 这种出彩的东西? 
  这段 Java 代码中的局部变量能够被提前回收吗?编译器或 VM 能够实现如下的人工优化吗? 
  为什么一直没有出现一个可以把现代 CSS 编译为支持老版本浏览器 CSS 的编译工具? 
  在C源代码中, 无论出现多大的数, 都是有效的吗? 
  Parser Combinator 在语法解析的当中处于怎样的位置? 

前一个讨论
VS中的Solution是什么意思?
下一个讨论
如果支付宝彻底替代了现金,会发生什么?





© 2025-06-02 - tinynew.org. All Rights Reserved.
© 2025-06-02 - tinynew.org. 保留所有权利