我發現自己經常執行以下操作,因為允許用逗號分隔多個條目:
( function | expression ) ( ',' ( function | expression ))*
有沒有更緊湊的方法來做到這一點?理想情況下,我只想能夠按照以下方式做一些事情:
( function | expression ) [,...]
或者:
( function | expression ',')*
順便說一句,我使用它作為驗證器:
uj5u.com熱心網友回復:
( function | expression ) ( ',' ( function | expression ))*有沒有更緊湊的方法來做到這一點?
除了引入這樣的“幫助規則”:
rule
: atom_list
;
atom_list
: atom (',' atom)*
;
atom
: function
| expression
;
答案是:不,沒有更短的方法可以寫入a (',' a)*類似(a ',')*ANTLR 的內容。
如果你重復function | expression很多次,至少要為這些選擇制定一個單獨的規則。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/364378.html
