6
如何將一個附加參數(不是YYSTYPE
類型的令牌小數)傳遞給yypush_parse()
函數?野牛 - 推送和純解析器的附加參數
解析器確實折返,但是這一個aditional的變量是我需要我的解析器集成在應用程序的線程安全至關重要的(這是一個PHP擴展,所以我們談論TSRM)。
我不能只是擺脫這個參數,因爲在行動代碼中我要調用將以用戶空間可訪問的形式生成AST的函數。
我試圖破解周圍YYPUSH_DECLS
並儘量可以作爲聲明函數而言,但幾千交通線下來自帶的yypush_parse
實施,我看不到任何方式覆蓋函數簽名哪裏開始執行yypush_parse
。
YYPARSE_PARAM
當解析器不是推一個(據我可以告訴),但對我來說,我需要它是因爲事情我必須在處理循環做推,詞法後,僅用於然後再將新令牌添加到解析堆棧。
所以我想知道是否有%directive
或有什麼可以幫助。
另一方面,我認爲YYPARSE_PARAM
應該儘量使用,不管它是什麼類型的解析器。可惜它不是。
不幸的是,'%parse-param'用於'yyparse()'函數,而不是'yypush_parse()'。 – 2011-04-17 13:55:51
你在說什麼?它適用於我,野牛2.4.3 – Flavius 2011-04-17 15:21:15
好的:讓我們修改我的評論 - 遺憾的是,文檔沒有提及'%parse-param'可以與'yypush_parse()',AFAICS一起使用。你的經驗證據表明它可以被使用;我們或許應該向Bison團隊留言,說明文檔中缺少這一點。 – 2011-04-17 17:54:49