Reserved Line Prefixes

It’s important for reseq to be able to process its input
correctly, even if that output came from a different version of
teseq than reseq is familiar with. So, it’s
important that reseq should refuse to continue processing
input if it encounters a line that it doesn’t recognize, but which
might contain important semantic information that effects the output
reseq should produce.

At the same time, it’d be a shame for reseq to refuse to
process a line it doesn’t understand, if that line contains
non-critical information. For example, consider delay lines (beginning
with ‘@’). The delay line holds semantic information, to be sure;
but not information that would affect reseq’s normal
operation (it only has meaning when one of the
--timings or
--replay options has been specified). So, if an older version
of reseq had existed that did not recognize them, it would
have been a shame if its introduction in the newer release had caused
the older version to refuse to process it.

To address both of these concerns, reseq has taken the
approach of reserving certain prefixes for use as “semantically
significant” line prefixes, and others for use in lines that
reseq can safely ignore. A line that begins with any of the
following characters, will cause reseq to halt processing
and exit with an error.

!$+/=[\^{~

The idea is that these prefixes are reserved for future use in lines
that reseq must understand in order to produce correct
results.

This leaves all remaining characters free for use in specifying future
teseq output lines that do not affect processing for older
reseqs. Note that they are still reserved for
teseq, and are not intended for users to insert commentary
or such. However, teseq will never use a line beginning with
the space character; and reseq will always ignore such
lines, so the space character may be used to indicate user comments.