希望这只是帮助我解决这个问题的适量信息。
给定以下 ANTLR3 语法
grammar mygrammar;
program : statement* | function*;
function : ID '(' args ')' '->' statement+ (','statement+) '.' ;
args : arg (',' arg)*;
arg : ID ('->' expression)?;
statement : assignment
| number
| string
;
assignment : ID '->' expression;
string : UNICODE_STRING;
number : HEX_NUMBER | INTEGER ( '.' INTEGER )?;
// ================================================================
HEX_NUMBER : '0x' HEX_DIGIT+;
INTEGER : DIGIT+;
fragment
DIGIT : ('0'..'9');
这是导致解析器出现问题的行。
my_function(x, y, z -> 42) -> 10001.
ANTLRWorks 将 10001 之后的最后一个 .
以红色突出显示为以下错误的问题。
我怎样才能让这个停止投掷org.antlr.runtime.EarlyExitException
?
我确信这是因为我的number
解析器规则和尝试使用.
EOL 分隔符之间存在一些歧义。