-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathArchivo.py
142 lines (139 loc) · 5.36 KB
/
Archivo.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
from tkinter import Tk, filedialog
import AFD2
import graph
import gramatica2 as gram
import os
nombre=""
def ADFarch():
global nombre
ls =Tk()
ls.title("Archivo AFD")
ls.filename = filedialog.askopenfilename(initialdir="c:/Desktop",title="seleccionar Archivo",filetypes=(("afd files","*.afd"),("all files","*.*")))
ls.mainloop()
archivo1 = open(ls.filename,"r")
text= os.path.splitext(ls.filename)
text1= text[0].split("/")
for i in range(len(text1)):
x=len(text1)
if x-1==i:
nombre=text1[i]
t=0
for obten in archivo1.readlines():
if t==0:
AFD2.pedirnombre(nombre)
estado=obten.split(";")
estado1=estado[0].split(",")
print(estado1)
AFD2.estados(estado1[0])
AFD2.estados(estado1[1])
AFD2.alfabetos(estado1[2])
AFD2.inicialstate(estado1[0])
salto=estado[1] .split("\n")
bandera=salto[0].split(",")
if bandera[0]=='true':
AFD2.finalstate(estado1[0])
elif bandera[1]=='true':
AFD2.finalstate(estado1[1])
AFD2.modo1(''+estado1[0]+','+estado1[1]+';'+estado1[2])
else:
#AFD2.pedirnombre(nombre)
estado=obten.split(";")
estado1=estado[0].split(",")
print(estado1)
AFD2.estados(estado1[0])
AFD2.estados(estado1[1])
AFD2.alfabetos(estado1[2])
#AFD2.inicialstate(estado1[0])
salto=estado[1] .split("\n")
bandera=salto[0].split(",")
if bandera[0]=='true':
AFD2.finalstate(estado1[0])
elif bandera[1]=='true':
AFD2.finalstate(estado1[1])
AFD2.modo1(''+estado1[0]+','+estado1[1]+';'+estado1[2])
t+=1
text=AFD2.dfagraph+AFD2.auxiliar1+AFD2.auxdfagraph+"}"
graph.grafic(text,nombre)
def arcgram():
global nombre
ls =Tk()
ls.title("Archivo Gramatica")
ls.filename = filedialog.askopenfilename(initialdir="c:/Desktop",title="seleccionar Archivo",filetypes=(("grm files","*.grm"),("all files","*.*")))
ls.mainloop()
archivo1 = open(ls.filename,"r")
text= os.path.splitext(ls.filename)
text1= text[0].split("/")
for i in range(len(text1)):
x=len(text1)
if x-1==i:
nombre=text1[i]
z=0
for obten in archivo1.readlines():
letra=obten.split(">") #una letra del estado de la gramtica
letras=obten.split("\n")
#nueva=letra[1].replace("", ",")
letra1=letra[1].split("\n")
letra2=letra1[0].split(" ")#1,2
prin=letra[0].split(" ")#0
tamaño= int(len(letra2))
if tamaño==3:
if letra2[2].isupper() or letra2[2]=='epsilon' :
if z==0:
gram.pedirnombre(nombre)
gram.estados(prin[0])
gram.estados(letra2[2])
gram.alfabetos(letra2[1])
gram.inicialstate(prin[0])
gram.producciones(''+prin[0]+' > '+letra2[1]+''+letra2[2],letras[0])
else:
#gram.pedirnombre(nombre)
gram.estados(prin[0])
gram.estados(letra2[2])
gram.alfabetos(letra2[1])
#gram.inicialstate(prin[0])
gram.producciones(''+prin[0]+' > '+letra2[1]+''+letra2[2],letras[0])
print(prin)
elif letra2[1].isupper() or letra2[1]=='epsilon':
if z==0:
gram.pedirnombre(nombre)
gram.estados(prin[0])
gram.estados(letra2[1])
gram.alfabetos(letra2[2])
gram.inicialstate(prin[0])
gram.producciones(''+prin[0]+' > '+letra2[2]+''+letra2[1],letras[0])
else:
#gram.pedirnombre(nombre)
gram.estados(prin[0])
gram.estados(letra2[1])
gram.alfabetos(letra2[2])
#gram.inicialstate(prin[0])
gram.producciones(''+prin[0]+' > '+letra2[2]+''+letra2[1],letras[0])
else:
#gram.pedirnombre(nombre)
gram.estados(prin[0])
#gram.estados(letra2[1])
#gram.alfabetos(letra2[2])
#gram.inicialstate(prin[0])
gram.producciones(''+prin[0]+' > epsilon',letras[0])
print(letra2[1])
z+=1
def menuarchivo():
import menu
op = 0
while op != 4:
print("=========================================================")
print("=\t\t 1. Archivo AFD\t\t\t=")
print("=\t\t 2. Archivo Gramatica\t\t\t=")
print("=\t\t 3. Menu Principal\t\t\t=")
print("=========================================================")
op = str(input("Elige una opcion:\n"))
if op == '1' :
ADFarch()
break
elif op == '2' :
arcgram()
break
elif op == '3':
menu.prueba()
else:
menuarchivo()