Adicionei a gerações de instruções para as operações aritméticas simples, mudei a ordem de alguns símbolos de comparação e simplifiquei o “backend”. Além disso, o código do analisador sintático usa as funções “consume”, “try_consume”, “assert” e “try_assert” para verificar se o símbolo atual é o esperado. Com isto, o código ficou mais enxuto.