This patch implements a standard GLR parsing algorithm, the core piece of the pseudoparser:
- it parses preprocessed C++ code, currently it supports correct code only and parse them as a translation-unit;
- it produces a forest which stores all possible trees in an efficient manner (only a single node being build for per (SymbolID, Token Range)); no disambiguation yet;
nit: i think we should reverse the emphasis: the one-sentence summary should say what this models (a set of possible parse trees) and then elaborate below that it's the output of GLR