%{ %} (* 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 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 EQUAL (* "=" *) %token COLON (* ":" *) %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 And (* "and" *) %token Begin (* "begin" *) %token Block (* "block" *) %token Case (* "case" *) %token Const (* "const" *) %token Contains (* "contains" *) %token Down (* "down" *) %token Else (* "else" *) %token End (* "end" *) %token Entrypoint (* "entrypoint" *) %token Fail (* "fail" *) %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 Procedure (* "procedure" *) %token Record (* "record" *) %token Remove (* "remove" *) %token Set (* "set" *) %token Skip (* "skip" *) %token Step (* "step" *) %token Storage (* "storage" *) %token Then (* "then" *) %token To (* "to" *) %token Type (* "type" *) %token Var (* "var" *) %token While (* "while" *) %token With (* "with" *) (* Data constructors *) %token C_False (* "False" *) %token C_None (* "None" *) %token C_Some (* "Some" *) %token C_True (* "True" *) %token C_Unit (* "Unit" *) (* Virtual tokens *) %token EOF %%