如何将一个附加参数(不是 type 的标记次要YYSTYPE
)传递给yypush_parse()
函数?
解析器确实是可重入的,但是这个附加变量对于我需要集成我的解析器的应用程序的线程安全至关重要(它是一个 PHP 扩展,所以我们谈论的是TSRM)。
我不能只是摆脱那个参数,因为在操作代码中我将调用函数,这些函数将以用户态可访问的形式生成 AST。
我试图破解YYPUSH_DECLS
它,就声明函数而言,它可以工作,但是几千个 LOCs 是 的实现yypush_parse
,我看不到任何方法来覆盖yypush_parse
开始实现的函数签名。
YYPARSE_PARAM
仅在解析器不是推送时使用(据我所知),但在我的情况下,我需要推送它,因为我必须在处理循环中,在词法分析之后和添加新之前解析堆栈的令牌。
所以我想知道是否有%directive
什么可以帮助的。
另一方面,我真的认为YYPARSE_PARAM
应该使用它的定义,无论它是什么类型的解析器。可惜不是。