Making them non-static would mean passing an instance of the top-level parser around. It could be done in the ParserContext