struct kwtable {char *name; int id[2]; enum lex_state state;};
%%
__LINE__, {k__LINE__, k__LINE__}, EXPR_END
__FILE__, {k__FILE__, k__FILE__}, EXPR_END
BEGIN, {klBEGIN, klBEGIN}, EXPR_END
END, {klEND, klEND}, EXPR_END
alias, {kALIAS, kALIAS}, EXPR_FNAME
and, {kAND, kAND}, EXPR_BEG
begin, {kBEGIN, kBEGIN}, EXPR_BEG
break, {kBREAK, kBREAK}, EXPR_MID
case, {kCASE, kCASE}, EXPR_BEG
class, {kCLASS, kCLASS}, EXPR_CLASS
def, {kDEF, kDEF}, EXPR_FNAME
defined?, {kDEFINED, kDEFINED}, EXPR_ARG
do, {kDO, kDO}, EXPR_BEG
else, {kELSE, kELSE}, EXPR_BEG
elsif, {kELSIF, kELSIF}, EXPR_BEG
end, {kEND, kEND}, EXPR_END
ensure, {kENSURE, kENSURE}, EXPR_BEG
false, {kFALSE, kFALSE}, EXPR_END
for, {kFOR, kFOR}, EXPR_BEG
if, {kIF, kIF_MOD}, EXPR_BEG
in, {kIN, kIN}, EXPR_BEG
module, {kMODULE, kMODULE}, EXPR_BEG
next, {kNEXT, kNEXT}, EXPR_MID
nil, {kNIL, kNIL}, EXPR_END
not, {kNOT, kNOT}, EXPR_BEG
or, {kOR, kOR}, EXPR_BEG
redo, {kREDO, kREDO}, EXPR_END
rescue, {kRESCUE, kRESCUE_MOD}, EXPR_MID
retry, {kRETRY, kRETRY}, EXPR_END
return, {kRETURN, kRETURN}, EXPR_MID
self, {kSELF, kSELF}, EXPR_END
super, {kSUPER, kSUPER}, EXPR_ARG
then, {kTHEN, kTHEN}, EXPR_BEG
true, {kTRUE, kTRUE}, EXPR_END
undef, {kUNDEF, kUNDEF}, EXPR_FNAME
unless, {kUNLESS, kUNLESS_MOD}, EXPR_BEG
until, {kUNTIL, kUNTIL_MOD}, EXPR_BEG
when, {kWHEN, kWHEN}, EXPR_BEG
while, {kWHILE, kWHILE_MOD}, EXPR_BEG
yield, {kYIELD, kYIELD}, EXPR_ARG
