Compilador de Mini-Pascal implementado em Python 3 para disciplina de Compiladores I com linguagem-alvo MEPA
Em geral o compilador não faz consistentemente verificação de tipos, não suporta funções ou procedimentos, e diversas funcionalidades do Pascal.
Mais facilmente listando o que esse compilador suporta: análise léxica de um 'sub-set' do Pascal de algum livro que eu não sei dizer, geração de código: operações com números inteiros: SOMA, SUBTRAÇÃO, MULTIPLICAÇÃO, DIVISÃO, <, <=, >, >=, !=, =, AND, OR, estrutura if-else (sem else if), estrutura while.
Devido ao timing da disciplina e de outras provas que tive no período (e pouco conhecimento de Python), o código está repleto de inconsistências, código "burro" e ineficiente e código não "Pythonico".
Inicialmente achei uma boa ideia, até porque queria uma desculpa para aprender Python, inicialmente ajudou e acelerou muito o desenvolvimento, mas ao adicionar geração de código, tudo ficou muito bagunçado e desnecessariamente difícil de entender.
Não tenho planos de continuar o desenvolvimento desse projeto já que não tenho nenhum utilidade imediata (e se tivesse implementaria em outra linguagem)
Tenho hospedado no GitHub para eternizar essa gambiarra (e futuramente utilizar como referência)
Como parte da disciplina foi baseada em testes no Run.Codes, poucas saídas úteis existem no código, dificultando MUITO entendimento do que está acontecendo.
Procure outro compilador no Google, não utilize isso hehe.