标签: c bison yacc lex
我正在使用Lex和Yacc开发一个程序编译器。该编译器的主要目标是处理多层外部子例程调用,同时避免任何类型的递归函数调用。我实现这一目标的逻辑如下:
我将首先扫描主程序。对于我发现的那个程序中的所有子函数调用,我会跳转到该子函数,对后续函数调用进行另一次扫描。将重复此过程,直到达到结束或达到预定义的最大堆栈数。但是,没有检测到任何递归函数调用。
因为我对yacc的信息有限,这是使用yacc处理子函数调用的正确方法吗?此外,有没有人有任何关于如何使用yacc检测递归函数调用的建议。