def _parse_definition_head(fh, IdentifierList):
    if check(fh, '\\default'):
        error.log("'\\default' has been replaced by keyword '\\else' since quex 0.64.9!", fh)
    elif check(fh, '\\else'):
        pattern = None
    else:
        pattern = regular_expression.parse(fh, AllowPreContextF=False, AllowPostContextF=False)
    skip_whitespace(fh)
    check_or_die(fh, '=>', ' after character set definition.')
    skip_whitespace(fh)
    identifier = read_identifier(fh, OnMissingStr="Missing identifier following '=>'.")
    error.verify_word_in_list(identifier, IdentifierList, ("Unrecognized specifier '%s'." % identifier), fh)
    skip_whitespace(fh)
    return (pattern, identifier, SourceRef.from_FileHandle(fh))
def _parse_definition_head(fh, IdentifierList):
    if check(fh, '\\default'):
        error.log("'\\default' has been replaced by keyword '\\else' since quex 0.64.9!", fh)
    elif check(fh, '\\else'):
        pattern = None
    else:
        pattern = regular_expression.parse(fh, AllowPreContextF=False, AllowPostContextF=False)
    skip_whitespace(fh)
    check_or_die(fh, '=>', ' after character set definition.')
    skip_whitespace(fh)
    identifier = read_identifier(fh, OnMissingStr="Missing identifier following '=>'.")
    error.verify_word_in_list(identifier, IdentifierList, ("Unrecognized specifier '%s'." % identifier), fh)
    skip_whitespace(fh)
    return (pattern, identifier, SourceRef.from_FileHandle(fh))