20. A parser for generating a parse tree data structure for an input segment, comprising: a component for determining syntax rules that are applicable to records currently in a chart for the input segment and for storing an indication of each determined syntax rule in a list; a rule application component for selecting a syntax rule indicated by the list and applying the syntax rule to the records currently in the chart; and a thrashing detection component for determining whether thrashing is occurring and for adjusting the selecting of syntax rules so that syntax rules are applied to certain portions of the input segment.
20. A parser for generating a parse tree data structure for an input segment, comprising: a component for determining syntax rules that are applicable to records currently in a chart for the input segment and for storing an indication of each determined syntax rule in a list; a rule application component for selecting a syntax rule indicated by the list and applying the syntax rule to the records currently in the chart; and a thrashing detection component for determining whether thrashing is occurring and for adjusting the selecting of syntax rules so that syntax rules are applied to certain portions of the input segment. 22. The parser of claim 20 wherein the thrashing detection component determines that thrashing is occurring when syntax rules with low probabilities of leading to a complete syntax tree are being applied.