Здравствуйте, VVVa, Вы писали:
Pzz>>Нет, в твоем примере компилятор видит умножение, найдя известную ему к этому моменту переменную name.
VVV>Блин действительно ... А как тогда он проверяет облости видимости переменных ? ведь дерево ещё не построено ...
Так и проверяет. Появилось объявление переменной — добавили. Типа — добавили. Видим идентификатор — пытаемся по тому, в какой он таблице, определить его роль.
Закончился блок — почистили таблицы и пошли дальше.
У тебя ещё много открытий впереди

C ещё относительно прост в этом смысле.
C++ — вот как насчёт
такого (вторая часть комментария)?
Пока класс целиком не распарсен, нельзя делать предположения о смысле некоторых грамматических конструкций внутри его определения. А после ещё чудесатее:
До этапа кодогенерации ещё дожить надо — а вы пока не рассказали, как вы AST строить собрались, если для синтаксического разбора нужно уметь решать уравнения на эллиптических кривых — причём со входными данными, приходящими от целевой платформы.
Не забудьте, что там вместо банального sizeof может стоять вызов любой constexpr функции, а дальнейшее дерево зависит от результата вычислений оной функции.
Мнэээ, гражданин... не советую. Съедят.
После такого — всех калёной метлой гнать в сторону LISP. Ну ладно, Go или Pascal.