Missing seek interface.

There is no seek interface to an Antlr3 Common Token Stream (or to the
underlying source). This seems to have fixed in Antlr4 according to
the online docs, although there is no C++ target to try it on yet.

This causes a massive problem - the plan to avoid the lexer hack was
to do an initial parse of functions that splits the token stream into
statements ignoring the typename ambiguity. This would create invalid
statement parses for typedef'd types. But then each slice of the token
stream for a statement could be reparsed in a context that would
resolve the ambiguity, e.g. rewrite the IDENTs into tokens or use a
read-only symboltabel in the second parse (no state passing).

None of this can work without a seek interface on the stream and the
alternative of building a separate char-stream / lexer / token-stream /
parser for each statement sounds horrific.

This is a quick PoC to show that we can actually seek just by overwriting
the index p in the ANTLR3_COMMON_TOKEN_STREAM struct and calling a
different parser entry point, which is quite cute.