<s> commentdb = { <EOL> '<STR_LIT:foo>' : { <EOL> '<STR_LIT:text>' : '<STR_LIT:foo>' , <EOL> '<STR_LIT>' : [ '<STR_LIT:bar>' , '<STR_LIT>' ] , <EOL> } , <EOL> '<STR_LIT:bar>' : { <EOL> '<STR_LIT:text>' : '<STR_LIT:bar>' , <EOL> '<STR_LIT>' : [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> } , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT:text>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ ] , <EOL> } , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT:text>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ '<STR_LIT>' , ] , <EOL> } , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT:text>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ ] , <EOL> } , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT:text>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ ] , <EOL> } , <EOL> } <EOL> def buildtree ( master ) : <EOL> '''<STR_LIT>''' <EOL> tree = [ master [ '<STR_LIT:text>' ] , ] <EOL> def expandchildren ( commenttoexpand ) : <EOL> '''<STR_LIT>''' <EOL> for childcomment in commenttoexpand [ '<STR_LIT>' ] : <EOL> tree . append ( childcomment ) <EOL> if len ( commentdb [ childcomment ] [ '<STR_LIT>' ] ) : <EOL> tree . append ( '<STR_LIT>' ) <EOL> expandchildren ( commentdb [ childcomment ] ) <EOL> tree . append ( '<STR_LIT>' ) <EOL> expandchildren ( master ) <EOL> return tree <EOL> print buildtree ( commentdb [ '<STR_LIT:foo>' ] ) </s>
