31. For a more complete set of results, a more complicated object such as a parse tree must be returned. 32. Its total time scales up linearly with the length of the input and the size of the complete parse tree . 33. The parser builds up the parse tree incrementally, bottom up, and left to right, without guessing or backtracking. 34. This parse tree can be used to perform almost all functions of a compiler by means of syntax-directed translation. 35. Whether the additional syntactic structure associated with constituency-based parse trees is necessary or beneficial is a matter of debate. 36. The parse tree is also more suitable for supporting automated code refactoring, as it directly represents the original source code. 37. The building of an abstract syntax tree and unparse rules allowed local optimizations to be performed by analyzing the parse tree . 38. There are no parse trees or other required intermediate program forms, and no loop-wide or procedure-wide optimizations. 39. The parse tree was more complicated, with dozens of node types, because it was designed for cross-language support. 40. When executed, the bytecode generated by PGE will parse text as described in the input rules, generating a parse tree .