home
/
code
/
tiger.ml.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
blame
|
history
|
raw
|
HEAD
Add another test case - define recursive function
[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.071446 seconds
and
4
git commands to generate.