Projeto open source da disciplina de Compiladores.
- Ariel Fernando
- Paulo Henrique de Farias Martins
- Nivaldo
- Linguagem: Java 21
- Build e dependências: Maven
- Testes: JUnit 5
- Execução local: terminal (CLI)
src/main/java/br/edu/compiladorjava: código-fonte principalsrc/test/java/br/edu/compiladorjava: testes automatizadoslinguagem.txt: gramática/base da linguagemETAPAS.md: checklist de evolução por etapas
- Java 21 instalado
- Maven instalado
O projeto está configurado para Java 21 em pom.xml com maven.compiler.release igual a 21.
Verificação rápida:
java -version
mvn -vSe o Maven estiver usando Java diferente do 21, execute os comandos com:
JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64 mvn testOu defina no terminal para a sessao atual:
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
export PATH="$JAVA_HOME/bin:$PATH"Executar testes:
mvn testGerar build:
mvn clean packageExecutar aplicação base:
mvn -q exec:javaUse este fluxo para qualquer nova atividade do compilador (lexer, parser, AST, contexto, geração de código).
- Escolher a atividade no checklist
- Abrir
ETAPAS.mde selecionar um item não concluído.
- Criar branch da atividade
git checkout -b feat/nome-da-atividade- Implementar em camadas
- Criar/alterar código em
src/main/java/.... - Se necessário, incluir novas classes por responsabilidade (exemplo:
lexer,parser,ast,semantic,codegen).
- Criar ou atualizar testes
- Adicionar testes em
src/test/java/...cobrindo casos válidos e inválidos.
- Executar validações locais
mvn test
mvn clean package- Atualizar documentação
- Marcar progresso em
ETAPAS.md. - Atualizar
README.mdse mudar fluxo, comandos ou estrutura.
- Commit e revisão
git add .
git commit -m "feat: descricao da atividade"
git push -u origin feat/nome-da-atividade- Commits curtos e descritivos.
- Sempre entregar com teste passando.
- Preferir uma atividade por branch para facilitar revisão.