diff options
author | Paul McGuire <ptmcg@austin.rr.com> | 2018-12-23 22:00:11 -0600 |
---|---|---|
committer | Paul McGuire <ptmcg@austin.rr.com> | 2018-12-23 22:00:11 -0600 |
commit | 40deba322583925ad62d0afe2333b9301964ab69 (patch) | |
tree | dd5a51cb83c89200e632fb660f34d60fcdc3004c | |
parent | 4fba64a079016e6ea62d041f19b7eadd081341e8 (diff) | |
download | pyparsing-git-40deba322583925ad62d0afe2333b9301964ab69.tar.gz |
Merge changes from last PR, plus some more up-to-date coding styles and pyparsing features
-rw-r--r-- | examples/holaMundo.py | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/examples/holaMundo.py b/examples/holaMundo.py index 93dd881..b24733e 100644 --- a/examples/holaMundo.py +++ b/examples/holaMundo.py @@ -2,21 +2,24 @@ # escrito por Marco Alfonso, 2004 Noviembre
-# importamos el modulo
-from pyparsing import *
-saludo= Word(alphas) + ',' + Word(alphas) + '!'
+# importamos los símbolos requeridos desde el módulo
+from pyparsing import Word, alphas, oneOf, pyparsing_unicode, nums, Group, OneOrMore
+
+# usamos las letras en latin1, que incluye las como 'ñ', 'á', 'é', etc.
+alphas = pyparsing_unicode.Latin1.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
+saludo = Word(alphas) + ',' + Word(alphas) + oneOf('! . ?')
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]))
+for i, token in enumerate(tokens):
+ print ("Token %d -> %s" % (i,token))
#imprimimos cada uno de los tokens Y listooo!!, he aquí a salida
# Token 0 -> Hola
@@ -24,6 +27,19 @@ for i in range(len(tokens)): # Token 2-> Mundo
# Token 3 -> !
+# ahora cambia el parseador, aceptando saludos con mas que una sola palabra antes que ','
+saludo = Group(OneOrMore(Word(alphas))) + ',' + Word(alphas) + oneOf('! . ?')
+tokens = saludo.parseString("Hasta mañana, Mundo !")
+
+for i, token in enumerate(tokens):
+ print ("Token %d -> %s" % (i,token))
+
+# Ahora parseamos algunas cadenas, usando el metodo runTests
+saludo.runTests("""\
+ Hola, Mundo!
+ Hasta mañana, Mundo !
+""", fullDump=False)
+
# Por supuesto, se pueden "reutilizar" gramáticas, por ejemplo:
numimag = Word(nums) + 'i'
numreal = Word(nums)
|