class documentation

A rule that joins a given edge with adjacent edges in the chart, to form combined edges. In particular, this rule specifies that either of the edges:

  • [A -> alpha \* B beta][i:j]
  • [B -> gamma \*][j:k]

licenses the edge:

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

if the other edge is already in the chart.

Note
This is basically FundamentalRule, with one edge left unspecified.
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.
Constant NUM_EDGES Undocumented
Method _apply_complete Undocumented
Method _apply_incomplete Undocumented

Inherited from AbstractChartRule (via FundamentalRule):

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
NUM_EDGES: int = (source)

Undocumented

Value
1
def _apply_complete(self, chart, grammar, right_edge): (source)