2012-06-26 66 views
0

我有一個規則與定義爲動作如下:ANTLR:如何使用的String.format內行動

metric_expr 
    : metric=NAME ('AS' label=NAME)? {System.out.println(String.format("%s: %s", metric, label));} 
    ; 

我得到的錯誤說:

error(146): com\foo\bar\PRL.g:65:54: invalid StringTemplate % shorthand syntax: '%s' 

任何人都知道如何來解決辦法這個?

回答

3

用單個反斜槓將%標誌轉義出來。

如果你想顯示標記的文本,使用令牌的.text屬性:

metric_expr 
    : metric=NAME ('AS' label=NAME)? 
    {System.out.printf("\%s: \%s", $metric.text, $label.text);} 
    ;