Antlr 关于这个词的混淆是

Antlr 关于这个词的混淆是,antlr,antlr3,Antlr,Antlr3,我想问“是”这个词是不是一个保留字。这就是我为什么这么问。我试图为其创建解析器的语言是优先级语言。我有一个任务,看起来像这样: %VARIABLE IS STRING 使用Antlr解释器,我输入上面的语句,得到一个错误,指出 “失配异常” 如果我键入: %VARIABLE AND STRING 一切正常 我花了一些时间四处寻找解决方案,但到目前为止什么都没有 这是我语法的一部分: assignis : '%' IDENT logical_operator types ;

我想问“是”这个词是不是一个保留字。这就是我为什么这么问。我试图为其创建解析器的语言是优先级语言。我有一个任务,看起来像这样:

%VARIABLE    IS STRING 
使用Antlr解释器,我输入上面的语句,得到一个错误,指出 “失配异常”

如果我键入:

%VARIABLE    AND STRING
一切正常

我花了一些时间四处寻找解决方案,但到目前为止什么都没有

这是我语法的一部分:

assignis :  '%' IDENT logical_operator types ;

types    : ('FIXED' | 'STRING' | 'FLOAT');

logical_operator : 'IS' | 'AND';

IDENT    : ('a'..'z' | 'A'..'Z' | '0'..'9' | DOT)+;

否,
“是”
不是保留字。问题在于你的语法,而不是你贴的那部分。你可以发布你的整个语法,或者至少是产生错误/异常的大部分语法吗?即使
(或者
)是一个保留字,这里也不会有问题,因为它在语法中以引用文字的形式出现
class
在Java中是一个保留字,但是
“class”
是一个完全可以接受的字符串文字。我回到过去,一次删除一条规则,发现:IS:'IS'和ISPRESENT:'IS PRESENT'-冲突。所以我把它改写成了ISPRESENT:是“现在”吗?我们又开始做生意了。@Steve,很高兴听到你解决了这个问题。在这种情况下,请随意删除该问题。