aboutsummaryrefslogtreecommitdiff
path: root/tokens.go
blob: e606535002db5b00a099da35cb475853034c9701 (plain)
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
package main

const (
	EOF = iota
	BLANK
	INTEGER
	FLOAT
	COMPLEX
	DIGIT
	CHAR
	STRING
	QUOTED
	QUOTE
	DOT
	COMA
	NEG
	COMMENT
	ALPHA
	OMEGA
	IOTA
	RHO
	DEL
	PLUS
	MINUS
	TIMES
	DIVIDE
	DROP
	TAKE
	QUAD
	SLASH
	SLASHBAR
	BACKSLASH
)

var Tockens = map[rune]int{
	EOF: EOF,

	' ':  BLANK,
	'\t': BLANK,

	'0': DIGIT,
	'1': DIGIT,
	'2': DIGIT,
	'3': DIGIT,
	'4': DIGIT,
	'5': DIGIT,
	'6': DIGIT,
	'7': DIGIT,
	'8': DIGIT,
	'9': DIGIT,

	'A': CHAR,
	'B': CHAR,
	'C': CHAR,
	'D': CHAR,
	'E': CHAR,
	'F': CHAR,
	'G': CHAR,
	'H': CHAR,
	'I': CHAR,
	'J': CHAR,
	'K': CHAR,
	'L': CHAR,
	'M': CHAR,
	'N': CHAR,
	'O': CHAR,
	'P': CHAR,
	'Q': CHAR,
	'R': CHAR,
	'S': CHAR,
	'T': CHAR,
	'U': CHAR,
	'V': CHAR,
	'W': CHAR,
	'X': CHAR,
	'Y': CHAR,
	'Z': CHAR,

	'a': CHAR,
	'b': CHAR,
	'c': CHAR,
	'd': CHAR,
	'e': CHAR,
	'f': CHAR,
	'g': CHAR,
	'h': CHAR,
	'i': CHAR,
	'j': CHAR,
	'k': CHAR,
	'l': CHAR,
	'm': CHAR,
	'n': CHAR,
	'o': CHAR,
	'p': CHAR,
	'q': CHAR,
	'r': CHAR,
	's': CHAR,
	't': CHAR,
	'u': CHAR,
	'v': CHAR,
	'w': CHAR,
	'x': CHAR,
	'y': CHAR,
	'z': CHAR,

	'\'': QUOTE,
	'.':  DOT,
	',':  COMA,
	'¯':  NEG,
	'⍝':  COMMENT,
	'⍺':  ALPHA,
	'⍵':  OMEGA,
	'⍳':  IOTA,
	'⍴':  RHO,
	'∇':  DEL,
	'+':  PLUS,
	'-':  MINUS,
	'×':  TIMES,
	'÷':  DIVIDE,
	'↓':  DROP,
	'↑':  TAKE,
	'⎕':  QUAD,
	'/':  SLASH,
	'⌿':  SLASHBAR,
	'\\': BACKSLASH,
}