百科问答小站 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无用论你们可以跳过不看了。




  

相关话题

  如果世界上所有的assembler, interpreter, compiler在一瞬间全消失,世界会变成怎样? 
  识别具有相同个数的a和b的字符串的无二义性文法,该文法用正则表达式怎么写? 
  为什么C++的 extern "C" 里面可以使用C里面不存在的STL和引用&等C++才有的特性 ? 
  如何对 Expression 进行计算? 
  如何实现一个简单的虚拟机? 
  I had my hair cut .是被动语态,为什么呀,没有看到与be有关的词啊,它是什么结构? 
  这段 Java 代码中的局部变量能够被提前回收吗?编译器或 VM 能够实现如下的人工优化吗? 
  学习编译原理有什么好的书籍? 
  很厉害的程序员都读过CSAPP,SICP,操作系统,算法导论,编译原理这些书吗? 
  为什么一直没有出现一个可以把现代 CSS 编译为支持老版本浏览器 CSS 的编译工具? 

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





© 2024-11-16 - tinynew.org. All Rights Reserved.
© 2024-11-16 - tinynew.org. 保留所有权利