1
我喜歡解析一個例子文字是這樣的 -特殊註釋無法比擬的詞法規則
@comment {
{ something }
{ something else }
}
基本上「@comment」是搜索的關鍵,在這之後是一對大括號匹配的。我不需要解析大括號之間的內容。由於這是類似於C」多行註釋,我有一個基於我的語法:
grammar tryit;
tryit : top_cmd
;
WS : ('\t' | ' ')+ {$channel = HIDDEN;};
New_Line : ('\r' | '\n')+ {$channel = HIDDEN;};
top_cmd :cmds
;
cmds
: cmd+
;
cmd
: Comment
;
Comment
: AtComment Open_Brace (options {greedy = false; }: .)+ Close_Brace
;
AtComment
: '@comment'
;
Open_Brace
: '{'
;
Close_Brace
: '}'
;
但在ANTLRWORKS測試,我立即得到一個EarlyExitException。
你看到有什麼問題嗎?