Analisador lexico
Enviado por Ezzio Auditore • 10 de Septiembre de 2015 • Tarea • 710 Palabras (3 Páginas) • 174 Visitas
def agregar(aux,r,s):
if aux!='':
r.append(aux)
r.append(s)
return r
def identificar(cadena):
s=list(cadena)
r=[]
aux=''
for i in range(0,len(s)):
if chr(40)==s[i]: #parentesis de apertura
r=agregar(aux,r,s[i])
aux=''
elif chr(41)==s[i]:
## x='Parentesis de cierre'
r=agregar(aux,r,s[i])
aux=''
elif chr(91)==s[i]:
## x='Corchete de apertura'
r=agregar(aux,r,s[i])
aux=''
elif chr(93)==s[i]:
## x='Corchete de cierre'
r=agregar(aux,r,s[i])
aux=''
elif chr(123)==s[i]:
## x='Llvae de apertura'
r=agregar(aux,r,s[i])
aux=''
elif chr(125)==s[i]:
## x='Llave de cierre'
r=agregar(aux,r,s[i])
aux=''
elif chr(43)==s[i]:
## x='operador suma'
r=agregar(aux,r,s[i])
aux=''
elif chr(45)==s[i]:
## x='operador resta'
r=agregar(aux,r,s[i])
aux=''
elif chr(42)==s[i]:
## x='operador multiplicacion'
r=agregar(aux,r,s[i])
aux=''
elif chr(47)==s[i]:
## x='operador division'
r=agregar(aux,r,s[i])
aux=''
elif chr(34)==s[i]:
## x='operador potencia'
r=agregar(aux,r,s[i])
aux=''
elif chr(38)==s[i]:
## x='operador raiz cuadrada'
r=agregar(aux,r,s[i])
aux=''
else:
try:
v=int(s[i])
aux+=s[i]
except ValueError:
print('Esto no es valido',s[i])
if aux!='':
r.append(aux)
return 'Sus caracteres validos son:',r
p=input(str('Dame una cadena:'))
al=identificar(p)
print(al)
...