5. A method for parsing an arbitrary input stream, comprising: (a) receiving, from a telecommunication device, an input stream, the input stream comprising information defined by at least first and second input structures; (b) providing, by a processor executable parser selection agent and substantially simultaneously, a common portion of the input stream to each of a plurality of processor executable parsers, the plurality of processor executable parsers corresponding to differing sets of grammars; (c) receiving, by the processor executable parser selection agent, output from each of the plurality of processor executable parsers; (d) based on the plurality of outputs of the plurality of processor executable parsers: (i) in a first mode selecting, by the processor executable parser selection agent, a first output from a first processor executable parser that corresponds to the first input structure and a second output from a second parser that corresponds to the second input structure; and (ii) in a second mode, selecting, by the processor executable parser selection agent, a first processor executable parser corresponding to the first input structure to parse one or more first segments of the input stream and a second processor executable parser corresponding to the second input structure to parse one or more second segments of the input stream; and (e) converting a first parser output from the plurality of processor executable parsers into a second parser output corresponding to a common grammar.
12. The method of claim 5 , wherein the first processor executable parser produces a first output and the first output is a parse tree and further comprising: recursively evaluating at least some of the nodes in the parse tree to identify nodes requiring additional parsing.