希望這只是幫助我解決此問題的適量信息。如何在Antlr3中解析此解析模糊
鑑於以下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分隔符之間的某些含糊之處。
是否把'number'規則首先幫助? –
@從此處,不,解析器規則可以按任何順序放置:這沒有什麼區別。這是詞法規則,其順序很重要。 –
@Bart看到我的更新到我的問題,錯誤是與最後一個'.' –