Я пишу компилятор для игрушечного ОО языка.Я пишу это на C, используя Flex и Bison.
Рассмотрим следующий синтаксис:
class MyClass {
int m_n;
void MyFunc(int b) {
m_n = 5;
m_p = b;
}
int m_p;
}
Мой текущий код будет жаловаться, что в MyFunc m_p еще не объявленпричина).Итак, я пришел к выводу, что мне нужен метод многоходового анализа - что-то вроде:
1-й проход - объявления переменных процесса
2-й проход - определения функций процесса
Первый - это лучший способ решить проблему?Есть ли другие методы, которые я должен изучить?Во-вторых, если это выгодное решение, буду ли я реализовывать его с помощью входящего лексера / парсера?
Спасибо