如何将一个aditional参数(不是YYSTYPE
类型的标记辅助项)传递给yypush_parse()
函数?
解析器确实是可重入的,但是这个aditional变量对于我需要集成解析器的应用程序的线程安全至关重要(它是PHP扩展,所以我们讨论的是TSRM)。
我不能摆脱那个参数,因为在动作代码中我将调用函数,这些函数将以用户可访问的形式生成AST。
我试图破解YYPUSH_DECLS
并且就声明函数而言它是有效的,但是几千个LOC下降了yypush_parse
的实现,我看不到任何覆盖yypush_parse
实现开始的函数签名的方法。
YYPARSE_PARAM
仅在解析器不是推送器时使用(据我所知),但在我的情况下,我需要它是因为我必须在处理循环中执行的操作,在lexing之后和向解析堆栈添加新令牌之前。
所以我想知道是否有%directive
或其他可能有用的东西。
另一方面,我认为YYPARSE_PARAM
应该被定义,无论它是什么类型的解析器。遗憾的是,它不是。
答案 0 :(得分:1)
%parse-param
。 YYPARSE_PARAM
已弃用,不应使用。