野牛没有正确地实例化课程

时间:2016-02-23 05:01:39

标签: c++ bison flex-lexer

我有一个bison / flex C ++解析器,它有一个我作为其某些规则的返回类型编写的类(在解析器文件中定义,如%type <myClass> expr)。然后(通常)存储类实例并在以后打印出来。当类实例从一个规则传递到另一个规则时,它会丢失它的所有成员的值,就像它被实例化但未完全复制一样。我有一个=运算符和为该类定义的复制构造函数。我也试过像这样手动复制成员:

expr: //Returns myClass
    atomicexpr  { //Also returns myClass
       $$ = driver.returnClass($1)
       $$.member1 = driver.returnClass($1).member1
       $$.member2 = driver.returnClass($1).member2
    }

请注意,我使用的是变体而不是联合,如bison手册中的C ++示例所示。

我需要做些什么才能让类正确实例化?

0 个答案:

没有答案