Code Monkey home page Code Monkey logo

gachaneitor's Introduction

Gachaneitor

Práctica final de la asignatura de Procesadores de Lenguajes

Curso 2020/2021

Ejecución

La información detallada de cómo ejecutar cada práctica se encuentra en los README de las carpetas src/pl_antlr/ y src/pl_cup/.

Documentación del proyecto

La documentación de la práctica se encuentra almacenada en un PDF de la carpeta doc.

Ejemplos

Las recetas de ejemplo se encuentran en la carpeta doc del repositorio. Podemos clasificar las recetas en tres tipos:

  • Recetas correctas: Aquí se pueden encontrar un conjunto de recetas que son correctas, tanto sintáctica como semánticamente, por lo que son aceptadas por los procesadores. También se incluye un archivo con dos recetas.
  • Recetas con errores de sintáctica: En esta carpeta se encuentran archivos con errores sintácticos:
    • Lenguaje_cantidad_falta_numero.txt: A uno de los ingredientes en los pasos le falta el número de la cantidad usada.
    • Lenguaje_falta_dospuntos_ingrediente.txt: A algunos de los ingredientes les falta los dos puntos entre el nombre y la cantidad (correcto, el ponerlo o no es opcional).
    • Lenguaje_falta_guion.txt: Lenguaje con un paso en el que no se incluye el guion en un paso.
    • Lenguaje_falta_palabra_ingredientes.txt: Lenguaje en el que no se incluye la palabra "ingredientes" en la receta (correcto, el ponerlo o no es opcional).
    • Lenguaje_falta_palabra_pasos.txt: Lenguaje en el que no se incluye la palabra "pasos" en la receta (correcto, el ponerlo o no es opcional).
    • Lenguaje_falta_palabra_temperatura.txt: Lenguaje en el que falta la palabra "temperatura" en la declaración de un paso (es un error no fatal del que el procesador en CUP se recupera).
    • Lenguaje_falta_palabra_tiempo.txt: Lenguaje en el que no se incluye la palabra "tiempo" en la receta (correcto, el ponerlo o no es opcional).
    • Lenguaje_falta_palabra_velocidad.txt: Lenguaje en el que falta la palabra "velocidad" en la declaración de un paso (es un error no fatal del que el procesador en CUP se recupera).
    • Lenguaje_falta_puntoycoma_ingredientes.txt: Lenguaje en el que faltan algunos puntos y comas con ingredientes (correcto, el ponerlo o no es opcional).
    • Lenguaje_falta_verbo.txt: Lenguaje con un paso en el que no se incluye el verbo de la acción a realizar.
    • Lenguaje_warnings.txt: Lenguaje con varios errores de sintaxis para la recuperación de errores con el procesador de JFlex y CUP.
  • Recetas con errores de semántica: Aquí podemos encontrar la receta del puré con los diferentes errores y comprobaciones de semántica de nuestro lenguaje:
    • Lenguaje_cantidades_mayores_a_las_declaradas.txt: Un ingrediente se ha usado en los pasos con una cantidad superior a la declarada.
    • Lenguaje_ingredientes_no_usados.txt: Se han declarado uno o varios ingredientes que no se usan en ninguno de los pasos posteriores.
    • Lenguaje_magnitudes_distintas.txt: Un ingrediente se ha declarado dos o más veces con unidades de distinta magnitud (e.g. unidades(ud) y masa(g))
    • Lenguaje_suma_unidades_masa.txt: Un ingrediente se ha declarado dos veces o más con unidades de la misma magnitud (e.g. masa: kg, g y mg). Por tanto, una suma de las cantidades es necesaria para generar la salida.
    • Lenguaje_suma_unidades_tiempo.txt: Los pasos se han declarado con unidades de tiempo distintas (e.g. min y seg). Por tanto, una suma de los tiempos es necesaria para generar la salida.
    • Lenguaje_tiempo_total_distinto_parcial.txt: Los tiempos parciales no coinciden con el tiempo total de la receta.
    • Lenguaje_unidades_uso_distintas.txt: Un ingrediente se declara con una magnitud (e.g. masa(g)) y en los pasos se usa con otra distinta (e.g. unidades(ud)).

En doc también se incluyen unos archivos txt con la gramática pasada al Lenguaje Proletool para su inmediata evaluación en la herramienta.

Participantes

  • Raúl Bernalte Sánchez
  • Enrique Cepeda Villamayor
  • Elena Hervás Martín
  • Elena María Ruiz Izquierdo

gachaneitor's People

Contributors

elenahervas avatar enriquecepeda avatar elenamariaruiz avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.