Buffer holds the memory on top of which a parse tree / syntax tree is constructed. Besides giving access to individual characters, it provides the means to register replacements for buffer chunks, such that when the Buffer's write method is executed the new file will contain the modified source.
C++ Parser
This parser is a LL(k) parser with ad hoc rules such as backtracking.
<name>() is the grammer rule for a non-terminal <name>. opt_<name>() is the grammer rule for an optional non-terminal <name>. is_<name>() looks ahead and returns true if the next symbol is <name>.
A Token is what the Lexer splits an input stream into. It refers to a region in the underlaying buffer and it has a type.