1
我想解析語句由EOL分隔的語言。我在詞法分析器語法(從一個示例中的文檔複製)嘗試這樣做:ANTLR將多個EOL作爲一個整體來對待?
EOL : ('\r'? '\n')+ ; // any number of consecutive linefeeds counts as a single EOL
然後在分析器語法中使用這樣的:
stmt_sequence : (stmt EOL)* ;
解析器拒絕代碼與由一個或分隔的語句更多的空白行。
然而,這是成功的:
EOL : '\r'? '\n' ;
stmt_sequence : (stmt EOL+)* ;
我是一個新手ANTLR。似乎兩者都應該工作。是否有關於我不明白的貪婪/非理性詞法分析掃描?
我試過3.2和3.4;我在Eclipse中運行ANTLR IDE Indigo on OS X 10.6。
謝謝。