*should be virtual be
include boost
use gc allocations for parser
include ast defintions
no need to keep ptrs to lexer and token
use smart_ptr (not sure this used correctly)
this does not work, reverting
create class for ir generation