在yacc中,如何将定义放入变量?

时间:2009-12-03 09:21:36

标签: parsing yacc

在我的yacc文件中,我有以下代码:

fun_declaration : type_specifier ID '(' params ')' 
                  {$2->type = "function";
                   $2->args = params; }

params : param_list | VOID ;

你看到我想要做什么吗?

args是一个字符串。我正在尝试将函数参数放入此字符串中。怎么做?

2 个答案:

答案 0 :(得分:1)

你需要让'params'在$$中返回你想要的字符串,就像ID返回指向某个带'type'和'args'字段的结构的指针一样。这意味着你需要一个%类型声明来说明要使用%union的哪个元素。

有很多关于如何使用yacc的书籍和在线教程。

答案 1 :(得分:0)

只需引用$n,就像引用规则中的任何语义值组件一样。像这样:

 $2->args = strdup($4);