根据这条规则:
defServ: 'service' path bodyServ? SEP ->Serv(....);
path: t+=ID ('/' t+=ID)* ->path(...);
我问,因为你可以将令牌列表“t”传递给模板“Serv”?
最简单的解决方案是将pathServ的生成放在defServ中,即:
defServ: 'service' t+=ID ('/' t+=ID)* bodyServ? SEP ->Serv(a={$t}, ...);
更好的解决方案?
谢谢你
答案 0 :(得分:1)
Tanuzzo88写道:
我问,因为你可以将令牌列表“t”传递给模板“Serv”吗?
当然,试试这个:
defServ
: 'service' path bodyServ? SEP -> Serv(a={$path.ids})
;
path returns [List ids]
: t+=ID ('/' t+=ID)* {$ids = $t;}
;