在我的yacc文件中,我有以下代码:
fun_declaration : type_specifier ID '(' params ')'
{$2->type = "function";
$2->args = params; }
params : param_list | VOID ;
你看到我想要做什么吗?
args是一个字符串。我正在尝试将函数参数放入此字符串中。怎么做?
答案 0 :(得分:1)
你需要让'params'在$$中返回你想要的字符串,就像ID返回指向某个带'type'和'args'字段的结构的指针一样。这意味着你需要一个%类型声明来说明要使用%union的哪个元素。
有很多关于如何使用yacc的书籍和在线教程。
答案 1 :(得分:0)
只需引用$n
,就像引用规则中的任何语义值组件一样。像这样:
$2->args = strdup($4);