从操作接受 yacc 规则
是否可以结合 %glr-parser 指令活动接受来自操作的野牛规则?
如下所示:
aRule : 'a' 'b' 'c' { /* 进行一些计算,并根据您允许/禁止此规则的内容进行一些计算,并继续解析而不从 yyparse 函数返回。 */ } ;
Is it possible to accept a bison-rule from the action in combination with the %glr-parser directive active?
Something like the following:
aRule : 'a' 'b' 'c' { /* Do some calculations and depending on those you allow/disallow this rule and continue the parsing without returning from the yyparse function. */ } ;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
AFAICS 无法动态启用或禁用语法的某些部分。作为一种破解,您可以在分支中添加特殊标记作为防护,并让标记生成器在满足某些条件时生成此额外标记(我有时使用额外的 FORCE_ERROR 标记来强制解析错误)。是的,这很丑陋。
AFAICS there is no way to dynamically enable or disable some parts of the grammer. As a hack you can add special tokens as guards in the branches and let the tokenizer yield this extra tokens when some condition is met (I sometimes use an extra FORCE_ERROR token to force parse errors). And yes, this is ugly.