class documentation

A specialized version of the (cached) top down predict rule that operates on nonterminals whose symbols are ``FeatStructNonterminal``s. Rather than simply comparing the nonterminals for equality, they are unified.

The top down expand rule states that:

  • [A -> alpha \* B1 beta][i:j]

licenses the edge:

  • [B2 -> \* gamma][j:j]

for each grammar production B2 -> gamma, assuming that B1 and B2 can be unified.

Method apply Return a generator that will add edges licensed by this rule and the given edges to the chart, one at a time. Each time the generator is resumed, it will either add a new edge and yield that edge; or return.

Inherited from CachedTopDownPredictRule:

Method __init__ Undocumented
Instance Variable _done Undocumented

Inherited from TopDownPredictRule (via CachedTopDownPredictRule):

Constant NUM_EDGES Undocumented

Inherited from AbstractChartRule (via CachedTopDownPredictRule, TopDownPredictRule):

Method __str__ Undocumented
Method apply_everywhere Return a generator that will add all edges licensed by this rule, given the edges that are currently in the chart, one at a time. Each time the generator is resumed, it will either add a new edge and yield that edge; or return.
def apply(self, chart, grammar, edge): (source) ΒΆ

Return a generator that will add edges licensed by this rule and the given edges to the chart, one at a time. Each time the generator is resumed, it will either add a new edge and yield that edge; or return.

Parameters
chartUndocumented
grammarUndocumented
edgeUndocumented
*edges:list(EdgeI)A set of existing edges. The number of edges that should be passed to apply() is specified by the NUM_EDGES class variable.
Returns
iter(EdgeI)Undocumented