Java ANTLR在输入时将字符串作为不可行的替代处理
到目前为止,我完全是一个ANTLR的初学者,但我甚至不能让一个非常基本的Hello World程序正常运行。首先,以下是相关代码(我认为): Test.g4 test1.t(我的测试程序) 当我编译并执行RunTest.java文件时,这是控制台中的输出:Java ANTLR在输入时将字符串作为不可行的替代处理,java,antlr,antlr4,Java,Antlr,Antlr4,到目前为止,我完全是一个ANTLR的初学者,但我甚至不能让一个非常基本的Hello World程序正常运行。首先,以下是相关代码(我认为): Test.g4 test1.t(我的测试程序) 当我编译并执行RunTest.java文件时,这是控制台中的输出: line 1:0 no viable alternative at input 'skriv' Process finished with exit code 0 不确定这里出了什么问题。我尝试过不同的输入,如数字、引号、等号等,但都给了
line 1:0 no viable alternative at input 'skriv'
Process finished with exit code 0
不确定这里出了什么问题。我尝试过不同的输入,如数字、引号、等号等,但都给了我相同的错误。当您将
'skriv'
定义为上面的显式lexer规则STR
时,问题是否仍然存在?像SKRIV_LITERAL:'SKRIV';STR:…
然后在ruleskriv
中使用该lexer规则,而不是间接标记定义'skriv'
它对我有效(ANTLR 4.6)。“test1.t(我的测试程序)”:你是指测试数据吗?尝试grun Test kod-tokens test1.t
和grun Test kod-gui test1.t
其中grun
是别名grun='java org.antlr.v4.gui.TestRig'
。
skriv helloworld;
line 1:0 no viable alternative at input 'skriv'
Process finished with exit code 0