summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorptmcg <ptmcg@9bf210a0-9d2d-494c-87cf-cfb32e7dff7b>2016-08-11 07:55:00 +0000
committerptmcg <ptmcg@9bf210a0-9d2d-494c-87cf-cfb32e7dff7b>2016-08-11 07:55:00 +0000
commit9851b10bd83a68b99f0ef9238171b27746729252 (patch)
treeef62563abbba9b202c9dfc560deac33db3bc290c
parent72aebb41c1bf060bb9356a609e2a521fc4601787 (diff)
downloadpyparsing-9851b10bd83a68b99f0ef9238171b27746729252.tar.gz
Undo removal of generator handling
git-svn-id: svn://svn.code.sf.net/p/pyparsing/code/trunk@408 9bf210a0-9d2d-494c-87cf-cfb32e7dff7b
-rw-r--r--src/pyparsing.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/pyparsing.py b/src/pyparsing.py
index 0e1e4e8..b335f95 100644
--- a/src/pyparsing.py
+++ b/src/pyparsing.py
@@ -153,6 +153,8 @@ else:
singleArgBuiltins.append(getattr(__builtin__,fname))
except AttributeError:
continue
+
+_generatorType = type((y for y in range(1)))
def _xml_escape(data):
"""Escape &, <, >, ", ', etc. in a string of data."""
@@ -349,7 +351,7 @@ class ParseResults(object):
toklist = []
if isinstance(toklist, list):
self.__toklist = toklist[:]
- elif isinstance(toklist, collections.Iterable):
+ elif isinstance(toklist, _generatorType):
self.__toklist = list(toklist)
else:
self.__toklist = [toklist]
@@ -3085,6 +3087,8 @@ class ParseExpression(ParserElement):
"""
def __init__( self, exprs, savelist = False ):
super(ParseExpression,self).__init__(savelist)
+ if isinstance( exprs, _generatorType ):
+ exprs = list(exprs)
if isinstance( exprs, basestring ):
self.exprs = [ ParserElement._literalStringClass( exprs ) ]