Templates stringtemplate的参数传递问题
鉴于这一规则:Templates stringtemplate的参数传递问题,templates,antlr,antlr3,stringtemplate,Templates,Antlr,Antlr3,Stringtemplate,鉴于这一规则: 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}, ...);
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}, ...);
更好的解决方案
谢谢
塔努佐写道:
我问,你可以把令牌列表“t”传递给模板“Serv”吗
当然,试试这个:
defServ
: 'service' path bodyServ? SEP -> Serv(a={$path.ids})
;
path returns [List ids]
: t+=ID ('/' t+=ID)* {$ids = $t;}
;
感谢您的回答,在规则路径的操作中唯一缺少“$”的是…:-)
{$id=$t;}
和{id=$t;}
这两种方法都有效吗?但目前无法测试它。。。请将其更改为$…
。谢谢