Bison 连接非端子以进行背面配线
idlist在这里是idtype类型。我是Yaac的新手。我是否做了一些愚蠢的事情,因为我的代码是通过一个id循环的。当我在一个级别上使用它时Bison 连接非端子以进行背面配线,bison,Bison,idlist在这里是idtype类型。我是Yaac的新手。我是否做了一些愚蠢的事情,因为我的代码是通过一个id循环的。当我在一个级别上使用它时 因此,这里的语法在ID之后有类型。我可以使用堆栈来实现这一点,但我认为这很可爱。问题是您使用的地址是$1,这是一个仅为该规则操作而存在的本地临时地址。因此,在操作完成后,它就会消失,留下$$.ptr悬空,并指向将被重新用于其他用途的内存 idlist : idlist ',' ID { $$.str=$
因此,这里的语法在ID之后有类型。我可以使用堆栈来实现这一点,但我认为这很可爱。问题是您使用的地址是
$1
,这是一个仅为该规则操作而存在的本地临时地址。因此,在操作完成后,它就会消失,留下$$.ptr
悬空,并指向将被重新用于其他用途的内存
idlist : idlist ',' ID {
$$.str=$3.str;
$$.ptr=(idtype*)&$1;
}
| ID {
$$.str=$1.str;
$$.ptr=NULL;
}