0
Yacc/Bisonの引数リストを表すベクトルにオブジェクトを追加したいと思います。ベクトルへの引数の追加(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");
}
がこのさえ可能ですか?私はコンパイラの設計には新しく、このアプローチはできないかもしれません。どんな提案も大歓迎です。
型宣言の%unionと%type argument_listの型/共用体指示文vector myVecにベクトルを設定しようとしました。ルールでベクトルをコンパイルして使用しようとすると、「YYSTYPEにmyVecという名前のメンバがありません」というエラーが表示されます。何がありますか? –
Leif
@Leif YYSTYPEの宣言で*は何ですか? – EJP