-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtoken.sml
95 lines (88 loc) · 1.61 KB
/
token.sml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
structure Token = struct
datatype t
= LOWER_IDENT of string
| UPPER_IDENT of string
| QUOTE_IDENT of string
| NUMBER of int
| CAP_TYPE
| FUN
| IN
| LET
| SEALS
| LINK
| WITH
| VAL
| TYPE
| UNIT
| MODULE
| NEW
| EXT
| BOOL
| INT
| TRUE
| FALSE
| MATCH
| DATA
| IMPORT
| EXPORT
| LPAREN
| RPAREN
| LBRACK
| RBRACK
| LBRACE
| RBRACE
| COLON
| RARROW
| RDARROW
| STAR
| EQUAL
| DOT
| COMMA
| MINUS
| PLUS
| UNDERSCORE
| BAR
val show = fn
LOWER_IDENT s => s
| UPPER_IDENT s => s
| QUOTE_IDENT s => "'" ^ s
| NUMBER n => Int.toString n
| CAP_TYPE => "Type"
| FUN => "fun"
| IN => "in"
| LET => "let"
| SEALS => "seals"
| LINK => "link"
| WITH => "with"
| VAL => "val"
| TYPE => "type"
| UNIT => "unit"
| MODULE => "module"
| NEW => "new"
| EXT => "ext"
| BOOL => "bool"
| INT => "int"
| TRUE => "true"
| FALSE => "false"
| MATCH => "match"
| DATA => "data"
| IMPORT => "import"
| EXPORT => "export"
| LPAREN => "("
| RPAREN => ")"
| LBRACK => "["
| RBRACK => "]"
| LBRACE => "{"
| RBRACE => "}"
| COLON => ":"
| RARROW => "->"
| RDARROW => "=>"
| STAR => "*"
| EQUAL => "="
| DOT => "."
| COMMA => ","
| MINUS => "-"
| PLUS => "+"
| UNDERSCORE => "_"
| BAR => "|"
end