Este proyecto es una aplicación Java simple que utiliza ANTLR4 para el análisis léxico y sintáctico. El proyecto usa Maven para la gestión de dependencias e incluye pruebas unitarias con JUnit 5.
- Prerequisitos
- Estructura del Proyecto
- Configuración
- Uso
- Ejecución de Pruebas
- Configuración
- Dependencias
- Licencia
- Java 17 o superior
- Maven 3.6.3 o superior
app
├── pom.xml
├── src
│ ├── main
│ │ ├── antlr4
│ │ │ └── CMiniLexer.g4
│ │ │ └── CMiniParser.g4
│ │ ├── java
│ │ │ └── com
│ │ │ └── compilador
│ │ │ └── App.java
│ └── test
│ ├── java
│ │ └── com
│ │ └── compilador
│ │ └── AppTest.java
│ └── resources
│ └── input
│ └── programa.c
│ └── test
│ └── *.c
- Clonar el repositorio:
git clone http://www.example.com
cd app- Construir el proyecto:
mvn clean compilePara ejecutar la aplicación, use el siguiente comando:
mvn exec:java -Dexec.mainClass="com.compilador.App"La aplicación procesa el archivo de entrada ubicado en input/programa.c.
Para ejecutar las pruebas unitarias:
mvn testEl archivo pom.xml está configurado para usar los siguientes plugins y dependencias:
- ANTLR4 para análisis léxico y sintáctico.
- JUnit 5 para pruebas.
- Plugin Maven Surefire para la ejecución de pruebas.
El antlr4-maven-plugin está configurado para generar fuentes a partir de archivos de gramática ANTLR ubicados en src/main/antlr4.
<build>
<plugins>
<plugin>
<groupId>org.antlr</groupId>
<artifactId>antlr4-maven-plugin</artifactId>
<version>4.13.1</version>
<executions>
<execution>
<id>antlr</id>
<goals>
<goal>antlr4</goal>
</goals>
<phase>generate-sources</phase>
</execution>
</executions>
<configuration>
<sourceDirectory>${project.basedir}/src/main/antlr4</sourceDirectory>
<outputDirectory>${project.build.directory}/generated-sources/antlr4</outputDirectory>
</configuration>
</plugin>
</plugins>
</build>El directorio .vscode contiene archivos de configuración para depuración y tareas:
launch.json: Configura cómo ejecutar y depurar la aplicación.tasks.json: Define tareas para construir y probar el proyecto.
El proyecto tiene las siguientes dependencias:
- ANTLR4 Runtime:
org.antlr:antlr4-runtime:4.13.1 - JUnit 5 API:
org.junit.jupiter:junit-jupiter-api:5.7.1 - JUnit 5 Engine:
org.junit.jupiter:junit-jupiter-engine:5.7.1
Estas dependencias se gestionan en el archivo pom.xml.
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.7.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.7.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.antlr</groupId>
<artifactId>antlr4-runtime</artifactId>
<version>4.13.1</version>
</dependency>
</dependencies>