2011-10-08 30 views
0
idlist : idlist ',' ID { 
         $$.str=$3.str; 
         $$.ptr=(idtype*)&$1; 
         } 
     | ID   { 
         $$.str=$1.str; 
         $$.ptr=NULL; 
         } 

idlist在這裏是idtype類型。我是Yaac的新手。我在做一些愚蠢的事情,因爲我的代碼是通過一個單一的ID循環。當我在一個層面上使用它時。鏈接非終端用於修補

所以這裏的語法在ID後面有類型。我可以使用堆棧來做到這一點,但我認爲這很可愛。

回答

1

問題是,您正在接收$1的地址,該地址是僅存在於該規則操作的本地臨時地址。所以在動作完成之後,它就會消失,留下$$.ptr,並指向將被重用的其他內存。