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.