自4.5版起,ANTLR无法生成Javascript代码

8hhllhi2  于 2023-05-12  发布在  Java
关注(0)|答案(4)|浏览(145)

当我尝试生成侦听器/访问者时...对于我的语法,我得到以下错误:自4.5版起,ANTLR无法生成Javascript代码
有人知道怎么修吗?我仍然可以生成C#和Java代码。

exdqitrt

exdqitrt1#

从文档:
这与创建Java词法分析器或解析器基本相同,只是需要指定语言目标,例如:

$ antlr4 -Dlanguage=JavaScript MyGrammar.g4

有关antlr 4工具选项的完整列表,请访问工具文档页面。
有可能您的目标是Javascript,而不是所需的JavaScript(注意这种情况);当我执行这两个步骤时,观察一下它们的区别:

╭─{ yaauie@celeborn:~/Desktop/tmp-20160108 }
╰─○ antlr4 -Dlanguage=JavaScript Hello.g4
[success]

╭─{ yaauie@celeborn:~/Desktop/tmp-20160108 }
╰─○ antlr4 -Dlanguage=Javascript Hello.g4
error(31):  ANTLR cannot generate Javascript code as of version 4.5.1
[error: 1]
nc1teljy

nc1teljy2#

我正在使用ATNLR解析java中的hive查询,遇到了类似的问题。结果我错过了这个案子。而不是Java我写的是java
$>antlr -Dlanguage=java Hplsql.g4 -->error(31): ANTLR cannot generate java code as of version 4.7.1
$>antlr -Dlanguage=Java Hplsql.g4 -->Success

omqzjyyz

omqzjyyz3#

你需要“JavaScript”,而不是“Javascript”。
支持的语言的确切语言值为:

Java:

antlr4 -Dlanguage=Java MyGrammar.g4

JavaScript:

antlr4 -Dlanguage=JavaScript MyGrammar.g4

C#:

antlr4 -Dlanguage=CSharp MyGrammar.g4

Python 3:

antlr4 -Dlanguage=Python3 MyGrammar.g4

Python 2:

antlr4 -Dlanguage=Python2 MyGrammar.g4

前往:

antlr4 -Dlanguage=Go MyGrammar.g4

C++:

antlr4 -Dlanguage=Cpp MyGrammar.g4

Swift:

antlr4 -Dlanguage=Swift MyGrammar.g4

PHP:

antlr4 -Dlanguage=PHP MyGrammar.g4

来源:https://github.com/antlr/antlr4/blob/master/doc/targets.md并遵循特定语言的链接。

fgw7neuy

fgw7neuy4#

我试图执行:
antlr4 Arithmetic.g4 -Dlanguage=cSharp
我收到一条信息:
自4.12.0版起,ANTLR无法生成cSharp代码
刚刚发现问题。Antlr语言大小写敏感
这是可行的:
antlr4 Arithmetic.g4 -Dlanguage=CSharp
我希望这对其他人有帮助。

相关问题