
#define BAD 1
#define PERCENT 2
#define ALPHA 3
#define DIGIT 4
#define SQUOTE 5
#define DQUOTE 6
#define OPENB 7
#define SIMPLE_PUNCT 8
#define COMPLEX_PUNCT 9

struct restab_entry {
  char *token;
  int value;
};

LOCAL struct restab_entry anycase_words[] = {
  { "ALL", ALL },             { "APROC", APROC },
  { "BEGIN", BEGN },          { "DO", DO },
  { "END", END },             { "ENUM", ENUM },
  { "EXCEPT", EXCEPT },       { "EXCEPTION", EXCEPTION },
  { "EXISTS", EXISTS },       { "FORK", FORK },
  { "FUNC", FUNC },           { "HAVOC", HAVOC },
  { "IN", IN },               { "IS", IS },
  { "AS", AS },
  { "LAMBDA", LAMBDA },       { "MODULE", MODULE },
  { "OD", OD },               { "PROC", PROC },
  { "RAISE", RAISE },         { "RAISES", RAISES },
  { "RECORD", RECORD },      
  { "RET", RET },             { "SEQ", SEQ },
  { "SET", SET },             { "SKIP", SKIP },
  { "TYPE", TYPE },           { "UNION", UNION },
  { "VAR", VAR },             { "WITH", WITH }
};

LOCAL struct restab_entry respunct[] = {
  { "++", ADD }, { "/\\", AND }, { "->", ARROW }, { "=>", DARROW },
  { "**", EXP }, { ">=", GE }, { ":=", GETS }, { "==>", IMPLIES },
  { "<=", LE }, { "<<", OPENA }, { ">>", CLOSEA }, { "\\/", OR },
  { "//", REM }, { "--", REMOVE }
};

