summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 ) ]