analizador con el yapps (solucion completa gracias a Chema ;D)

Attila Saorin mostroratas en yahoo.es
Mie Ago 21 20:09:39 CEST 2002


 --- Chema Cortes <chemacortes en wanadoo.es> escribió: 
> No tengo mucha idea, pero tu problema con los ANDs/ORs/NOTs te viene por cumplirse antes la
> regla TERM (con lo que "and", "or" y "not" se considerarán como tokens). Cambia el orden y ya
> dirás si funciona.

Joder, pues para no tener mucha idea, has dicho lo mas logico y claro, funciona y yo probando
chorradas, no hay nada como pensar logicamente o leerse bien la doc, claro que con el calor y el
ingles a veces alguno ya no se entera :)

Pues nada, ya funciona del todo, gracias Chema, asi que ha quedado asi (solo he cambiado lo del
ppio que decia Chema y he aniadido los dos variantes):

parser BoolOp:
    option :    "context-insensitive-scanner"
    ignore :    "[ \t\n\r]"
    token END:  "\\'"
    token AND:  "and\\|&"
    token OR:   "or\\||"
    token NOT:  "not\\|!"
    token TERM: '[a-zA-Z][a-zA-Z_0-9]*'

y va como un fenomeno el chavalin :D

aqui teneis unos ejemplitos de lo mismo escrito de las dos formas y con el mismo resultado:

>>> predc.parse('expr','linux & ! www')
"And(Terminal('linux'),Not(Terminal('www')))"
>>> predc.parse('expr','linux and not www')
"And(Terminal('linux'),Not(Terminal('www')))"
>>> predc.parse('expr','linux or (sun and (not www))')
"Or(Terminal('linux'),And(Terminal('sun'),Not(Terminal('www'))))"
>>> predc.parse('expr','linux|(sun&(!www))')
"Or(Terminal('linux'),And(Terminal('sun'),Not(Terminal('www'))))"
>>> predc.parse('expr','(sun&(!www))&pc')
"And(And(Terminal('sun'),Not(Terminal('www'))),Terminal('pc'))"
>>> predc.parse('expr','(sun and(not www))and pc')
"And(And(Terminal('sun'),Not(Terminal('www'))),Terminal('pc'))"
>>> predc.parse('expr','(sun and(! www))& pc')
"And(And(Terminal('sun'),Not(Terminal('www'))),Terminal('pc'))"
>>> 

ademas claro, como en el ultimo, se pueden combinar :)
 
> Si lo dices por todo el rollo del "intern", también te puedo decir que en cambio yo no tengo
> casi ni idea de lo que estás preguntando. Pero al menos conozco a alguien por aquí al que se le
> puede preguntar si algún día me hiciera falta ;-)

NO, lo del intern lo veo y lo entiendo, las cosas de compiladores y aprovechamiento o posiciones
de memoria es algo que comprendo, al menos hay algo ;) no, para mi, las ciencias ocultas es lo de
TKinter, Glade, Boa y demas cosas de GUI o aplicaciones varias, y ya cuando juntais tres, lo
flipo, como se podra juntar todo eso a la vez. Que yo solo tengo el linux instalado en plan
usuario para las practicas de la escuela y pq siempre me digo que un dia quiero trastear a fondo,
pero nunca lo hago, asi que obviamente, muchos de esos nombres y acronimos me suenan muy extranios
:(

> Saludos,

Tb. saludos y gracias :)

> Chema Cortes (chemacortes en wanadoo.es)

Attila


_______________________________________________________________
Yahoo! Messenger
Nueva versión: Webcam, voz, y mucho más ¡Gratis! 
Descárgalo ya desde http://messenger.yahoo.es


Más información sobre la lista de distribución Python-es