More maintainable lexer and parser.