I can D

Used 'shared static' instead of whatever hackery there was before.
Added ID scanner
Added grammar tree node
Added AST Nodes, grammar elements, and productions
Removed unneeded equality operator
Made Token a GrammarElement, fixed definition