0

鉴于此规则:

 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}, ...);

更好的解决方案?

谢谢

4

1 回答 1

1

Tanuzzo88 写道:

我问,你可以将令牌列表“t”传递给模板“Serv”吗?

当然,试试这个:

defServ
  :  'service' path bodyServ? SEP -> Serv(a={$path.ids})
  ;

path returns [List ids]
  :  t+=ID ('/' t+=ID)* {$ids = $t;}
  ;
于 2011-05-24T21:41:19.563 回答