Compilador de linguagem LPD desenvolvido em dupla na disciplina Contrução de Compiladores, na Pontifícia Universidade Catolica de Campinas, no 2º semestre de 2020.
- Primeira etapa do processo de compilação
- Possibilita a entrada de um arquivo .txt ou digitação livre de código LPD
- Realiza a geração de tokens do código inserido
- Gera erro Léxico (caracteres não previsto, comentários não terminados) contendo lexema e linha do erro
- Segunda etapa do processo de compilação
- Valida a sequencia dos tokens
- Gera erro Sintático (tokens fora da ordem esperada) contendo lexema e linha do erro
- Terceira etapa do pocesso de compilação
- Gera erro Semântico (váriaveis/funções duplicadas, expressões com tipos errados) contendo lexema e linha do erro
- Dividido em três "sub-módulos":
- Insere variáveis, procedimentos e funções na tabela de símbolos
- Valida se váriaveis, procedimentoe e funções existem, pertencem ao escopo e tem mesmo tipo
- Insere operadores e operandos para análise de pós-fixo
- Tranforma expressão de in-fixo para pós-fixo
- Avalia expressão pós fixa
- Realiza e geração das instruções com todos os parâmetros
- Gerar e realizar o download do arquivo .obj (a ser executado pela Maquina Virtual)
- Responsável por executar o código gerado pelo compilador
- Opção de executar o código em sua totalidade, linha a linha ou com breakpoint
- Exibe ao usuário os campos de pilha de dados(memória), entrada e saida do programa
- Desenvolvimento/Testes Interface Gráfica
- Desenvolvimento/Testes Analisador Léxico
- Desenvolvimento/Testes Analisador Sintático
- Desenvolvimento/Testes Tabela de Símbolos
- Desenvolvimento/Testes Pós-fixo
- Desenvolvimento/Testes Geração de Código
- Realizacao de testes completos e complexos
- Correção de bugs encontrados
- Refatoração de partes críticas
- Javascript
- CodeMirror
- HTML
- CSS