rewritten interpreter to make use of cool new features provided in ANTLR V4