Next: Predicted and expected symbol instances, Previous: Completed and predicted symbol instances, Up: Event coincidence of symbol instances [Contents][Index]
A symbol instance cannot trigger both
a MARPA_EVENT_SYMBOL_COMPLETED
and a MARPA_EVENT_SYMBOL_EXPECTED
event at the same location.
The reasoning is much the same as for the
case of MARPA_EVENT_SYMBOL_COMPLETED
and MARPA_EVENT_SYMBOL_PREDICTED events.
See Completed and predicted symbol instances.
Call the location, j.
Coincident events with the types
MARPA_EVENT_SYMBOL_COMPLETED
and MARPA_EVENT_SYMBOL_PREDICTED
cannot be triggered by a single symbol instance
because the symbol instances
for MARPA_EVENT_SYMBOL_COMPLETED
and MARPA_EVENT_SYMBOL_EXPECTED
cannot be zero-length;
the symbol instance for the MARPA_EVENT_SYMBOL_COMPLETED
must end at j; and
the symbol instance for the MARPA_EVENT_SYMBOL_EXPECTED
must start at j.
That is, if the
MARPA_EVENT_SYMBOL_COMPLETED symbol instance is
sym@c1-c2
and the
MARPA_EVENT_SYMBOL_EXPECTED symbol instance is
sym@e1-e2
we must have all of
c1<c2, because the length of
MARPA_EVENT_SYMBOL_COMPLETED symbol instance is non-zero;
c2=j, because the
MARPA_EVENT_SYMBOL_COMPLETED symbol instance must end at
j; and
j=e1, because the
MARPA_EVENT_SYMBOL_EXPECTED symbol instance must start at
j.
so that c1 < e1 and
the two instances
sym@c1-c2 and
sym@e1-e2
must be distinct.