/* C++ code produced by gperf version 3.0.3 */
/* Command-line: gperf -L C++ gen/double_charactor_operator.gperf */
/* Computed positions: -k'1-2' */
#include <lexer.hpp>
/* maximum key range = 201, duplicates = 0 */
inline unsigned int DoubleCharactorOperatorMap::hash(register const char *str)
{
static unsigned char asso_values[] = {
203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
203, 203, 203, 72, 203, 203, 5, 20, 75, 69,
125, 87, 2, 62, 64, 65, 32, 120, 59, 25,
47, 37, 54, 49, 44, 39, 34, 24, 110, 19,
50, 22, 12, 14, 10, 0, 35, 9, 4, 203,
203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
203, 203, 203, 203, 4, 127, 122, 112, 97, 203,
92, 203, 203, 203, 203, 203, 203, 203, 203, 203,
203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
0, 203, 203, 203, 82, 203, 60, 100, 5, 203,
90, 203, 203, 203, 203, 203, 203, 203, 203, 203,
203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
203, 203, 203, 203, 203, 203, 203, 203, 203, 203
};
return asso_values[(unsigned char)str[1]+4] + asso_values[(unsigned char)str[0]];
}
const char *DoubleCharactorOperatorMap::in_word_set(register const char *str)
{
static const char *double_charactor_operators[] = {
"x=",
"",
"*=",
"",
"^=",
"$=",
"",
"$&",
"",
"$@",
"$|",
"",
">=",
"",
"$?",
"$<",
"",
"$:",
"",
"$;",
"%=",
"",
"==",
"",
"$7",
"$!",
"",
"$9",
"",
"$5",
"$-",
"",
".=",
"",
"**",
"@-",
"",
"$*",
"",
"$4",
"$>",
"",
"$/",
"",
"$3",
"%-",
"",
">>",
"",
"$2",
"<=",
"",
"$.",
"",
"$1",
"$8",
"",
"=>",
"",
"$0",
"<<",
"",
"+=",
"",
"$,",
"-=",
"",
"$'",
"",
"$(",
"$)",
"",
"!=",
"",
"$#",
"&=",
"",
"&&",
"",
"..",
"$\"",
"",
"|=",
"", "",
"<>",
"",
"||",
"", "",
"--",
"",
"$%",
"", "",
"$~",
"",
"$`",
"", "",
"->",
"",
"$^",
"", "",
"${",
"",
"%%",
"", "",
"@{",
"",
"=~",
"", "",
"$6",
"",
"$]",
"", "",
"%{",
"",
"::",
"", "",
"$+",
"",
"$\\",
"", "",
"@+",
"",
"$[",
"", "",
"@$",
"", "", "", "",
"%+",
"", "", "", "",
"%$",
"", "", "", "",
"~~",
"", "", "", "", "", "",
"//",
"", "", "", "",
"!~",
"", "", "", "", "", "", "", "", "",
"", "", "",
"&{",
"", "", "", "", "", "",
"++",
"", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
"&$"
};
register int key = hash(str);
if (key <= DOUBLE_OPERATOR_MAX_HASH_VALUE && key >= 0) {
register const char *s = double_charactor_operators[key];
if (*str == *s && !strcmp (str + 1, s + 1)) return s;
}
return 0;
}