4
我想做什么,我认为这是一个简单的参数传递给一个规则,ANTLR的3.3:如何CommonTree参数传递给一个ANTLR的规则
grammar rule_params;
options
{
output = AST;
}
rule_params
: outer;
outer: outer_id '[' inner[$outer_id.tree] ']';
inner[CommonTree parent] : inner_id '[' ']';
outer_id : '#'! ID;
inner_id : '$'! ID ;
ID : ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '_')* ;
所以inner[CommonTree parent]
生成以下内容:
inner4=inner((outer_id2!=null?((Object)outer_id2.tree):null));
造成此错误:
The method inner(CommonTree) in the type rule_paramsParser is not applicable for the arguments (Object)
尽我所知,这是确切的SAM Ë作为Antrl书中的实例:
classDefinition[CommonTree mod]
(Kindle的位置3993) - 对不起,我不知道页码,但它是在书的中间在第9章,节标有“创建节点与任意行动“。
感谢您的任何帮助。
中号