Complete 1.02.p.1: Tiger lexer
[tiger.ml.git] / tiger / src / lib / tiger / tiger_parser.ml
1 open Printf
2
3 module Token = struct
4 type t =
5 | AND
6 | ARRAY
7 | ASSIGN
8 | BREAK
9 | COLON
10 | COMMA
11 | DIVIDE
12 | DO
13 | DOT
14 | ELSE
15 | END
16 | EOF
17 | EQ
18 | FOR
19 | FUNCTION
20 | GE
21 | GT
22 | ID of string
23 | IF
24 | IN
25 | INT of int
26 | LBRACE
27 | LBRACK
28 | LE
29 | LET
30 | LPAREN
31 | LT
32 | MINUS
33 | NEQ
34 | NIL
35 | OF
36 | OR
37 | PLUS
38 | RBRACE
39 | RBRACK
40 | RPAREN
41 | SEMICOLON
42 | STRING of string
43 | THEN
44 | TIMES
45 | TO
46 | TYPE
47 | VAR
48 | WHILE
49
50 let to_string = function
51 | TYPE -> "TYPE"
52 | VAR -> "VAR"
53 | FUNCTION -> "FUNCTION"
54 | BREAK -> "BREAK"
55 | OF -> "OF"
56 | END -> "END"
57 | IN -> "IN"
58 | NIL -> "NIL"
59 | LET -> "LET"
60 | DO -> "DO"
61 | TO -> "TO"
62 | FOR -> "FOR"
63 | WHILE -> "WHILE"
64 | ELSE -> "ELSE"
65 | THEN -> "THEN"
66 | IF -> "IF"
67 | ARRAY -> "ARRAY"
68 | ASSIGN -> "ASSIGN"
69 | OR -> "OR"
70 | AND -> "AND"
71 | GE -> "GE"
72 | GT -> "GT"
73 | LE -> "LE"
74 | LT -> "LT"
75 | NEQ -> "NEQ"
76 | EQ -> "EQ"
77 | DIVIDE -> "DIVIDE"
78 | TIMES -> "TIMES"
79 | MINUS -> "MINUS"
80 | PLUS -> "PLUS"
81 | DOT -> "DOT"
82 | RBRACE -> "RBRACE"
83 | LBRACE -> "LBRACE"
84 | RBRACK -> "RBRACK"
85 | LBRACK -> "LBRACK"
86 | RPAREN -> "RPAREN"
87 | LPAREN -> "LPAREN"
88 | SEMICOLON -> "SEMICOLON"
89 | COLON -> "COLON"
90 | COMMA -> "COMMA"
91 | STRING s -> sprintf "STRING (%S)" s
92 | INT i -> sprintf "INT (%d)" i
93 | ID id -> sprintf "ID (%s)" id
94 | EOF -> "EOF"
95 end
This page took 0.082011 seconds and 4 git commands to generate.