let token_kw =
  [
    "and"AND;
    "as"AS;
    "assert"ASSERT;
    "begin"BEGIN;
    "class"CLASS;
    "constraint"CONSTRAINT;
    "do"DO;
    "done"DONE;
    "downto"DOWNTO;
    "else"ELSE;
    "end"END;
    "exception"EXCEPTION;
    "external"EXTERNAL;
    "false"FALSE;
    "for"FOR;
    "fun"FUN;
    "function"FUNCTION;
    "functor"FUNCTOR;
    "if"IF;
    "in"IN;
    "include"INCLUDE;
    "inherit"INHERIT;
    "initializer"INITIALIZER;
    "lazy"LAZY;
    "let"LET;
    "match"MATCH;
    "method"METHOD;
    "module"MODULE;
    "mutable"MUTABLE;
    "new"NEW;
    "object"OBJECT;
    "of"OF;
    "open"OPEN;
    "or"OR;
(*  "parser", PARSER; *)
    "private"PRIVATE;
    "rec"REC;
    "sig"SIG;
    "struct"STRUCT;
    "then"THEN;
    "to"TO;
    "true"TRUE;
    "try"TRY;
    "type"TYPE;
    "val"VAL;
    "virtual"VIRTUAL;
    "when"WHEN;
    "while"WHILE;
    "with"WITH;

    "mod"INFIXOP3 ;
    "land"INFIXOP3 ;
    "lor"INFIXOP3 ;
    "lxor"INFIXOP3 ;
    "lsl"INFIXOP4 ;
    "lsr"INFIXOP4 ;
    "asr"INFIXOP4 ;
    ]