@@ -33,13 +33,13 @@ def parse():
3333 sys .exit (1 )
3434 if opts .treebuilder is not None :
3535 try :
36- #This isn't a great way to do this
37- exec ("import treebuilders.%s" )% opts .treebuilder .split ("." )[0 ]
38- treebuilder = eval ("treebuilders.%s" % opts .treebuilder )
39- except NameError :
40- print "Treebuilder %s not found" % opts .treebuilder
36+ treebuilder = __import__ ("treebuilders." + opts .treebuilder ,
37+ None ,None ,"treebuilders" ).TreeBuilder
38+ except ImportError , name :
39+ print "Treebuilder %s not found" % name
4140 raise
42- except :
41+ except Exception , foo :
42+ import treebuilders .simpletree
4343 treebuilder = treebuilders .simpletree .TreeBuilder
4444 else :
4545 import treebuilders .simpletree
@@ -63,14 +63,20 @@ def parse():
6363 t0 = time .time ()
6464 document = p .parse (f )
6565 t1 = time .time ()
66- print p .tree .testSerializer (document )
66+ if opts .xml :
67+ print document .toxml ('utf-8' )
68+ else :
69+ print p .tree .testSerializer (document ).encode ("utf-8" )
6770 if opts .error :
6871 print "\n Parse errors:\n " + "\n " .join (p .errors )
6972 t2 = time .time ()
7073 print "\n \n Run took: %fs (plus %fs to print the output)" % (t1 - t0 , t2 - t1 )
7174 else :
7275 document = p .parse (f )
73- print p .tree .testSerializer (document ).encode ("utf-8" )
76+ if opts .xml :
77+ print document .toxml ('utf-8' )
78+ else :
79+ print p .tree .testSerializer (document ).encode ("utf-8" )
7480 if opts .error :
7581 print "\n Parse errors:\n " + "\n " .join (p .errors )
7682
@@ -91,6 +97,9 @@ def getOptParser():
9197 parser .add_option ("-e" , "--error" , action = "store_true" , default = False ,
9298 dest = "error" , help = "Print a list of parse errors" )
9399
100+ parser .add_option ("-x" , "--xml" , action = "store_true" , default = False ,
101+ dest = "xml" , help = "output as xml" )
102+
94103 return parser
95104
96105if __name__ == "__main__" :
0 commit comments