carefully constructed AST classes that can service both the old and the
new parsers (temporarily)
added reflective support to switch between parser implementations
(temporarily)