This is an experiment in Earley parsing for C++. It is probably slow, inefficient, and prone to change at any time.