Здравствуйте, netch80, Вы писали:
N>Так и проверяет. Появилось объявление переменной — добавили. Типа — добавили. Видим идентификатор — пытаемся по тому, в какой он таблице, определить его роль.
N>Закончился блок — почистили таблицы и пошли дальше.
Еле догнал если токен "int x;" свернулся парсером то заводим переменную и помечаем где она стоит... А потом если есть свёртка с элементом "int x;" то удаляем
N>У тебя ещё много открытий впереди
C ещё относительно прост в этом смысле.
а какие открытия может подскажите? именно для С
N>C++ — вот как насчёт такого (вторая часть комментария)?
Жалко до кодогенерации не дошёл не совсем понял тяжесть происходящего
N>Пока класс целиком не распарсен, нельзя делать предположения о смысле некоторых грамматических конструкций внутри его определения. А после ещё чудесатее:
N>До этапа кодогенерации ещё дожить надо — а вы пока не рассказали, как вы AST строить собрались, если для синтаксического разбора нужно уметь решать уравнения на эллиптических кривых — причём со входными данными, приходящими от целевой платформы.
N>Не забудьте, что там вместо банального sizeof может стоять вызов любой constexpr функции, а дальнейшее дерево зависит от результата вычислений оной функции.
"на эллиптических кривых" — Вы пошутили? причём тут криптография?
Ну в курсе что в sizeof может стоять выражение — тогда размер это размер от получаемого типа. Или Вы не про это?
Ну я AST на списках наверное буду делать ... но как его обходить покуда не знаю ... может Матрицу смежности или Матрицу инцидентности придётся применять...
N>Мнэээ, гражданин... не советую. Съедят.
А вдруг весело будет ...
N>После такого — всех калёной метлой гнать в сторону LISP. Ну ладно, Go или Pascal.