多语言解析器生成器

时间:2012-07-23 23:22:41

标签: parsing parser-generator

是否有一个解析器生成器可以使用单个语法并在c#和javascript中创建解析器?

我已经尝试过使用ANTLR,但我还没有将它用于Visual Studio(缺乏/过时的文档和软件包)。

最终目标是我可以管理单个语法(对于SQL的子集;特别是select语句和一些特定于我的问题域的新关键字)但是生成两个解析器(c#/ javascript)。

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:0)

  

是否有一个解析器生成器可以使用单个语法并在c#和javascript中创建解析器?

我唯一知道的是ANTLR。请注意,ANTLR不会同时生成基于JavaScript和C#的解析器。您将不得不更改(至少)语法中的一个选项并调用org.antlr.Tool来为您的其他目标语言生成解析器。

  

我尝试过使用ANTLR,但我还没有进入Visual Studio

然后不要使用Visual Studio,而是使用您喜欢的文本编辑器(并使用控制台中的org.antlr.Tool)或ANTLRWorks。

答案 1 :(得分:0)

canopy,它针对PEG中的javascript,ruby,java和python

答案 2 :(得分:0)

我的AGL解析器构建器是用Kotlin common编写的,因此可以在任何Kotlin目标(JVM,JavaScript,本机代码等)上使用。

https://medium.com/@dr.david.h.akehurst/a-kotlin-multi-platform-parser-usable-from-a-jvm-or-javascript-59e870832a79

不幸的是,Kotlin尚未针对.net...。但也许将来会出现。

答案 3 :(得分:0)

docopt 允许您在遵守一些常见约定的字符串中描述您的帮助消息,这就是所有命令、选项和参数的定义方式。

Docopt 有很多官方实现:python、bash、C#、rust、ruby、C++、Go、R、Julia、Nim、Hashkell、PHP、C、F#、CoffeeScript、Swift、Scala、D、Java、Clojure、Tcl , 路亚