2017-05-30 14 views
0

ANTLR 3をANTLR 4に変換しています。私はこのような警告があります。私は欲張りではなく、この特別なものについての他のSOの質問を見つけました。私はC#のための答えを持っているこのANTLR文法で "サポートされていないオプション" greedy "警告を削除するにはどうすればよいですか?

table_reference: // table_ref in sql_yacc.yy, we use table_ref here for a different rule. 
    table_factor (options { greedy = true; }: join)* 
; 

enter image description here

答えて

1

https://blog.lextudio.com/how-to-use-antlr-4-on-net-4361915b670f

あなたが他の言語で同じチップを適用するかもしれない、

使用*? optionsの代わりに*の代わりに{greedy = false}はなくなりました。

更新日:ANTLR 4の公式ドキュメントはhereです。

+0

この修正は、ターゲット言語に依存するのではなく、ANTLR文法構文の純粋な変更です。 –

+0

\ *ですか? ?\ *と同等か? – nicomp

+0

'?*'?これを使って達成したいことは何ですか? '*?'は貪欲でないマッチングのための新しく唯一の構文です。 –