如何将结构传递给yacc文件中的函数?
问题描述:
我在我的yacc文件中有这个。如何将结构传递给yacc文件中的函数?
var_declaration : type_specifier ID ';' {$2->args = ""; $2->value = 0; $2->arraysize = 0; $2->type = "variable";}
上面的一切工作。
我想添加到它。
fn($2);
从函数内部,我想做这样的东西。
fn(struct symtab sp)
{
sp->value = 0;
}
但是,当我试图编译程序我得到这个错误:
error: invalid type argument of ‘->’ (have ‘struct symtab')
答
我猜你的功能应该是
fn(struct symtab* sp)
,而不是
fn(struct symtab sp)
和顺便说一句,因为2美元是工会我不认为
$2->args = ""; $2->value = 0; $2->arraysize = 0;
是正确的。 而
$2->type = "variable";
无效。
你可以显示不工作的代码的例子吗? yacc应该只是将代码中的大括号放在大括号中。 – 2009-12-05 08:58:04