- Lexer
- Parser 😶🌫️
- Tabela de simbolos
- Analise Semantica
- Compilar com:
./build.sh
- ou:
gcc -g ./main.c ./lexer/*.c ./parser/*.c -o croc
- Executar com:
./croc <codigo>
- Executar com arquivo exemplo:
./croc ./doc/examples/code.proc
- Em um so comando:
gcc -g ./main.c ./lexer/*.c ./parser/*.c -o croc && ./croc ./doc/examples/code.proc
- Testes automatizados:
gcc -g ./test/*.c ./lexer/*.c ./parser/*.c -o croc && ./croc
- Descartar metodo descendente recursivo? Utilizar metodo de tabela descrevendo as regras de sintaxe? PDA/EFSM?
- Output colorido em testes
- Todo ID deve ser checado pelo parser se é reservado?
- Refactor indispensável no parser: remover erros que não serão usados nos .h e .c
- Refatorar testes: setup e teardown
- Remover enums erros desnecessarias do parser
- Objeto parser com seu proprio estado (token, file, line)
- Contador de linha esta funcionando no analisador sintatico?
- Parser testes unitarios + integracao
- Adicionar especificacao da linguagem
proc
e manter atualizada - Refactor: remover transition.h e transition.c
- Refactor: organizar melhor as enums...
- Setup GitHub Actions para testes
- automato nao funciona
- funciona corretamente
- id
- intcon
- realcon
- charcon
- stringcon
- sinais
- comentario
- \n processado corretamente
- \n, \0 nao e reconhecido como charcon independente: tem que refazer o automato 😰
- sem tratamento de erro: tokens malformados
- nao retorna palavras reservadas
- nao lida com lexemas maiores que o tamanho limite
- mudar valor false de outro para enum para maior legibilidade
- contador de linha: retornado pelo erro com sucesso
- refatorar codigo de print de tag token (sinal)
- imprimir charcon corretamente?
- refatorar tratamento de erros?
- refatorar codigo palavras reservadas
- melhorar logica categorias de transicao: precisa de um campo especifico pra outro?