%{ %} (* Tokens (mirroring thise defined in module LexToken) *) (* Literals *) %token String %token <(LexToken.lexeme * MBytes.t) Region.reg> Bytes %token <(LexToken.lexeme * Z.t) Region.reg> Int %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 ASGNMNT %token EQUAL %token COLON %token OR %token AND %token LT %token LEQ %token GT %token GEQ %token NEQ %token PLUS %token MINUS %token SLASH %token TIMES %token DOT %token WILD %token CAT (* Keywords *) %token Begin %token Const %token Down %token If %token In %token Is %token For %token Function %token Parameter %token Storage %token Type %token Of %token Operations %token Var %token End %token Then %token Else %token Match %token Null %token Procedure %token Record %token Step %token To %token Mod %token Not %token While %token With (* Data constructors *) %token C_False %token C_None %token C_Some %token C_True %token C_Unit (* Virtual tokens *) %token EOF %%