Skip to content

Commit 11e8ffd

Browse files
committed
[ADD] entrega 1
1 parent 53da012 commit 11e8ffd

File tree

5 files changed

+46
-24
lines changed

5 files changed

+46
-24
lines changed

compilador/src/main.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
import view.vista_principal as v
22
import flet as ft
3-
def main():
3+
from services.analizador_lexico import lexico as l
4+
5+
def main():
46
ft.app(v.vista)
57

68

9+
710
if __name__ == "__main__":
811
main()

compilador/src/resources/prueba.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
1-
import java.util.Scanner;
2-
31
public class prueba {
42
private int numero = 5;
3+
private String cadena = "hola mundo";
54
public static void main(String[] args) {
6-
Scanner scan = new Scanner(System.in);
7-
int num = scan.nextInt();
8-
System.out.println(num);
9-
System.out.println("Hola mundo!");
5+
int numero2 = 10;
6+
float numero3 = 10.3f;
107
}
118
}

compilador/src/resources/prueba2.txt renamed to compilador/src/resources/prueba2.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import java.util.Scanner;
22

3-
public class prueba {
4-
private int numero = 5;
3+
public class prueba2 {
54
public static void main(String[] args) {
65
Scanner scan = new Scanner(System.in);
76
int num = scan.nextInt();

compilador/src/services/analizador_lexico/lexico.py

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ def t_DIFERENTE_DE(t):
181181
def t_error(t):
182182
print("Error: caracter desconocido '%s'" % t.value[0])
183183
t.lexer.skip(1)
184-
184+
return "".join("Error: caracter desconocido '%s'" % t.value[0])
185185
t_ignore = ' \t\n'
186186

187187
Programa = """
@@ -202,12 +202,14 @@ def t_error(t):
202202
}
203203
"""
204204

205-
lexer = lex.lex()
206-
207-
lexer.input(Programa)
208-
209-
while True:
210-
token = lexer.token()
211-
if not token:
212-
break
213-
print(token)
205+
def analizador_lexico(programa:str)->str:
206+
analisis = []
207+
lexer = lex.lex()
208+
lexer.input(programa)
209+
210+
while True:
211+
token = lexer.token()
212+
if not token:
213+
break
214+
analisis.append(str(token)+"\n")
215+
return "".join(analisis)

compilador/src/view/vista_principal.py

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,22 @@
11
import flet as ft
22
import os
33
import services.lectura_fichero as lf
4+
import services.analizador_lexico.lexico as al
5+
46
class vista:
57
def __init__(self,page:ft.Page) -> None:
68
self.page = page
79
# self.text = ft.TextField(width=200,height=200,multiline=True)
810
# self.table = ft.DataTable(columns=[ft.Text("1"),ft.Text("2")])
11+
#ventanas emergentes:
12+
self.pick_files_dialog = ft.FilePicker(on_result=self.pick_files_result)
13+
self.selected_files = ft.Text("hola")
914
#Botones :
1015
self.btn_dec_asig = ft.ElevatedButton(text="Declaración y asignación",width=250,on_click=self.action_btn_dec_asig)
1116
self.btn_io= ft.ElevatedButton("IO",width=250,on_click=self.action_btn_io)
1217
self.btn_lexico = ft.ElevatedButton("Analisis Lexico",width=250,on_click=self.action_analisis_lexico)
1318
self.btn_borrar = ft.ElevatedButton("Borrar",width=250,on_click=self.action_borrar)
14-
self.btn_archivo = ft.ElevatedButton("Cargar archivo",width=250,on_click=self.action_carga_archivo)
19+
self.btn_archivo = ft.ElevatedButton("Cargar archivo",width=250,icon=ft.icons.UPLOAD_FILE,on_click=lambda _:self.pick_files_dialog.pick_files(allow_multiple=False))
1520

1621

1722
#TextAreas
@@ -67,25 +72,41 @@ def main(self) -> None:
6772
)
6873
)
6974
self.page.title = "Analizador lexico"
75+
self.page.overlay.append(self.pick_files_dialog)
76+
self.page.add(self.selected_files)
7077
self.page.update()
71-
78+
7279
#funciones de eventos ----------------------------------------------------------
73-
80+
def pick_files_result(self,e: ft.FilePickerResultEvent):
81+
nuevo_archivo = ("".join(map(lambda f: f.path,e.files)) if e.files else "No hay archivo")
82+
self.action_carga_archivo(nuevo_archivo)
83+
7484
def action_btn_dec_asig(self,e)->None:
75-
res = lf.leer_fichero("src/resources/prueba2.txt")
85+
res = lf.leer_fichero("src/resources/prueba.java")
7686
self.text_input.value = res
7787
self.page.update()
88+
7889
def action_btn_io(self,e)->None:
90+
res = lf.leer_fichero("src/resources/prueba2.java")
91+
self.text_input.value = res
92+
self.page.update()
7993
print("IO")
8094

8195
def action_analisis_lexico(self,e)->None:
8296
print("analisis lexico")
97+
self.text_output.value = al.analizador_lexico(self.text_input.value)
98+
self.page.update()
8399

84100
def action_borrar(self,e)->None:
101+
self.text_input.value = ""
102+
self.text_output.value = ""
103+
self.page.update()
85104
print("borrar")
86105

87-
def action_carga_archivo(self,e)->None:
106+
def action_carga_archivo(self,path:str)->None:
88107
print("carga archivo")
108+
self.text_input.value = lf.leer_fichero(path)
109+
self.page.update()
89110
#fin fucniones de eventos ------------------------------------------------------------
90111

91112

0 commit comments

Comments
 (0)