1
我是新來ANTLR的,我已經定義使用ANTLR的3ANTLR的使用分析器內詞法
一個基本語法的語法可以在下面看到:
grammar data;
@header {
package com.data.language;
}
null : 'null';
data : null | STRING | INTEGER;
STRING : ('a'..'z'|'A'..'Z')+;
INTEGER : '0'..'9'+;
這工作完全和ANTLRWorks產生碼。但是,我想在詞法分析器中使用數據關鍵字。例如:
I : data '*' INTEGER;
的問題是,一旦這樣做,我得到以下異常:
Error 106: reference to undefined value: data
,我無法看到ANTLRWorks的圖表中的數據。我只能看到I lexer的* INTEGER。
是我想要做的,有可能嗎?這怎麼可能?
這是你已經定義的data_star_int嗎? – user1646481
@ user1646481是的,這取代了你的'I'規則(我不想稱它爲'i',以避免引入與循環變量的通用名稱相沖突的名稱)。 – dasblinkenlight