12

可能重复:
我在哪里可以找到 ECMAscript/Actionscript/Javascript 的 yacc gammar

我正在尝试为Yacc找到 JavaScript 的语法文件(最好是为 Jay,但由于Jay是 Yacc 的克隆,我应该没问题,因为我需要在 .NET 上实现它)。

4

4 回答 4

2

我认为您必须自己构建它,但在此过程中会有一些提示。

完整的 JavaScript 语法应该在某处可用;快速搜索向我展示了JavaScript LL(1) Grammar。(RPA 工具包中还有一个用于 JavaScript 的 BNF 模式:Parse JavaScript。)

由于您只询问解析器,我将假设您已经有一个词法分析器。

把那个语法变成一个 Yacc 文件看起来真的没有那么糟糕。例如,有一个Yacc 的 C 语法

于 2011-11-14T15:44:48.477 回答
0

你真的需要从头开始实施它吗?像Jint这样的一些库会做同样的工作,更快、更安全。Jint 是 .NET 中的 javascript 解释器 - 得到了我的认可。

于 2011-12-01T14:04:12.370 回答
0

为什么不试试 antlr - 看起来它有一个为 ecmascript 制作的语法:

http://www.antlr.org/grammar/list

Antlr 显然也有一个 C# 运行时,尽管我只在 Java 中使用过它。

于 2010-11-11T23:32:03.797 回答
0

我用 COCO/R 为 C# http://ssw.jku.at/coco/编写解析器,因为它无需配置即可工作。但是,它与 Yacc、Flex、Bison 等不兼容。但是,它的语法更简单。此外,COCO/R 支持一些不同于 C# 的 .NET 语言。ANTLR 适用于 C# 具有更多功能,但需要更多时间阅读文档和设置工具。

于 2011-12-15T13:54:48.287 回答