我正在研究antlr4,在文档中,我读到这个解析器生成器的主要目标是:Java、C#、Python2|3、JavaScript、Go、C++、Swift。相反,以前的版本(antlr3(也包括C.
我的问题是:有没有一种方法可以在antlr4中生成C代码?谢谢
简短回答:不,没有C目标。
你忘了一个,顺便说一句:还有一个PHP目标。在撰写本文时,以下是可用的目标:
- Java
- C#
- Python 2
- Python 3
- JavaScript
- Go
- C++
- Swift
- PHP
-https://github.com/antlr/antlr4/blob/master/doc/targets.md
ANTLR4解析和代码生成是基于面向对象的特性(如继承和多态性(设计的,因此生成C目标有点困难,因为它不支持面向对象编程。
我用Kotlin公共代码编写了一个解析器生成器。本地代码是kotlin目标的一个选项,因此解析器应该可以从C代码中调用。尽管我还没有对此进行广泛的测试。
它不是ANTLR4,ANTLR生成的解析器要快得多。但是定义语法的语法与ANTLR类似,所以如果你仍然需要一些东西,可以尝试一下,并让我知道你的进展。
详细信息可在此处找到:https://medium.com/@dr.david.h.akehurst/a-kotlin-多平台-可使用-从jvm或-javascript-59e870832a79