是否有用于在JavaScript中定义解析器的框架?

And*_*kin 5 javascript parsing

是否存在允许使用JavaScript语法定义解析语法的JavaScript框架,类似于Irony为C#执行的方式?

小智 6

我已经构建了一个名为Chevrotain的 JavaScript 解析DSL

来源: https : //github.com/SAP/chevrotain

在线游乐场: http : //sap.github.io/chevrotain/playground/

它不像 Irony那样是 Parser 组合器,但它非常相似,因为它允许您“使用 JavaScript 语法定义解析语法”, 而无需任何代码生成阶段。

使用它类似于“手工构建”一个递归体面的解析器,只是没有大部分令人头疼的问题,例如:

  • 前瞻函数创建(决定采用哪种替代方案)
  • 自动错误恢复。
  • 左递归检测
  • 歧义检测。
  • 位置信息。
  • ...

因为雪佛兰会自动处理。


Mat*_*ley 3

我不太了解 Irony 的工作原理,但 Chris Double 有一个库,可以让您在此处定义 JavaScript 语法: http: //www.bluishcoder.co.nz/2007/10/javascript-parser-combinators.html。该代码可在 GitHub 上获取

它是一个“解析器组合器”库,这意味着您将语法中每个产生式的解析器组合成一个更大的解析器来解析整个事物。每个“子语法”只是您通过调用库函数创建的一个函数。