用于JavaScript的Yacc/Jay语法文件?

用于JavaScript的Yacc/Jay语法文件?,javascript,.net,parsing,compiler-construction,yacc,Javascript,.net,Parsing,Compiler Construction,Yacc,可能重复: 我正在尝试为JavaScript查找语法文件(最好是为Jay,但因为是Yacc克隆,所以我应该可以,因为我需要在.NET上实现它)。为什么不尝试一下antlr?看起来它有一个针对ecmascript的语法: Antlr显然也有一个C#运行时,尽管我只从Java使用过它。我认为您必须自己构建它,但在这一过程中有一些提示 完整的JavaScript语法应该在某处可用;快速的搜索给我看了一张照片。(上还有一个用于JavaScript的BNF模式。) 因为您只询问解析器,所以我假设您已经

可能重复:


我正在尝试为JavaScript查找语法文件(最好是为Jay,但因为是Yacc克隆,所以我应该可以,因为我需要在.NET上实现它)。

为什么不尝试一下antlr?看起来它有一个针对ecmascript的语法:


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

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

完整的JavaScript语法应该在某处可用;快速的搜索给我看了一张照片。(上还有一个用于JavaScript的BNF模式。)

因为您只询问解析器,所以我假设您已经有了一个lexer


将该语法转换为Yacc文件看起来并没有那么糟糕。例如,有一个问题。

您真的需要从头开始实现它吗?一些图书馆希望能做同样的工作,更快更安全。Jint是.NET中的一个javascript解释器,得到了我自己的认可。

我用COCO/R for C编写了我的解析器,因为它不需要配置就可以工作。但是,它在源代码级别与Yacc、Flex、Bison等不兼容。但是,它的语法更简单。此外,COCO/R支持一些不同于C#的.NET语言。 ANTLR适用于C#有更多的功能,但在文档阅读和工具设置方面需要更多的时间。

您真的这样做了吗?构建一个有效的解析器比寻找一种真正的语言要困难得多。人们似乎认为很容易拼凑出一个语法,然后就走了。祝你好运。(是的,我已经为几种完整的语言完成了这项工作)。