所以我有statement
的规则,这可以导致更多的陈述:
statement returns[String txt]
: '{'{
$txt="{";
}
(statement{
$txt+=$statement.txt;
})*
'}'{
$txt+="}";
}
| ... //more rules // ...
;
我正在
引用$语句含糊不清; rule statement是封闭规则并在生产中引用(假设附上规则)
但不知道如何解决它。不知怎的,我需要告诉ANTLR我需要父statement
内statement
的返回txt。请帮帮我:))
答案 0 :(得分:2)
如果您使用$statement
,则ANTLR不知道您是指自己的规则,还是statement
内的( ... )*
。
尝试这样的事情:
statement returns[String txt]
: '{'{
$txt="{";
}
(s=statement{
$txt+=$s.txt;
})*
'}'{
$txt+="}";
}
| ...
;