more work on the antlr part needed + refs for antlr. Then maybe look for visitors that use reflection.