[] --> [a].are implementation dependent. However, such a definition, should it be accepted to be prepared for execution, must in no way influence the meaning of a grammar. Conversely: An implementation that changes its meaning by such a definition is not conforming.
{G}
first, only then can G
be used.
a --> [_|_].is implementation dependent.
?- phrase([a,b],[c|S],S).this is currently STO. Note that also
?- [a,b|S] = [c|S].is STO! Some "sequencing" is necessary should this be made NSTO.