Как вручную построить AST?

В настоящее время я изучаю синтаксический анализ, но я немного сбит с толку тем, как генерировать AST. Я написал синтаксический анализатор, который правильно проверяет, соответствует ли выражение грамматике (он молчит, когда выражение соответствует, и вызывает исключение, когда это не так). Куда мне идти отсюда, чтобы построить АСТ? Я нашел много информации о сборке моего LL (1) парсера, но очень мало потом собирал AST.

Мой текущий код (написанный на очень простом Ruby, включая лексер и парсер) находится здесь на github:https://gist.github.com/e9d4081b7d3409e30a57

Может кто-нибудь объяснить, как я иду от того, что у меня есть в настоящее время к AST?

В качестве альтернативы, если вы не знакомы с Ruby, но знаете C, не могли бы вы рассказать мне, как я строю AST для кода C ванализ рекурсивного спуска статья в википедии.

Пожалуйста, обратите внимание, я не хочу использовать генератор синтаксических анализаторов, таких как yacc или antlr, чтобы сделать работу за меня, я хочу сделать все с нуля.

Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос