Set up AST node hierarchy and keyword constants

I see. Instead of making this an instance variable, why don’t you make this a method that subclasses must override? That’s basically how you’re using it anyway.