Что-то мне подсказывает, что вам может помочь книга "Структура и интерпретация компьютерных программ" (SICP) в ней даже описано создание полноценного компилятора, правда, используемый там язык Scheme, диалект Лиспа, можно сказать уже является синтаксическим деревом. Также я нашел у себя в библиотеке книгу "Компиляторы: принципы, технологии и инструментарий", судя по оглавлению, это как раз то, что вам нужно.