1
文がEOLで区切られた言語を解析したい。 複数のEOLを1つとして扱うANTLR?
EOL : ('\r'? '\n')+ ; // any number of consecutive linefeeds counts as a single EOL
、次いでパーサ文法でこれを使用する:私は(ドキュメントの例からコピーされた)字句解析文法でこれを試みた
stmt_sequence : (stmt EOL)* ;
パーサーは、1つまたはによって分離されたステートメントでコードを拒否しましたより多くの空白行。
しかし、これは成功した:私はANTLRの初心者だ
EOL : '\r'? '\n' ;
stmt_sequence : (stmt EOL+)* ;
。両方がうまくいくように思える。私が理解していない欲張り/非ドキドキのレクサースキャンに関する何かがありますか?
私はこれを3.2と3.4の両方で試しました。 EclipseのANTLR IDEを実行していますインディゴOS X 10.6
ありがとうございました。