Next: Completed and expected symbol instances, Previous: Nulled and expected 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_PREDICTED
event at the same location.
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_PREDICTED
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_PREDICTED
must start at j
.
That is, if the
MARPA_EVENT_SYMBOL_COMPLETED
symbol instance is
sym
@c1
-c2
and the
MARPA_EVENT_SYMBOL_PREDICTED
symbol instance is
sym
@p1
-p2
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=p1
, because the
MARPA_EVENT_SYMBOL_PREDICTED
symbol instance must start at
j
.
so that c1 < p1
and
the two instances
sym
@c1
-c2
and
sym
@p1
-p2
must be distinct.