2

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

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

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

任何帮助深表感谢。

4

4 回答 4

1

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

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

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

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

于 2012-07-24T08:42:27.033 回答
1

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

于 2018-12-17T19:26:20.820 回答
0

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

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

于 2021-06-09T09:03:21.197 回答
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 为目标......但也许它会在未来出现。

于 2020-04-09T13:35:13.890 回答