Java ANTLR在输入时将字符串作为不可行的替代处理

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 不确定这里出了什么问题。我尝试过不同的输入,如数字、引号、等号等,但都给了

到目前为止,我完全是一个ANTLR的初学者,但我甚至不能让一个非常基本的Hello World程序正常运行。首先,以下是相关代码(我认为):

Test.g4

test1.t(我的测试程序)

当我编译并执行RunTest.java文件时,这是控制台中的输出:

line 1:0 no viable alternative at input 'skriv'

Process finished with exit code 0

不确定这里出了什么问题。我尝试过不同的输入,如数字、引号、等号等,但都给了我相同的错误。

当您将
'skriv'
定义为上面的显式lexer规则
STR
时,问题是否仍然存在?像
SKRIV_LITERAL:'SKRIV';STR:…
然后在rule
skriv
中使用该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