2015-02-23 84 views
0

我正在解析SQL語言,並且在解析註釋時遇到問題。 這個想法是忽略它們。ANTLR 4如何解析註釋

我有這些規則:

NEWLINE: '\r'? '\n' -> skip 
WS : [ \t]+ -> skip 

我怎麼能忽略:

  • 一切,這是與 ' - ' 或 '#' 和下一個 '\ n'
  • 一切之間'/ '和' /'(斜槓+星號直到asterix +斜槓 - 星號以某種方式消失了)。

我想是這樣的WS和NEWLINW前:

COMMENT1 : ('--'|'#') ~'\n'* -> skip; 

沒有工作 - 我:

line 1:115 missing ';' at '<EOF>' 

可能的東西,因爲它沒有與我去主要規則: 解析:(statments(';')+)* EOF;

任何人都可以幫助我嗎?

問候idob

回答

1

有疑問時,看到別人沒有;)

There are some ready-made grammars for different languages,更多或更少的工作。

所以我期待在Java的語法和看:

COMMENT 
: '/*' .*? '*/' -> skip 
; 
LINE_COMMENT 
: '//' ~[\r\n]* -> skip 
; 

所以你總的想法似乎是正確的。我猜測問題在別的地方。你能提供你測試的樣本輸入和你的語法(相關部分)嗎?

+0

好,,,謝謝! – 2015-02-23 13:45:07