Компилятор, который создает синтаксическое дерево, делает это на этапе синтаксического анализа.Это происходит обычно путем генерации узла дерева для каждого правила грамматики, соответствующего входному потоку.
Генерация кода требует значительного анализа дерева для понимания типов, операций, возможностей для оптимизации и т. Д. Часто это сложночтобы преуспеть в дереве напрямую, поэтому используются другие промежуточные представления (тройки, статическое одиночное присваивание, ...).Зачастую даже промежуточные этапы не подходят для генерации машинного кода, поэтому может быть создано какое-то представление машинного взаимодействия (RTL), ...
Дело в том, что деревья - не единственное представление, которое использует компилятордля генерации кода.
Стоит потратить силы на чтение вводного учебника по компилятору (Aho and Ullman, "Compilers"), чтобы получить более подробную информацию.