Skip to content

StudentUAb/AF1-Java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ANTLR com Java

TESTE com ANTLR e Java

📌 ANTLR com Java: AF1 e Visualização da Árvore de Análise

Este guia descreve como criar, analisar e visualizar uma árvore de análise para uma gramática simples de "AF1" utilizando ANTLR para gerar os analisadores e Java para executar a análise e a visualização.

Este guia passo a passo descreve como criar uma simples gramática usando ANTLR, gerar o analisador em Java, e visualizar a árvore de análise sintática.

Pré-requisitos

Passo a Passo

Codigo

1. Criar a Gramática ANTLR

Definimos a gramática no arquivo Expr.g4:

2. Gerar os Ficheiros Java com ANTLR

  • java: Este é o comando para executar aplicações Java.
  • cp: A opção cp ou classpath especifica a lista de diretórios, JAR archives, e ZIP archives para procurar classes e recursos.
  • /Users/ivobaptista/www/COMPILAR/antlr4/lib/antlr-4.7.2-complete.jar: Este é o caminho para o arquivo JAR do ANTLR. Este arquivo contém todas as classes necessárias para executar a ferramenta ANTLR.
  • org.antlr.v4.Tool: Este é o nome qualificado da classe principal do ANTLR que executa a ferramenta.
  • Expr.g4: Este é o nome do arquivo de gramática ANTLR. ANTLR gera código Java a partir desta gramática que pode analisar e construir uma árvore de análise para o linguagem definida pela gramática.
java -cp /Users/ivobaptista/www/COMPILAR/AF1/lib/antlr-4.7.2-complete.jar org.antlr.v4.Tool Expr.g4
java -cp "/Users/ivobaptista/Documents/GitHub/ivobass.github.io/AF1-Java/lib/antlr-4.7.2-complete.jar" org.antlr.v4.Tool -visitor -o . Expr.g4

Certifique-se de substituir /caminho/para/antlr-4.x-complete.jar pelo caminho real onde o arquivo antlr-4.x-complete.jar está localizado no seu sistema.

3. Executar ANTLR4 Parser Generator (compilação dos arquivos Java gerados):

  • javac: Este é o compilador Java, usado para compilar arquivos .java em bytecode .class.
  • cp: Novamente, especifica o caminho de busca para classes e recursos. Neste caso, inclui tanto o JAR do ANTLR quanto o diretório atual (representado por .) para que o compilador possa encontrar tanto as classes do ANTLR quanto os arquivos .java gerados anteriormente.
  • Expr*.java: Este padrão seleciona todos os arquivos Java no diretório atual que começam com "Expr". Estes são os arquivos gerados pelo comando anterior.
 javac -cp /Users/ivobaptista/www/COMPILAR/AF1/lib/antlr-4.7.2-complete.jar:. Expr*.java 
javac -cp ".:/Users/ivobaptista/Documents/GitHub/ivobass.github.io/AF1-Java/lib/antlr-4.7.2-complete.jar" *.java

4. Executar o TestRig do ANTLR para testar a gramática:

  • java: Executa aplicações Java.
  • cp: Especifica o caminho para as classes e recursos, semelhante aos comandos anteriores.
  • org.antlr.v4.gui.TestRig: Esta é a classe do ANTLR que fornece uma interface gráfica para testar gramáticas. É uma ferramenta útil para visualizar árvores de análise geradas a partir de entrada específica.
  • Expr: Este é o nome da gramática a ser testada. Deve corresponder ao nome dado no arquivo .g4.
  • expr: Este é o nome da regra dentro da gramática Expr.g4 que você deseja testar. A ferramenta TestRig irá analisar a entrada conforme esta regra.
  • -gui indica ao TestRig para abrir uma interface gráfica mostrando a árvore de análise.
 java -cp "/Users/ivobaptista/www/COMPILAR/AF1/lib/antlr-4.7.2-complete.jar:." org.antlr.v4.gui.TestRig Expr expr -gui 

Deve aparecer a visualização da árvore de análise sintática

Atividade Formativa 1

  1. Escreva um programa que dada uma expressão com número inteiros sem sinal e apenas com os operadores '+' e '-' reescreva essa expressão na notação pós-fixa.

  2. Acrescente ao programa anterior os operadores '*' e ´/', com a habitual precedência, a possibilidade de os números terem sinal '+' ou '-' e os parênteses.

  3. Implemente os programas anteriores usando a ferramenta ANTLR.

Compilar o ficheiro MyInfixToPostfixConverter.java que lee o ficheiro input.txt

javac MyInfixToPostfixConverter.java
java MyInfixToPostfixConverter.java

Resultado: Expressão Infixa: 2 + 3 Expressão Pós-fixa: 23+ Expressão Infixa: 8 - 4 + 1 Expressão Pós-fixa: 84-1+ Expressão Infixa: 7 * 2 + 5 Expressão Pós-fixa: 725+ Expressão Infixa: (1 + 2) * 4 Expressão Pós-fixa: 124+ Expressão Infixa: 10 / (5 - 3) Expressão Pós-fixa: 105/3-

O projeto foi feito em Java com ANTLR

The project was done with Java with ANTLR

page-home

page-home

🔧 Tecnologias utilizadas:

  • ANTLR
  • VS code

💬 Fale comigo

Entre em contato comigo

About

AF1 exemplo em java

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published