fineamy 发表于 2008-07-08 21:34

bison中的变量的作用域

parameter_assign
        : IDENTIFIER '=' expression
                { PExpr*tmp = $3;
                  if (!pform_expression_is_constant(tmp)) {
                        yyerror(@3, "error: parameter value "
                                    "must be a constant expression.");
                        delete tmp;
                        tmp = 0;
                  } else {
                        pform_set_parameter(lex_strings.make($1),
                                          active_signed,
                                          active_range, tmp);
                  }
                  delete $1;
                }
        ;

1.请问红色标记的tmp变量可能是蓝色定义的吗。蓝色定义的tmp其作用域是否只是对应动作的代码范围。
2.类似active_signed和active_range,这两个确实是全局变量,也在定义节找到声明了。可是红色tmp应该是全局变量,为何看不到对应的全局声明呢?

fineamy 发表于 2008-07-08 21:35

回复 #1 fineamy 的帖子

赫赫,太粗心了。留个纪念。
页: [1]
查看完整版本: bison中的变量的作用域