我正在为玩具 OO 语言编写编译器。我正在用 C 语言编写它,使用 Flex 和 Bison。
考虑以下语法:
class MyClass {
int m_n;
void MyFunc(int b) {
m_n = 5;
m_p = b;
}
int m_p;
}
我当前的代码会抱怨在 MyFunc 中,m_p 尚未声明(有充分的理由)。因此,我得出的结论是,我需要一种多遍解析技术——类似于:
第一遍 - 处理变量声明
第二遍 - 处理函数定义
首先 - 这是解决问题的最佳方法吗?还有其他我应该研究的方法吗?其次 - 如果这是一个有利的解决方案,我会使用可重入词法分析器/解析器来实现它吗?
谢谢