moves wildcard rules from parser to lexer, simplifying both