Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Antlr 不匹配双令牌_Antlr - Fatal编程技术网

Antlr 不匹配双令牌

Antlr 不匹配双令牌,antlr,Antlr,在ANTLR中,我有一个不匹配的TokenException,定义如下: type : IDENTIFIER ('<' (type (',' type)*) '>')?; 其中明确指示ANTLR单独处理每个标记 我怎样才能解决这个问题呢?我无法重现这个问题。由以下程序生成的解析器: grammar T; type : IDENTIFIER ('<' (type (',' type)*) '>')?; IDENTIFIER : 'A'..'Z'; 语法T;

在ANTLR中,我有一个
不匹配的TokenException
,定义如下:

type : IDENTIFIER ('<' (type (',' type)*) '>')?;
其中明确指示ANTLR单独处理每个标记


我怎样才能解决这个问题呢?

我无法重现这个问题。由以下程序生成的解析器:

grammar T;

type       : IDENTIFIER ('<' (type (',' type)*) '>')?;
IDENTIFIER : 'A'..'Z';
语法T;
类型:标识符('')?;
标识符:'A'..'Z';
将输入
A
(不带空格)解析到以下解析树中:

您需要提供导致此输入产生
不匹配的TokenException
的语法

也许您正在使用AntlWorks的解释器(或者Eclipse的ANTLR-IDE,它使用相同的解释器)?在这种情况下,那可能就是问题所在:它是出了名的小车。不要使用它,而是使用AntlWorks的调试器:它很棒(上面发布的图像来自调试器)

拉兹洛·博宁写道:


明白了。我有个主意,明白了。我定义了一个
>
令牌。很快,有没有办法让代币识别优先于其他识别?
A<B,C<D> >
grammar T;

type       : IDENTIFIER ('<' (type (',' type)*) '>')?;
IDENTIFIER : 'A'..'Z';