%{ %} (* Tokens (mirroring thise defined in module LexToken) *) (* Literals *) %token String "" %token <(LexToken.lexeme * Hex.t) Region.reg> Bytes "" %token <(LexToken.lexeme * Z.t) Region.reg> Int "" %token <(LexToken.lexeme * Z.t) Region.reg> Nat "" %token <(LexToken.lexeme * Z.t) Region.reg> Mutez "" %token Ident "" %token Constr "" (* Symbols *) %token SEMI ";" %token COMMA "," %token LPAR "(" %token RPAR ")" %token LBRACE "{" %token RBRACE "}" %token LBRACKET "[" %token RBRACKET "]" %token CONS "#" %token VBAR "|" %token ARROW "->" %token ASS ":=" %token EQ "=" %token COLON ":" %token LT "<" %token LE "<=" %token GT ">" %token GE ">=" %token NE "=/=" %token PLUS "+" %token MINUS "-" %token SLASH "/" %token TIMES "*" %token DOT "." %token WILD "_" %token CAT "^" (* Keywords *) %token And "and" %token Begin "begin" %token BigMap "big_map" %token Block "block" %token Case "case" %token Const "const" %token Contains "contains" %token Else "else" %token End "end" %token False "False" %token For "for" %token Function "function" %token From "from" %token If "if" %token In "in" %token Is "is" %token List "list" %token Map "map" %token Mod "mod" %token Nil "nil" %token Not "not" %token Of "of" %token Or "or" %token Patch "patch" %token Record "record" %token Remove "remove" %token Set "set" %token Skip "skip" %token Then "then" %token To "to" %token True "True" %token Type "type" %token Unit "Unit" %token Var "var" %token While "while" %token With "with" (* Data constructors *) %token C_None "None" %token C_Some "Some" (* Virtual tokens *) %token EOF %%