richard <pullenjenn...@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. -- http://mail.python.org/mailman/listinfo/python-list