Skip to content

sschuf/cmini

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CMini

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.

Tabla de Contenidos

Prerequisitos

  • Java 17 o superior
  • Maven 3.6.3 o superior

Estructura del Proyecto

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

Configuración

  1. Clonar el repositorio:
git clone http://www.example.com
cd app
  1. Construir el proyecto:
mvn clean compile

Uso

Para 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.

Ejecución de Pruebas

Para ejecutar las pruebas unitarias:

mvn test

Configuración

Configuración de Maven

El 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.

Configuración de ANTLR4

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>

Configuración de Visual Studio Code

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.

Dependencias

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>

About

Desarrollo de compilador con ANTLR4 y Java

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published