【问题标题】:Multiple language parser generator多语言解析器生成器
【发布时间】:2012-07-23 23:22:40
【问题描述】:

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

我尝试过使用 ANTLR,但我还没有将它放入 Visual Studio(乏善可陈/过时的文档和包)。

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

非常感谢任何帮助。

【问题讨论】:

    标签: parsing parser-generator


    【解决方案1】:

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

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

    我尝试过使用 ANTLR,但我还没有将它导入 Visual Studio

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

    【讨论】:

      【解决方案2】:

      canopy,它针对来自 PEG 的 javascript、ruby、java 和 python

      【讨论】:

        【解决方案3】:

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

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

        不幸的是,Kotlin 还没有以 .net 为目标......但也许它会在未来出现。

        【讨论】:

          【解决方案4】:

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-06-28
            • 1970-01-01
            • 2014-04-26
            • 1970-01-01
            • 2012-09-13
            • 1970-01-01
            相关资源
            最近更新 更多