如何将结构传递给yacc文件中的函数?

如何将结构传递给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')

+0

你可以显示不工作的代码的例子吗? yacc应该只是将代码中的大括号放在大括号中。 – 2009-12-05 08:58:04

我猜你的功能应该是

fn(struct symtab* sp) 

,而不是

fn(struct symtab sp) 

和顺便说一句,因为2美元是工会我不认为

$2->args = ""; $2->value = 0; $2->arraysize = 0; 

是正确的。 而

$2->type = "variable"; 

无效。