Вы задаете много не связанных между собой вопросов здесь.В зависимости от языка, который вы определили, на вашем языке может быть узел метода или не будет, скажем, если ваш язык безоговорочно компилируется в метод main(String[])
.
Существует несколько подходов для преобразованияАСТ на целевой язык.В большинстве случаев вы не будете генерировать код напрямую, а создадите AST для своей целевой платформы и получите симпатичный принтер для генерации кода из него, используя treewalker.
Семантический анализ - это программированиекомпилятор.Чтение и понимание ввода на синтаксическом уровне является анализом.Вам нужно будет написать семантический анализатор самостоятельно, иначе вы бы вообще не написали компилятор.; -)
Полагаю, вы используете Jasmin для компиляции кода сборки?Очень хорошим началом было бы написание грамматик для вашего языка ввода и целевого языка (Jasmin) и подумать, какие структуры ввода будут отображать, какой вывод.Как написать цикл for i := 1 to 10
в Жасмин?Решайте небольшие проблемы и расширяйте свой компилятор по мере необходимости, но медленно, проводя раннее и тщательное тестирование недавно реализованных преобразований.
A очень хорошее чтение: Давайте создадим компилятор, выполнивДжек Креншоу .