%{ %} (* Tokens (mirroring thise defined in module LexToken) *) (* Literals *) %token <LexToken.lexeme Region.reg> String %token <(LexToken.lexeme * MBytes.t) Region.reg> Bytes %token <(LexToken.lexeme * Z.t) Region.reg> Int %token <LexToken.lexeme Region.reg> Ident %token <LexToken.lexeme Region.reg> Constr (* Symbols *) %token <Region.t> SEMI (* ";" *) %token <Region.t> COMMA (* "," *) %token <Region.t> LPAR (* "(" *) %token <Region.t> RPAR (* ")" *) %token <Region.t> LBRACE (* "{" *) %token <Region.t> RBRACE (* "}" *) %token <Region.t> LBRACKET (* "[" *) %token <Region.t> RBRACKET (* "]" *) %token <Region.t> CONS (* "<:" *) %token <Region.t> VBAR (* "|" *) %token <Region.t> ARROW (* "->" *) %token <Region.t> ASGNMNT (* ":=" *) %token <Region.t> EQUAL (* "=" *) %token <Region.t> COLON (* ":" *) %token <Region.t> OR (* "||" *) %token <Region.t> AND (* "&&" *) %token <Region.t> LT (* "<" *) %token <Region.t> LEQ (* "<=" *) %token <Region.t> GT (* ">" *) %token <Region.t> GEQ (* ">=" *) %token <Region.t> NEQ (* "=/=" *) %token <Region.t> PLUS (* "+" *) %token <Region.t> MINUS (* "-" *) %token <Region.t> SLASH (* "/" *) %token <Region.t> TIMES (* "*" *) %token <Region.t> DOT (* "." *) %token <Region.t> WILD (* "_" *) %token <Region.t> CAT (* "^" *) (* Keywords *) %token <Region.t> Begin (* "begin" *) %token <Region.t> Const (* "const" *) %token <Region.t> Down (* "down" *) %token <Region.t> Fail (* "fail" *) %token <Region.t> If (* "if" *) %token <Region.t> In (* "in" *) %token <Region.t> Is (* "is" *) %token <Region.t> For (* "for" *) %token <Region.t> Function (* "function" *) %token <Region.t> Parameter (* "parameter" *) %token <Region.t> Storage (* "storage" *) %token <Region.t> Type (* "type" *) %token <Region.t> Of (* "of" *) %token <Region.t> Operations (* "operations" *) %token <Region.t> Var (* "var" *) %token <Region.t> End (* "end" *) %token <Region.t> Then (* "then" *) %token <Region.t> Else (* "else" *) %token <Region.t> Match (* "match" *) %token <Region.t> Null (* "null" *) %token <Region.t> Procedure (* "procedure" *) %token <Region.t> Record (* "record" *) %token <Region.t> Step (* "step" *) %token <Region.t> To (* "to" *) %token <Region.t> Mod (* "mod" *) %token <Region.t> Not (* "not" *) %token <Region.t> While (* "while" *) %token <Region.t> With (* "with" *) (* Data constructors *) %token <Region.t> C_False (* "False" *) %token <Region.t> C_None (* "None" *) %token <Region.t> C_Some (* "Some" *) %token <Region.t> C_True (* "True" *) %token <Region.t> C_Unit (* "Unit" *) (* Virtual tokens *) %token <Region.t> EOF %%