En Fri, 12 Feb 2010 10:41:40 -0300, Eknath Venkataramani <eknath.i...@gmail.com> escribió:

I am trying to write a parser in pyparsing.
Help Me. http://paste.pocoo.org/show/177078/ is the code and this is input
file: http://paste.pocoo.org/show/177076/ .
I get output as:
<generator object at 0xb723b80c>

There is nothing wrong with pyparsing here. scanString() returns a generator, like this:

py> g = (x for x in range(20) if x % 3 == 1)
py> g
<generator object <genexpr> at 0x00E50D78>

A generator is like a function that may be suspended and restarted. It yields one value at a time, and only runs when you ask for the next value:

py> next(g)
1
py> next(g)
4

You may use a `for` loop to consume the generator:

py> for i in g:
...   print i
...
7
10
13
16
19

Once it run to exhaustion, asking for more elements always raises StopIteration:

py> next(g)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration

Try something like this:

results = x.scanString(filedata)
for result in results:
    print result

See http://docs.python.org/tutorial/classes.html#generators

--
Gabriel Genellina

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to