Должен построить синтаксическое дерево (или какое-то другое представление) написанной программы в соответствии с твоей грамматикой. По сути, определить чем является тот или иной набор токенов (объявление переменной, выражение, вызов функции, еще что-то). После по этому промежуточному представлению генерируется код.