{ open Parser } let whitespace = [' ' '\t' '\r' '\n']+ let letter = ['a'-'z' 'A'-'Z'] let ident = letter+ rule lex = parse | whitespace { lex lexbuf } | "(" { LPR } | ")" { RPR } | "[" { LBR } | "]" { RBR } | "->" { ARROW } | "*" { ASTERISK } | "\\" { BACKSLASH } | ":" { COLON } | "," { COMMA } | "." { DOT } | "=>" { FATARROW } | "bool" { BOOL } | "true" { TRUE } | "false" { FALSE } | "bool-elim" { BOOL_ELIM } | "at" { AT } | "fst" { FST } | "snd" { SND } | "type" { TYPE } | ident { IDENT (Lexing.lexeme lexbuf) } | eof { EOF }