2011-05-24 83 views
0

鑑於這種規則:問題的參數傳遞的StringTemplate的

defServ: 'service' path bodyServ? SEP ->Serv(....); 

path: t+=ID ('/' t+=ID)* ->path(...); 

我問,你可以通過令牌列表「T」的templete「SERV」?

最簡單的解決辦法是把生產pathServ的defServ,那就是:

defServ: 'service' t+=ID ('/' t+=ID)* bodyServ? SEP ->Serv(a={$t}, ...); 

一個更好的解決方案?

感謝您

回答

1

Tanuzzo88寫道:

我問,你可以通過令牌列表 「T」 的templete 「SERV」?

當然,試試這個:

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

path returns [List ids] 
    : t+=ID ('/' t+=ID)* {$ids = $t;} 
    ; 
+0

感謝您的回答,唯一缺少的 '$' 在規則路徑的作用... :-) – kafka 2011-05-25 13:11:15

+0

不'{$ ids = $ t;}'和'{ids = $ t;}'都可以工作?目前還不能測試它......雖然將其更改爲「$ ...」以確保。謝謝。 – 2011-05-25 15:00:12