2012-06-26 24 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);} 
    ;