Ya estoy harto de estar desvelandome todos los días, son las 2:45am y tengo que entregar un analizador sintáctico a las 9am y presentar un exámen a las 10am.

Pero bueno encontré algo fantástico en [el más fantástico aún] python, un módulo llamado pyparsing, el cual es una biblioteca de funciones extremadamente potente, me encantó esta herramienta, pero bueno hagamos el archi requete famosísimo “Hola, Mundo!”:

#importamos el modulo
from pyparsing import *
saludo= Word(alphas) + ‘,’ + Word(alphas) + ‘!’
#Aqui decimos que la gramatica “saludo” DEBE contener una palabra compuesta de caracteres alfanumericos (Word(alphas)) mas una ‘,’ mas otra palabra alfanumerica, mas ‘,’ y esos seian nuestros tokens
tokens = saludo.parseString(”Hola, Mundo !”)
#Ahora parseamos una cadena, “Hola, Mundo!”, el metodo parseString, nos devuelve una lista con los tokens encontrados, en caso de no haber errores…
for i in range(len(tokens)):
print “Token %d -> %s” % (i,tokens[i]) #imprimimos cada uno de los tokens

Y listooo!!, he aquí la salida


Token 0—> Hola
Token 1—> ,
Token 2—> Mundo
Token 3—> !

Por supuesto, se pueden “reutilizar” gramáticas, por ejemplo:


numimag = Word(nums) + 'i'
numreal = Word(nums)
numcomplex = numreal + numimag
numcomplex.parseString("3+5i")

Excelente!!, bueno, los dejo, me voy a seguir tirando código…

Salu2

本文地址 : http://marcoalfonso.net/2004/11/04/vooooy-desveladooo/
如果你对本文感兴趣,欢迎订阅我的博客

One Response so far

You can leave a response or Trackback this entry .
  1. Paul McGuire Says:

    Su ejemplo para procesar “Hola, Mundo!” me gusta mucho! Permiteme usarlo como ejemplo en la proxima distribucion de pyparsing?

    – Paul McGuire
    (Lo siento para mi espanol pobre - hace muchos anos que lo estudie.)

Leave a Reply