hotcell 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +102 -84
- data/Rakefile +2 -2
- data/ext/lexerc/lexerc.c +350 -308
- data/ext/lexerc/lexerc.h +2 -7
- data/ext/lexerc/lexerc.rl +9 -90
- data/lib/hotcell/commands/for.rb +7 -2
- data/lib/hotcell/config.rb +2 -1
- data/lib/hotcell/extensions.rb +13 -1
- data/lib/hotcell/lexer.rb +5 -10
- data/lib/hotcell/lexer.rl +95 -0
- data/lib/hotcell/lexerr.rb +256 -215
- data/lib/hotcell/lexerr.rl +7 -91
- data/lib/hotcell/manipulator.rb +20 -2
- data/lib/hotcell/node/{calculator.rb → expression.rb} +4 -2
- data/lib/hotcell/node/tag.rb +5 -3
- data/lib/hotcell/node.rb +1 -1
- data/lib/hotcell/parser.rb +565 -514
- data/lib/hotcell/parser.y +46 -24
- data/lib/hotcell/template.rb +3 -2
- data/lib/hotcell/version.rb +1 -1
- data/lib/hotcell.rb +1 -1
- data/spec/lib/hotcell/commands/for_spec.rb +3 -0
- data/spec/lib/hotcell/config_spec.rb +6 -0
- data/spec/lib/hotcell/lexer_spec.rb +28 -17
- data/spec/lib/hotcell/manipulator_spec.rb +16 -11
- data/spec/lib/hotcell/node/block_spec.rb +2 -2
- data/spec/lib/hotcell/parser_spec.rb +113 -30
- data/spec/lib/hotcell/template_spec.rb +51 -1
- data/spec/lib/hotcell_spec.rb +1 -0
- metadata +4 -3
data/lib/hotcell/lexerr.rb
CHANGED
@@ -1,9 +1,8 @@
|
|
1
1
|
|
2
2
|
# line 1 "lib/hotcell/lexerr.rl"
|
3
3
|
|
4
|
-
# line
|
4
|
+
# line 17 "lib/hotcell/lexerr.rl"
|
5
5
|
|
6
|
-
#%
|
7
6
|
|
8
7
|
Hotcell::Lexer.class_eval do
|
9
8
|
def current_position
|
@@ -21,23 +20,25 @@ Hotcell::Lexer.class_eval do
|
|
21
20
|
|
22
21
|
def tokenize
|
23
22
|
|
24
|
-
# line
|
23
|
+
# line 24 "lib/hotcell/lexerr.rb"
|
25
24
|
class << self
|
26
25
|
attr_accessor :_puffer_lexer_trans_keys
|
27
26
|
private :_puffer_lexer_trans_keys, :_puffer_lexer_trans_keys=
|
28
27
|
end
|
29
28
|
self._puffer_lexer_trans_keys = [
|
30
|
-
0, 0,
|
31
|
-
|
32
|
-
|
33
|
-
47, 92, 0, 0,
|
34
|
-
|
35
|
-
123, 123, 123,
|
36
|
-
9, 125, 61, 61,
|
37
|
-
|
38
|
-
57,
|
39
|
-
|
40
|
-
|
29
|
+
0, 0, 32, 32, 34, 92,
|
30
|
+
0, 0, 125, 125, 38,
|
31
|
+
38, 39, 92, 0, 0,
|
32
|
+
48, 57, 47, 92, 0, 0,
|
33
|
+
124, 124, 125, 125, 123,
|
34
|
+
123, 123, 123, 123, 123,
|
35
|
+
33, 126, 9, 125, 61, 61,
|
36
|
+
10, 125, 42, 42, 46,
|
37
|
+
57, 48, 57, 46, 57,
|
38
|
+
46, 46, 47, 92, 65, 122,
|
39
|
+
33, 122, 125, 125, 35,
|
40
|
+
35, 35, 35, 125, 125,
|
41
|
+
0
|
41
42
|
]
|
42
43
|
|
43
44
|
class << self
|
@@ -45,10 +46,10 @@ class << self
|
|
45
46
|
private :_puffer_lexer_key_spans, :_puffer_lexer_key_spans=
|
46
47
|
end
|
47
48
|
self._puffer_lexer_key_spans = [
|
48
|
-
0, 59, 0, 1, 1, 54, 0,
|
49
|
-
46, 0, 1, 1, 1, 1, 1,
|
50
|
-
117, 1, 116, 1, 12, 10,
|
51
|
-
90, 1, 1, 1, 1
|
49
|
+
0, 1, 59, 0, 1, 1, 54, 0,
|
50
|
+
10, 46, 0, 1, 1, 1, 1, 1,
|
51
|
+
94, 117, 1, 116, 1, 12, 10, 12,
|
52
|
+
1, 46, 58, 90, 1, 1, 1, 1
|
52
53
|
]
|
53
54
|
|
54
55
|
class << self
|
@@ -56,10 +57,10 @@ class << self
|
|
56
57
|
private :_puffer_lexer_index_offsets, :_puffer_lexer_index_offsets=
|
57
58
|
end
|
58
59
|
self._puffer_lexer_index_offsets = [
|
59
|
-
0, 0,
|
60
|
-
|
61
|
-
|
62
|
-
563,
|
60
|
+
0, 0, 2, 62, 63, 65, 67, 122,
|
61
|
+
123, 134, 181, 182, 184, 186, 188, 190,
|
62
|
+
192, 287, 405, 407, 524, 526, 539, 550,
|
63
|
+
563, 565, 612, 671, 762, 764, 766, 768
|
63
64
|
]
|
64
65
|
|
65
66
|
class << self
|
@@ -67,89 +68,103 @@ class << self
|
|
67
68
|
private :_puffer_lexer_indicies, :_puffer_lexer_indicies=
|
68
69
|
end
|
69
70
|
self._puffer_lexer_indicies = [
|
70
|
-
1, 0,
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
6,
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
19, 18,
|
94
|
-
|
71
|
+
1, 0, 3, 2, 2, 2, 2, 2,
|
72
|
+
2, 2, 2, 2, 2, 2, 2, 2,
|
73
|
+
2, 2, 2, 2, 2, 2, 2, 2,
|
74
|
+
2, 2, 2, 2, 2, 2, 2, 2,
|
75
|
+
2, 2, 2, 2, 2, 2, 2, 2,
|
76
|
+
2, 2, 2, 2, 2, 2, 2, 2,
|
77
|
+
2, 2, 2, 2, 2, 2, 2, 2,
|
78
|
+
2, 2, 2, 2, 4, 2, 2, 5,
|
79
|
+
6, 7, 8, 10, 9, 9, 9, 9,
|
80
|
+
9, 9, 9, 9, 9, 9, 9, 9,
|
81
|
+
9, 9, 9, 9, 9, 9, 9, 9,
|
82
|
+
9, 9, 9, 9, 9, 9, 9, 9,
|
83
|
+
9, 9, 9, 9, 9, 9, 9, 9,
|
84
|
+
9, 9, 9, 9, 9, 9, 9, 9,
|
85
|
+
9, 9, 9, 9, 9, 9, 9, 9,
|
86
|
+
11, 9, 9, 13, 13, 13, 13, 13,
|
87
|
+
13, 13, 13, 13, 13, 12, 16, 15,
|
88
|
+
15, 15, 15, 15, 15, 15, 15, 15,
|
89
|
+
15, 15, 15, 15, 15, 15, 15, 15,
|
90
|
+
15, 15, 15, 15, 15, 15, 15, 15,
|
91
|
+
15, 15, 15, 15, 15, 15, 15, 15,
|
92
|
+
15, 15, 15, 15, 15, 15, 15, 15,
|
93
|
+
15, 15, 15, 17, 15, 15, 7, 8,
|
94
|
+
19, 18, 21, 20, 22, 20, 23, 22,
|
95
|
+
1, 24, 25, 24, 24, 24, 24, 24,
|
96
|
+
24, 24, 24, 24, 24, 24, 24, 24,
|
97
|
+
24, 24, 24, 24, 24, 24, 24, 24,
|
98
|
+
24, 24, 24, 24, 24, 24, 24, 24,
|
99
|
+
24, 24, 24, 24, 24, 24, 24, 24,
|
100
|
+
24, 24, 24, 24, 24, 24, 24, 24,
|
101
|
+
24, 24, 24, 24, 24, 24, 24, 24,
|
102
|
+
24, 24, 24, 24, 24, 1, 24, 24,
|
103
|
+
24, 24, 24, 24, 26, 24, 24, 24,
|
104
|
+
24, 24, 24, 24, 24, 24, 24, 24,
|
105
|
+
24, 26, 24, 24, 24, 24, 24, 24,
|
106
|
+
24, 24, 24, 24, 24, 1, 24, 27,
|
107
|
+
7, 27, 27, 27, 8, 8, 8, 8,
|
108
|
+
8, 8, 8, 8, 8, 8, 8, 8,
|
109
|
+
8, 8, 8, 8, 8, 8, 27, 28,
|
110
|
+
2, 6, 8, 7, 29, 9, 7, 7,
|
111
|
+
30, 7, 7, 31, 32, 33, 34, 34,
|
112
|
+
34, 34, 34, 34, 34, 34, 34, 34,
|
113
|
+
7, 7, 28, 28, 28, 7, 8, 35,
|
114
|
+
35, 35, 35, 35, 35, 35, 35, 35,
|
115
|
+
35, 35, 35, 35, 35, 35, 35, 35,
|
116
|
+
35, 35, 35, 35, 35, 35, 35, 35,
|
117
|
+
35, 7, 8, 7, 8, 35, 8, 35,
|
118
|
+
35, 35, 35, 35, 35, 35, 35, 35,
|
119
|
+
35, 35, 35, 35, 35, 35, 35, 35,
|
120
|
+
35, 35, 35, 35, 35, 35, 35, 35,
|
121
|
+
35, 7, 36, 37, 8, 7, 38, 39,
|
95
122
|
6, 6, 6, 6, 6, 6, 6, 6,
|
96
123
|
6, 6, 6, 6, 6, 6, 6, 6,
|
97
|
-
6,
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
4, 4, 4, 4, 4, 4, 4, 4,
|
114
|
-
4, 4, 4, 4, 4, 4, 4, 4,
|
115
|
-
4, 4, 4, 4, 4, 4, 4, 4,
|
116
|
-
4, 4, 4, 4, 4, 4, 4, 4,
|
117
|
-
4, 4, 4, 4, 4, 4, 4, 4,
|
118
|
-
4, 4, 4, 4, 4, 4, 4, 4,
|
119
|
-
4, 4, 4, 4, 4, 4, 4, 4,
|
120
|
-
4, 4, 4, 4, 4, 4, 4, 4,
|
121
|
-
4, 4, 4, 4, 4, 4, 4, 4,
|
122
|
-
4, 4, 4, 4, 4, 4, 4, 4,
|
123
|
-
4, 4, 4, 4, 4, 38, 4, 5,
|
124
|
-
36, 39, 10, 32, 32, 32, 32, 32,
|
125
|
-
32, 32, 32, 32, 32, 10, 11, 11,
|
126
|
-
11, 11, 11, 11, 11, 11, 11, 11,
|
127
|
-
10, 14, 13, 13, 13, 13, 13, 13,
|
128
|
-
13, 13, 13, 13, 13, 13, 13, 13,
|
129
|
-
13, 13, 13, 13, 13, 13, 13, 13,
|
130
|
-
13, 13, 13, 13, 13, 13, 13, 13,
|
124
|
+
6, 6, 6, 6, 6, 6, 6, 6,
|
125
|
+
6, 6, 6, 6, 6, 6, 6, 6,
|
126
|
+
6, 6, 6, 6, 6, 6, 6, 6,
|
127
|
+
6, 6, 6, 6, 6, 6, 6, 6,
|
128
|
+
6, 6, 6, 6, 6, 6, 6, 6,
|
129
|
+
6, 6, 6, 6, 6, 6, 6, 6,
|
130
|
+
6, 6, 6, 6, 6, 6, 6, 6,
|
131
|
+
6, 6, 6, 6, 6, 6, 6, 6,
|
132
|
+
6, 6, 6, 6, 6, 6, 6, 6,
|
133
|
+
6, 6, 6, 6, 6, 6, 6, 6,
|
134
|
+
6, 6, 6, 6, 6, 6, 6, 6,
|
135
|
+
6, 6, 6, 6, 6, 6, 6, 6,
|
136
|
+
6, 6, 40, 6, 7, 38, 41, 12,
|
137
|
+
34, 34, 34, 34, 34, 34, 34, 34,
|
138
|
+
34, 34, 12, 13, 13, 13, 13, 13,
|
139
|
+
13, 13, 13, 13, 13, 42, 43, 38,
|
131
140
|
13, 13, 13, 13, 13, 13, 13, 13,
|
132
|
-
13, 13,
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
141
|
+
13, 13, 38, 7, 38, 16, 15, 15,
|
142
|
+
15, 15, 15, 15, 15, 15, 15, 15,
|
143
|
+
15, 15, 15, 15, 15, 15, 15, 15,
|
144
|
+
15, 15, 15, 15, 15, 15, 15, 15,
|
145
|
+
15, 15, 15, 15, 15, 15, 15, 15,
|
146
|
+
15, 15, 15, 15, 15, 15, 15, 15,
|
147
|
+
15, 15, 17, 15, 16, 16, 16, 16,
|
148
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
149
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
150
|
+
16, 16, 16, 16, 16, 16, 44, 44,
|
151
|
+
44, 44, 44, 44, 16, 16, 16, 16,
|
152
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
153
|
+
16, 16, 16, 16, 16, 16, 16, 16,
|
154
|
+
16, 16, 16, 16, 16, 16, 44, 46,
|
155
|
+
45, 45, 45, 45, 45, 45, 45, 45,
|
156
|
+
45, 45, 45, 45, 45, 45, 35, 35,
|
157
|
+
35, 35, 35, 35, 35, 35, 35, 35,
|
158
|
+
45, 45, 45, 45, 45, 46, 45, 35,
|
159
|
+
35, 35, 35, 35, 35, 35, 35, 35,
|
160
|
+
35, 35, 35, 35, 35, 35, 35, 35,
|
161
|
+
35, 35, 35, 35, 35, 35, 35, 35,
|
162
|
+
35, 45, 45, 45, 45, 35, 45, 35,
|
163
|
+
35, 35, 35, 35, 35, 35, 35, 35,
|
164
|
+
35, 35, 35, 35, 35, 35, 35, 35,
|
165
|
+
35, 35, 35, 35, 35, 35, 35, 35,
|
166
|
+
35, 45, 47, 38, 49, 48, 50, 48,
|
167
|
+
51, 50, 0
|
153
168
|
]
|
154
169
|
|
155
170
|
class << self
|
@@ -157,12 +172,13 @@ class << self
|
|
157
172
|
private :_puffer_lexer_trans_targs, :_puffer_lexer_trans_targs=
|
158
173
|
end
|
159
174
|
self._puffer_lexer_trans_targs = [
|
160
|
-
|
161
|
-
|
162
|
-
26,
|
163
|
-
|
164
|
-
|
165
|
-
|
175
|
+
13, 13, 2, 17, 3, 17, 19, 17,
|
176
|
+
0, 6, 17, 7, 17, 22, 17, 9,
|
177
|
+
26, 10, 29, 29, 14, 15, 13, 16,
|
178
|
+
13, 13, 1, 17, 18, 5, 20, 21,
|
179
|
+
23, 25, 21, 27, 11, 28, 17, 17,
|
180
|
+
4, 8, 17, 24, 17, 17, 17, 17,
|
181
|
+
30, 31, 29, 12
|
166
182
|
]
|
167
183
|
|
168
184
|
class << self
|
@@ -170,12 +186,13 @@ class << self
|
|
170
186
|
private :_puffer_lexer_trans_actions, :_puffer_lexer_trans_actions=
|
171
187
|
end
|
172
188
|
self._puffer_lexer_trans_actions = [
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
18, 19, 0, 0, 0, 20,
|
177
|
-
|
178
|
-
|
189
|
+
1, 2, 0, 4, 0, 5, 6, 7,
|
190
|
+
0, 0, 9, 0, 10, 0, 11, 0,
|
191
|
+
0, 0, 12, 13, 0, 0, 16, 6,
|
192
|
+
17, 18, 0, 19, 0, 0, 0, 20,
|
193
|
+
0, 21, 22, 0, 0, 0, 23, 24,
|
194
|
+
0, 0, 25, 0, 26, 27, 28, 29,
|
195
|
+
0, 6, 30, 0
|
179
196
|
]
|
180
197
|
|
181
198
|
class << self
|
@@ -184,9 +201,9 @@ class << self
|
|
184
201
|
end
|
185
202
|
self._puffer_lexer_to_state_actions = [
|
186
203
|
0, 0, 0, 0, 0, 0, 0, 0,
|
187
|
-
0, 0, 0, 0,
|
188
|
-
|
189
|
-
0, 0,
|
204
|
+
0, 0, 0, 0, 0, 14, 0, 0,
|
205
|
+
0, 14, 0, 0, 0, 0, 0, 0,
|
206
|
+
0, 0, 0, 0, 0, 14, 0, 0
|
190
207
|
]
|
191
208
|
|
192
209
|
class << self
|
@@ -195,9 +212,9 @@ class << self
|
|
195
212
|
end
|
196
213
|
self._puffer_lexer_from_state_actions = [
|
197
214
|
0, 0, 0, 0, 0, 0, 0, 0,
|
198
|
-
0, 0, 0, 0,
|
199
|
-
|
200
|
-
0, 0,
|
215
|
+
0, 0, 0, 0, 0, 15, 0, 0,
|
216
|
+
0, 15, 0, 0, 0, 0, 0, 0,
|
217
|
+
0, 0, 0, 0, 0, 15, 0, 0
|
201
218
|
]
|
202
219
|
|
203
220
|
class << self
|
@@ -205,10 +222,10 @@ class << self
|
|
205
222
|
private :_puffer_lexer_eof_actions, :_puffer_lexer_eof_actions=
|
206
223
|
end
|
207
224
|
self._puffer_lexer_eof_actions = [
|
208
|
-
0,
|
225
|
+
0, 0, 3, 0, 0, 0, 8, 0,
|
209
226
|
0, 0, 0, 0, 0, 0, 0, 0,
|
210
227
|
0, 0, 0, 0, 0, 0, 0, 0,
|
211
|
-
0, 0, 0, 0, 0
|
228
|
+
0, 0, 0, 0, 0, 0, 0, 0
|
212
229
|
]
|
213
230
|
|
214
231
|
class << self
|
@@ -216,20 +233,20 @@ class << self
|
|
216
233
|
private :_puffer_lexer_eof_trans, :_puffer_lexer_eof_trans=
|
217
234
|
end
|
218
235
|
self._puffer_lexer_eof_trans = [
|
219
|
-
0, 0, 0,
|
220
|
-
13,
|
221
|
-
|
222
|
-
|
236
|
+
0, 1, 0, 0, 6, 0, 0, 0,
|
237
|
+
13, 15, 15, 0, 19, 0, 23, 23,
|
238
|
+
25, 0, 39, 40, 39, 13, 43, 39,
|
239
|
+
39, 39, 45, 46, 39, 0, 51, 51
|
223
240
|
]
|
224
241
|
|
225
242
|
class << self
|
226
243
|
attr_accessor :puffer_lexer_start
|
227
244
|
end
|
228
|
-
self.puffer_lexer_start =
|
245
|
+
self.puffer_lexer_start = 13;
|
229
246
|
class << self
|
230
247
|
attr_accessor :puffer_lexer_first_final
|
231
248
|
end
|
232
|
-
self.puffer_lexer_first_final =
|
249
|
+
self.puffer_lexer_first_final = 13;
|
233
250
|
class << self
|
234
251
|
attr_accessor :puffer_lexer_error
|
235
252
|
end
|
@@ -238,25 +255,25 @@ self.puffer_lexer_error = 0;
|
|
238
255
|
class << self
|
239
256
|
attr_accessor :puffer_lexer_en_expression
|
240
257
|
end
|
241
|
-
self.puffer_lexer_en_expression =
|
258
|
+
self.puffer_lexer_en_expression = 17;
|
242
259
|
class << self
|
243
260
|
attr_accessor :puffer_lexer_en_template_comment
|
244
261
|
end
|
245
|
-
self.puffer_lexer_en_template_comment =
|
262
|
+
self.puffer_lexer_en_template_comment = 29;
|
246
263
|
class << self
|
247
264
|
attr_accessor :puffer_lexer_en_main
|
248
265
|
end
|
249
|
-
self.puffer_lexer_en_main =
|
266
|
+
self.puffer_lexer_en_main = 13;
|
250
267
|
|
251
268
|
|
252
|
-
# line
|
269
|
+
# line 35 "lib/hotcell/lexerr.rl"
|
253
270
|
#%
|
254
271
|
|
255
272
|
@data = @source.data
|
256
273
|
@token_array = []
|
257
274
|
|
258
275
|
|
259
|
-
# line
|
276
|
+
# line 277 "lib/hotcell/lexerr.rb"
|
260
277
|
begin
|
261
278
|
@p ||= 0
|
262
279
|
pe ||= @data.length
|
@@ -267,14 +284,14 @@ begin
|
|
267
284
|
act = 0
|
268
285
|
end
|
269
286
|
|
270
|
-
# line
|
287
|
+
# line 41 "lib/hotcell/lexerr.rl"
|
271
288
|
#%
|
272
289
|
|
273
290
|
eof = pe
|
274
291
|
stack = []
|
275
292
|
|
276
293
|
|
277
|
-
# line
|
294
|
+
# line 295 "lib/hotcell/lexerr.rb"
|
278
295
|
begin
|
279
296
|
testEof = false
|
280
297
|
_slen, _trans, _keys, _inds, _acts, _nacts = nil
|
@@ -297,12 +314,12 @@ begin
|
|
297
314
|
end
|
298
315
|
if _goto_level <= _resume
|
299
316
|
case _puffer_lexer_from_state_actions[cs]
|
300
|
-
when
|
317
|
+
when 15 then
|
301
318
|
# line 1 "NONE"
|
302
319
|
begin
|
303
320
|
@ts = @p
|
304
321
|
end
|
305
|
-
# line
|
322
|
+
# line 323 "lib/hotcell/lexerr.rb"
|
306
323
|
end
|
307
324
|
_keys = cs << 1
|
308
325
|
_inds = _puffer_lexer_index_offsets[cs]
|
@@ -320,16 +337,16 @@ begin
|
|
320
337
|
cs = _puffer_lexer_trans_targs[_trans]
|
321
338
|
if _puffer_lexer_trans_actions[_trans] != 0
|
322
339
|
case _puffer_lexer_trans_actions[_trans]
|
323
|
-
when
|
340
|
+
when 6 then
|
324
341
|
# line 1 "NONE"
|
325
342
|
begin
|
326
343
|
@te = @p+1
|
327
344
|
end
|
328
|
-
when
|
329
|
-
# line
|
345
|
+
when 29 then
|
346
|
+
# line 74 "lib/hotcell/lexer.rl"
|
330
347
|
begin
|
331
348
|
@te = @p+1
|
332
|
-
begin emit_tag
|
349
|
+
begin emit_tag; begin
|
333
350
|
top -= 1
|
334
351
|
cs = stack[top]
|
335
352
|
_goto_level = _again
|
@@ -337,88 +354,94 @@ begin
|
|
337
354
|
end
|
338
355
|
end
|
339
356
|
end
|
340
|
-
when
|
341
|
-
# line
|
357
|
+
when 7 then
|
358
|
+
# line 75 "lib/hotcell/lexer.rl"
|
342
359
|
begin
|
343
360
|
@te = @p+1
|
344
|
-
begin emit_operator
|
361
|
+
begin emit_operator; end
|
345
362
|
end
|
346
|
-
when
|
347
|
-
# line
|
363
|
+
when 28 then
|
364
|
+
# line 77 "lib/hotcell/lexer.rl"
|
348
365
|
begin
|
349
366
|
@te = @p+1
|
350
|
-
begin emit_identifer
|
367
|
+
begin emit_identifer; end
|
351
368
|
end
|
352
|
-
when
|
353
|
-
# line
|
369
|
+
when 9 then
|
370
|
+
# line 78 "lib/hotcell/lexer.rl"
|
354
371
|
begin
|
355
372
|
@te = @p+1
|
356
|
-
begin emit_sstring
|
373
|
+
begin emit_sstring; end
|
357
374
|
end
|
358
|
-
when
|
359
|
-
# line
|
375
|
+
when 4 then
|
376
|
+
# line 79 "lib/hotcell/lexer.rl"
|
360
377
|
begin
|
361
378
|
@te = @p+1
|
362
|
-
begin emit_dstring
|
379
|
+
begin emit_dstring; end
|
363
380
|
end
|
364
381
|
when 19 then
|
365
|
-
# line
|
382
|
+
# line 82 "lib/hotcell/lexer.rl"
|
366
383
|
begin
|
367
384
|
@te = @p+1
|
368
385
|
end
|
369
|
-
when
|
370
|
-
# line
|
386
|
+
when 23 then
|
387
|
+
# line 75 "lib/hotcell/lexer.rl"
|
371
388
|
begin
|
372
389
|
@te = @p
|
373
|
-
@p = @p - 1; begin emit_operator
|
390
|
+
@p = @p - 1; begin emit_operator; end
|
374
391
|
end
|
375
392
|
when 25 then
|
376
|
-
# line
|
393
|
+
# line 76 "lib/hotcell/lexer.rl"
|
377
394
|
begin
|
378
395
|
@te = @p
|
379
|
-
@p = @p - 1; begin
|
396
|
+
@p = @p - 1; begin emit_numeric; end
|
380
397
|
end
|
381
|
-
when
|
382
|
-
# line
|
398
|
+
when 27 then
|
399
|
+
# line 77 "lib/hotcell/lexer.rl"
|
383
400
|
begin
|
384
401
|
@te = @p
|
385
|
-
@p = @p - 1; begin
|
402
|
+
@p = @p - 1; begin emit_identifer; end
|
386
403
|
end
|
387
|
-
when
|
388
|
-
# line
|
404
|
+
when 26 then
|
405
|
+
# line 80 "lib/hotcell/lexer.rl"
|
389
406
|
begin
|
390
407
|
@te = @p
|
391
|
-
@p = @p - 1; begin
|
408
|
+
@p = @p - 1; begin emit_regexp; end
|
392
409
|
end
|
393
|
-
when
|
394
|
-
# line
|
410
|
+
when 24 then
|
411
|
+
# line 81 "lib/hotcell/lexer.rl"
|
412
|
+
begin
|
413
|
+
@te = @p
|
414
|
+
@p = @p - 1; begin emit_comment; end
|
415
|
+
end
|
416
|
+
when 11 then
|
417
|
+
# line 75 "lib/hotcell/lexer.rl"
|
395
418
|
begin
|
396
419
|
begin @p = (( @te))-1; end
|
397
|
-
begin emit_operator
|
420
|
+
begin emit_operator; end
|
398
421
|
end
|
399
|
-
when
|
400
|
-
# line
|
422
|
+
when 5 then
|
423
|
+
# line 81 "lib/hotcell/lexer.rl"
|
401
424
|
begin
|
402
425
|
begin @p = (( @te))-1; end
|
403
|
-
begin emit_comment
|
426
|
+
begin emit_comment; end
|
404
427
|
end
|
405
|
-
when
|
428
|
+
when 10 then
|
406
429
|
# line 1 "NONE"
|
407
430
|
begin
|
408
431
|
case act
|
409
432
|
when 2 then
|
410
433
|
begin begin @p = (( @te))-1; end
|
411
|
-
emit_operator
|
434
|
+
emit_operator; end
|
412
435
|
when 3 then
|
413
436
|
begin begin @p = (( @te))-1; end
|
414
|
-
emit_numeric
|
437
|
+
emit_numeric; end
|
415
438
|
end
|
416
439
|
end
|
417
|
-
when
|
418
|
-
# line
|
440
|
+
when 13 then
|
441
|
+
# line 86 "lib/hotcell/lexer.rl"
|
419
442
|
begin
|
420
443
|
@te = @p+1
|
421
|
-
begin emit_comment
|
444
|
+
begin emit_comment; begin
|
422
445
|
top -= 1
|
423
446
|
cs = stack[top]
|
424
447
|
_goto_level = _again
|
@@ -426,103 +449,121 @@ end
|
|
426
449
|
end
|
427
450
|
end
|
428
451
|
end
|
429
|
-
when
|
430
|
-
# line
|
452
|
+
when 30 then
|
453
|
+
# line 87 "lib/hotcell/lexer.rl"
|
431
454
|
begin
|
432
455
|
@te = @p
|
433
|
-
@p = @p - 1; begin emit_comment
|
456
|
+
@p = @p - 1; begin emit_comment; end
|
434
457
|
end
|
435
|
-
when
|
436
|
-
# line
|
458
|
+
when 12 then
|
459
|
+
# line 87 "lib/hotcell/lexer.rl"
|
437
460
|
begin
|
438
461
|
begin @p = (( @te))-1; end
|
439
|
-
begin emit_comment
|
462
|
+
begin emit_comment; end
|
440
463
|
end
|
441
|
-
when
|
442
|
-
# line
|
464
|
+
when 2 then
|
465
|
+
# line 91 "lib/hotcell/lexer.rl"
|
443
466
|
begin
|
444
467
|
@te = @p+1
|
445
|
-
begin emit_tag
|
468
|
+
begin emit_tag; begin
|
446
469
|
stack[top] = cs
|
447
470
|
top+= 1
|
448
|
-
cs =
|
471
|
+
cs = 17
|
449
472
|
_goto_level = _again
|
450
473
|
next
|
451
474
|
end
|
452
475
|
end
|
453
476
|
end
|
454
477
|
when 18 then
|
455
|
-
# line
|
478
|
+
# line 92 "lib/hotcell/lexer.rl"
|
456
479
|
begin
|
457
480
|
@te = @p+1
|
458
|
-
begin emit_comment
|
481
|
+
begin emit_comment; begin
|
459
482
|
stack[top] = cs
|
460
483
|
top+= 1
|
461
|
-
cs =
|
484
|
+
cs = 29
|
462
485
|
_goto_level = _again
|
463
486
|
next
|
464
487
|
end
|
465
488
|
end
|
466
489
|
end
|
467
|
-
when
|
468
|
-
# line
|
490
|
+
when 17 then
|
491
|
+
# line 91 "lib/hotcell/lexer.rl"
|
469
492
|
begin
|
470
493
|
@te = @p
|
471
|
-
@p = @p - 1; begin emit_tag
|
494
|
+
@p = @p - 1; begin emit_tag; begin
|
472
495
|
stack[top] = cs
|
473
496
|
top+= 1
|
474
|
-
cs =
|
497
|
+
cs = 17
|
475
498
|
_goto_level = _again
|
476
499
|
next
|
477
500
|
end
|
478
501
|
end
|
479
502
|
end
|
480
|
-
when
|
481
|
-
# line
|
503
|
+
when 16 then
|
504
|
+
# line 93 "lib/hotcell/lexer.rl"
|
482
505
|
begin
|
483
506
|
@te = @p
|
484
|
-
@p = @p - 1; begin emit_template
|
507
|
+
@p = @p - 1; begin emit_template; end
|
508
|
+
end
|
509
|
+
when 1 then
|
510
|
+
# line 91 "lib/hotcell/lexer.rl"
|
511
|
+
begin
|
512
|
+
begin @p = (( @te))-1; end
|
513
|
+
begin emit_tag; begin
|
514
|
+
stack[top] = cs
|
515
|
+
top+= 1
|
516
|
+
cs = 17
|
517
|
+
_goto_level = _again
|
518
|
+
next
|
519
|
+
end
|
520
|
+
end
|
485
521
|
end
|
486
522
|
when 21 then
|
487
523
|
# line 1 "NONE"
|
488
524
|
begin
|
489
525
|
@te = @p+1
|
490
526
|
end
|
491
|
-
# line
|
527
|
+
# line 9 "lib/hotcell/lexerr.rl"
|
492
528
|
begin
|
493
|
-
|
494
|
-
|
529
|
+
|
530
|
+
if (!regexp_possible)
|
531
|
+
emit_operator;
|
532
|
+
begin
|
533
|
+
cs = 17
|
495
534
|
_goto_level = _again
|
496
535
|
next
|
497
536
|
end
|
498
|
-
|
537
|
+
|
538
|
+
end
|
539
|
+
end
|
499
540
|
when 20 then
|
500
541
|
# line 1 "NONE"
|
501
542
|
begin
|
502
543
|
@te = @p+1
|
503
544
|
end
|
504
|
-
# line
|
545
|
+
# line 75 "lib/hotcell/lexer.rl"
|
505
546
|
begin
|
506
547
|
act = 2; end
|
507
|
-
when
|
548
|
+
when 22 then
|
508
549
|
# line 1 "NONE"
|
509
550
|
begin
|
510
551
|
@te = @p+1
|
511
552
|
end
|
512
|
-
# line
|
553
|
+
# line 76 "lib/hotcell/lexer.rl"
|
513
554
|
begin
|
514
555
|
act = 3; end
|
515
|
-
# line
|
556
|
+
# line 557 "lib/hotcell/lexerr.rb"
|
516
557
|
end
|
517
558
|
end
|
518
559
|
end
|
519
560
|
if _goto_level <= _again
|
520
561
|
case _puffer_lexer_to_state_actions[cs]
|
521
|
-
when
|
562
|
+
when 14 then
|
522
563
|
# line 1 "NONE"
|
523
564
|
begin
|
524
565
|
@ts = nil; end
|
525
|
-
# line
|
566
|
+
# line 567 "lib/hotcell/lexerr.rb"
|
526
567
|
end
|
527
568
|
|
528
569
|
if cs == 0
|
@@ -543,15 +584,15 @@ act = 3; end
|
|
543
584
|
next;
|
544
585
|
end
|
545
586
|
case _puffer_lexer_eof_actions[cs]
|
546
|
-
when
|
547
|
-
# line
|
587
|
+
when 8 then
|
588
|
+
# line 46 "lib/hotcell/lexer.rl"
|
548
589
|
begin
|
549
|
-
raise_unterminated_string
|
550
|
-
when
|
551
|
-
# line
|
590
|
+
raise_unterminated_string; end
|
591
|
+
when 3 then
|
592
|
+
# line 50 "lib/hotcell/lexer.rl"
|
552
593
|
begin
|
553
|
-
raise_unterminated_string
|
554
|
-
# line
|
594
|
+
raise_unterminated_string; end
|
595
|
+
# line 596 "lib/hotcell/lexerr.rb"
|
555
596
|
end
|
556
597
|
end
|
557
598
|
|
@@ -562,7 +603,7 @@ act = 3; end
|
|
562
603
|
end
|
563
604
|
end
|
564
605
|
|
565
|
-
# line
|
606
|
+
# line 47 "lib/hotcell/lexerr.rl"
|
566
607
|
#%
|
567
608
|
|
568
609
|
raise_unexpected_symbol unless @ts.nil?
|