{ open Parser } rule token = parse | [' ' '\t' '\n'] { token lexbuf } | eof { EOF } | '(' { LPAREN } | ')' { RPAREN } | "->" { RARROW } | '~' { TILDE } | "intro" { INTRO } | "assumption" { ASSUMPTION } | "apply" { APPLY } | "elim" { ELIM } | "cut" { CUT } | "False" { FALSE } | ['A'-'Z']+['0'-'9']* as s { TYPE_NAME s } | ['a'-'z']+['0'-'9']* as s { VAR_NAME s } | '.' { DOT }