Help needed with nested parsing of file into objects

Alain Ketterlin alain at dpt-info.u-strasbg.fr
Tue Jun 5 17:33:03 EDT 2012


richard <pullenjenna10 at gmail.com> writes:

>> > An instance of TestArray
>> >  a=a
>> >  b=b
>> >  c=c
>> >  List of 2 A elements:
>> >   Instance of A element
>> >    a=1
>> >    b=2
>> >    c=3
>> >   Instance of A element
>> >    d=1
>> >    e=2
>> >    f=3
>> >  List of 1 B elements
>> >   Instance of B element
>> >    a=1
>> >    b=2
>> >    c=3
>> >    List of 2 C elements
>> >     Instance of C element
>> >      a=1
>> >      b=2
>> >      c=3
>> >     Instance of C element
>> >      a=1
>> >      b=2
>> >      c=3
[...]

> Hi Alain thanks for the reply. With regards to the missing case "An
> Instance of" im not sure where/ how that is working as the case i put
> in originally "Instance of" is in the file and been handled in the
> previous case.

Both cases are different in your example above. Top level elements are
labeled "An instance ...", whereas "inner" instances are labeled
"Instance of ...".

> Also when running the final solution im getting a list of [None, None]
> as the final stack?

There's only one way this can happen: by falling through to the last
case of build(). Check the regexps etc. again.

> just busy debugging it to see whats going wrong. But sorry should have
> been clearer with regards to the format mentioned above. The objects
> are been printed out as dicts so where you put in
>
>         elif "An Instance of" in couple[0]:
>             return dict(couple[1])
>
>         should still be ?
>         elif "Instance of" in couple[0]:
>             match = re.search("Instance of (.+) element", couple[0])
>             return ("attr_%s" % match.group(1),Stanza(couple[1])) #
> instantiating new stanza object and setting attributes.

Your last "Instance of..." case is correct, but "An instance..." is
different, because there's no containing object, so it's probably more
like: return Stanza(couple[1]).

-- Alain.



More information about the Python-list mailing list