En este proyecto se toma como entrada un script en lenguaje LPP
y se traduce a lenguaje Python3
. Como observaciones a este proyecto se veran que las salidas pueden distar un poco de las originales de LPP
, debido a las peculiaridades del lenguaje Python
.
Se identificaron dos posibles cambios que puedan surgir al ejecutar el script obtenido al traducir de LPP
a Python
, estos son:
-
Al declarar un entero y utilizar una división, el lenguaje automaticamente lo cambia a decimal, aunque este sea un entero.
- ej.
(2 / 4 = 2.0)
- ej.
-
El segundo caso de cambio es en el trucar una cadena de texto al tamaño declarado en la careacion de esta variable, lo cual es complicado ya que
Python
por defecto no crea variables con estas condiciones.-
ej.
LPP declaración
`- cadena[10] mi_cadena
- inicio
- mi_cadena <- "Lenguajes de Programación"
- escriba mi_cadena
output: // Lenguajes `
en
Python
una forma de solucionarlo es con un slice pero se decidio no hacerlo para mostrar las diferencias de los dos lenguajes. -
-
Abrir el proyecto desde Pycharm, esto con el fin de hacer mas facil la ejecucion y visualizacion del proyecto.
-
Tener instalado el Plugin de ANTLR4 y ANTRL4 Tools, los cuales son muy utiles al momento de visualizar el arbol sintactico y ayuda a la creacion del codigo.
-
Marcar la carpeta "gen" como carpeta de tipo "Sources".
-
Indicar la version de Python a usar en el IDE.
Inicialmente se debe instalar ANTLR4, para ello se deja un archivo del runtime de antlr en la raiz del proyecto.
Si desea instalarlo desde consola utilice el siguiente comando para instalar el runtime de ANTLR4
pip install antlr4-python3-runtime
Utiliza el siguiente comando para instalar ANTRL4 Tools
pip install antlr4-tools
Una vez instalado el runtime de ANTLR4, navegue hasta la carpeta ./grammar
en ella encontrara un archivo llamado LPP.g4
en el se encuentra la gramatica utilizada para este proyecto, la cual obtuvimos de otro proyecto (https://github.com/LenguajeLPP/lpp
), aunque sufrio algunas modificaciones.
Dentro de este archivo puede daar click derecho y hacer click en la opcion de Generate ANTLR Recognizer
, una vez hecho esto se creara una carpeta llamada ./gen
, la cual contiene archivos como los de parser y listener que se utilizaron en este proyecto.
Asegurece que la carpeta gen esta seleccionada como carpeta source, para ello una vez creada la carpeta ubicarse sobre ella y dar click derecho y luego en la opcion Mark directory As
, selecciona la opcion Sources Root
Si desea visualizar el arbol sintactico el el archivo de la gramatica LPP.g4
ubiquese sobre la primera regla, en este caso es programa
y de click derecho y luego en la opción de Test Rule progrma
con esto se abrira una ventana en la cual puede introducir de forma manual una entrada para ver el arbol sintactico generado por dicha entrada.
Para ejecutar este proyecto debe ejecutar el archivo ./main.py
, se debe especificar si el input sera un archivo de la carpeta ./input o sera entrada por consola, se van a generar dos cosas.
-
La primera es una salida en consola con la traducción obtenida a el lenguaje
Python
-
La segunda es un archivo llamado
./output.py
el cual tambien contiene la traducción del archivo pero este es el archivo de salida listo para su ejecucción.
- Joe Zafir Méndez León
- Juan Diego
- Juan Pablo Garzon Parra