1. A method for use in a computer system for creating a doubly-rooted tree data structure and storing information representing a source code program in the data structure comprising the computer implemented steps of: retrieving a set of objects from a memory, the methods representing portions of a source code program; identifying a first set of hierarchical relationships among the objects, yielding syntactic constructs; scanning the syntactic constructs into virtual source; storing the syntactic constructs in a first tree by top down means in depth-first traversal order in accordance with the first set of hierarchical relationships so that the first tree terminates at the virtual source; identifying a second set of hierarchical relationships among the objects; storing the objects in a second tree by bottom up means in depth-first traversal order in accordance with the second set of hierarchical relationships so that the second tree terminates at the virtual source.
2. The method of claim 1 wherein the method of identifying the first set of hierarchical relationships among the objects comprises: a virtual source production mechanisms including: (a) scanning the objects into tokens; (b) recognizing a set of tokens which represent an invocation expression for text substitution; (c) associating the expression with one or more nodes; (d) performing text substitution as represented by the invocation expression; (e) repeating steps (b), (c), and (d) until the tokens are exhausted, yielding the syntactic constructs.