def multi_keyword(tokens, keyword_parts):
tokens = iter(tokens)<EOL>matched_tokens = []<EOL>limit = len(keyword_parts)<EOL>for idx in six.moves.range(limit):<EOL><INDENT>try:<EOL><INDENT>token = next(tokens)<EOL><DEDENT>except StopIteration:<EOL><INDENT>return<EOL><DEDENT>if (not token or token.name != "<STR_LIT>" or<EOL>token.value.lower() != keyword_parts[idx]):<EOL><INDENT>return<EOL><DEDENT>matched_tokens.append(token)<EOL><DEDENT>return TokenMatch(None, token.value, matched_tokens)<EOL>
Match a case-insensitive keyword consisting of multiple tokens.