%{ %} (* Tokens (mirroring those defined in module LexToken) *) (* Literals *) %token Ident "" %token Constr "" %token String "" %token <(string * Z.t) Region.reg> Int "" %token <(string * Z.t) Region.reg> Nat "" %token <(string * Z.t) Region.reg> Mutez "" (* Symbols *) %token MINUS "-" %token PLUS "+" %token SLASH "/" %token TIMES "*" %token LPAR "(" %token RPAR ")" %token LBRACKET "[" %token RBRACKET "]" %token LBRACE "{" %token RBRACE "}" %token CAT "++" %token DOT "." %token ELLIPSIS "..." %token COMMA "," %token SEMI ";" %token COLON ":" %token VBAR "|" %token WILD "_" %token EQ "=" %token EQEQ "==" %token NE "!=" %token LT "<" %token GT ">" %token LE "<=" %token GE ">=" %token ARROW "=>" %token NOT "!" %token BOOL_OR "||" %token BOOL_AND "&&" (* Keywords *) %token Else "else" %token False "false" %token If "if" %token Let "let" %token Switch "switch" %token Mod "mod" %token Or "or" %token True "true" %token Type "type" (* Data constructors *) %token C_None "None" %token C_Some "Some" (* Virtual tokens *) %token EOF %%