2013-04-10 23 views
0

我想忽略行ANTLR的使用註釋字母

CHECKSUM="some string". 

我試圖

CHECK_COMMENT 
    : 'CHECKSUM=' (options {greedy=false;}: .)* {skip();} 
    ; 

但是這是行不通的,雖然這個工程的特殊字符。

CHECK_COMMENT 
    : '========' (options {greedy=false;}: .)* {skip();} 
    ; 

我怎樣才能讓這個忽略像一個單行的評論?

回答

0

試試這個:

CHECK_COMMENT 
    : 'CHECKSUM=' ~('\r' | '\n')* {skip();} 
    ; 

其中~('\r' | '\n')*比換行字符等零個或多個字符相匹配。

或者,其中包括換行符:

CHECK_COMMENT 
    : 'CHECKSUM=' ~('\r' | '\n')* LINE_BREAK {skip();} 
    ; 

fragment 
LINE_BREAK 
    : '\r'? '\n' 
    | '\r' 
    ; 
+0

這個代碼是不工作...顯示 – Anoop 2013-04-10 08:25:40

+0

@Anoop「在輸入‘校驗和’沒有可行的替代方案」,很難說沒有看到更多。請編輯您的原始問題,併發布產生此「無可行替代」錯誤的* complete *語法和輸入。 – 2013-04-10 08:43:13