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
|
# -*- coding: UTF-8 -*-
# escrito por Marco Alfonso, 2004 Noviembre
# 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í a 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
print (numcomplex.parseString("3+5i"))
# Cambiar a complejo numero durante parsear:
numcomplex.setParseAction(lambda t: complex(''.join(t).replace('i','j')))
print (numcomplex.parseString("3+5i"))
# Excelente!!, bueno, los dejo, me voy a seguir tirando código...
|