The Parser is the most fundamental concept. A Parser
has a member function, parse,
that accepts a first-last ForwardIterator pair and returns
bool as its result. The iterators delimit the data being parsed. The
Parser's parse member
function returns true if
the parse succeeds, in which case the first iterator is advanced accordingly.
Each Parser can represent a specific pattern or algorithm, or it can
be a more complex parser formed as a composition of other Parsers.

In the expressions below, the behavior of the parser, p,
and how skip and attrib are handled by p, are left unspecified in the base
Parser concept. These
are specified in subsequent, more refined concepts and by the actual
models thereof.