我想将对象添加到表示 Yacc/Bison 中的参数列表的向量中。我有以下语法规则:
argument_list: expression
{
//push back object representing expression onto arglist vector
}
|
expression ',' argument_list
{
//same here
};
我不知道该怎么做,因为你不能在类型声明中将 argument_list 声明为向量。我想通过这样的规则将此向量传递给一个方法,该方法创建一个表示方法的 AST 节点:
arg_method_invocation: IDENT PERIOD IDENT LPAR argument_list RPAR
{
$$=new MethodCallStatement(yylineno,new MethodCallExpression(yylineno,$1,$3, $5 ));
if ($$==NULL)
fatal("method stmt: ", "error method stmt call");
}
这甚至可能吗?我是编译器设计的新手,这种方法可能不可行。欢迎任何建议。