当我尝试生成侦听器/访问者时...对于我的语法,我得到以下错误:自4.5版起,ANTLR无法生成Javascript代码有人知道怎么修吗?我仍然可以生成C#和Java代码。
exdqitrt1#
从文档:这与创建Java词法分析器或解析器基本相同,只是需要指定语言目标,例如:
$ antlr4 -Dlanguage=JavaScript MyGrammar.g4
有关antlr 4工具选项的完整列表,请访问工具文档页面。有可能您的目标是Javascript,而不是所需的JavaScript(注意这种情况);当我执行这两个步骤时,观察一下它们的区别:
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]
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
$>antlr -Dlanguage=java Hplsql.g4 -->error(31): ANTLR cannot generate java code as of version 4.7.1
$>antlr -Dlanguage=Java Hplsql.g4 -->Success
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并遵循特定语言的链接。
fgw7neuy4#
我试图执行:antlr4 Arithmetic.g4 -Dlanguage=cSharp我收到一条信息:自4.12.0版起,ANTLR无法生成cSharp代码刚刚发现问题。Antlr语言大小写敏感这是可行的:antlr4 Arithmetic.g4 -Dlanguage=CSharp我希望这对其他人有帮助。
antlr4 Arithmetic.g4 -Dlanguage=cSharp
4条答案
按热度按时间exdqitrt1#
从文档:
这与创建Java词法分析器或解析器基本相同,只是需要指定语言目标,例如:
有关antlr 4工具选项的完整列表,请访问工具文档页面。
有可能您的目标是
Javascript
,而不是所需的JavaScript
(注意这种情况);当我执行这两个步骤时,观察一下它们的区别: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
omqzjyyz3#
你需要“JavaScript”,而不是“Javascript”。
支持的语言的确切语言值为:
Java:
JavaScript:
C#:
Python 3:
Python 2:
前往:
C++:
Swift:
PHP:
来源:https://github.com/antlr/antlr4/blob/master/doc/targets.md并遵循特定语言的链接。
fgw7neuy4#
我试图执行:
antlr4 Arithmetic.g4 -Dlanguage=cSharp
我收到一条信息:
自4.12.0版起,ANTLR无法生成cSharp代码
刚刚发现问题。Antlr语言大小写敏感
这是可行的:
antlr4 Arithmetic.g4 -Dlanguage=CSharp
我希望这对其他人有帮助。