Bison 野牛c码赋值

Bison 野牛c码赋值,bison,Bison,如果循环结构在*.y文件中定义为: WHILE '(' expr ')' stmt ENDWHILE { //to be written here loop structure handling - put WHILE into structure stack } 然后-尽管我被迫使用ENDWHILE-我如何将c代码绑定到ENDWHILE以检查结构之间是否存在重叠?只有在识别所有以前的标记和规则(以及执行任何代码)后,才会执行示例中大括号中的代码 如果您有嵌套的WHILE/ENDWHILE循环

如果循环结构在*.y文件中定义为:

WHILE '(' expr ')' stmt ENDWHILE { //to be written here loop structure handling
- put WHILE into structure stack }

然后-尽管我被迫使用ENDWHILE-我如何将c代码绑定到ENDWHILE以检查结构之间是否存在重叠?

只有在识别所有以前的标记和规则(以及执行任何代码)后,才会执行示例中大括号中的代码


如果您有嵌套的WHILE/ENDWHILE循环,则内部循环将在外部循环之前完成。

我不理解您的问题。当找到指定的结构时,即在“WHILE”处,将执行附加的c代码。但是,当我的程序到达“ENDWHILE”时,我如何附加要执行的代码呢?实际上,你的代码将在找到整个东西时执行,包括所有
WHILE
expr
、和
ENDWHILE
。因此不需要检查任何重叠循环,Bison会处理它吗?我对野牛越来越熟悉了,在我的知识上有些空白。谢谢你的帮助。