vorax 0.4.2 → 5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. data/README.md +4 -29
  2. data/vorax.gemspec +3 -11
  3. metadata +4 -92
  4. data/.rspec +0 -1
  5. data/Rakefile +0 -30
  6. data/lib/vorax.rb +0 -60
  7. data/lib/vorax/base_funnel.rb +0 -30
  8. data/lib/vorax/output/html_convertor.rb +0 -120
  9. data/lib/vorax/output/html_funnel.rb +0 -79
  10. data/lib/vorax/output/pagezip_convertor.rb +0 -20
  11. data/lib/vorax/output/tablezip_convertor.rb +0 -22
  12. data/lib/vorax/output/vertical_convertor.rb +0 -53
  13. data/lib/vorax/output/zip_convertor.rb +0 -117
  14. data/lib/vorax/parser/argument.rb~ +0 -125
  15. data/lib/vorax/parser/conn_string.rb +0 -104
  16. data/lib/vorax/parser/grammars/alias.rb +0 -904
  17. data/lib/vorax/parser/grammars/alias.rl +0 -138
  18. data/lib/vorax/parser/grammars/column.rb +0 -454
  19. data/lib/vorax/parser/grammars/column.rl +0 -64
  20. data/lib/vorax/parser/grammars/common.rl +0 -107
  21. data/lib/vorax/parser/grammars/declare.rb +0 -9606
  22. data/lib/vorax/parser/grammars/declare.rl +0 -160
  23. data/lib/vorax/parser/grammars/for_block.rb +0 -440
  24. data/lib/vorax/parser/grammars/for_block.rl +0 -73
  25. data/lib/vorax/parser/grammars/plsql_def.rb +0 -539
  26. data/lib/vorax/parser/grammars/plsql_def.rl +0 -73
  27. data/lib/vorax/parser/grammars/statement.rb +0 -925
  28. data/lib/vorax/parser/grammars/statement.rl +0 -83
  29. data/lib/vorax/parser/parser.rb +0 -344
  30. data/lib/vorax/parser/plsql_structure.rb +0 -222
  31. data/lib/vorax/parser/plsql_walker.rb +0 -143
  32. data/lib/vorax/parser/statement_inspector.rb~ +0 -52
  33. data/lib/vorax/parser/stmt_inspector.rb +0 -78
  34. data/lib/vorax/parser/target_ref.rb +0 -110
  35. data/lib/vorax/sqlplus.rb +0 -273
  36. data/lib/vorax/version.rb +0 -7
  37. data/lib/vorax/vorax_io.rb +0 -70
  38. data/spec/column_spec.rb +0 -40
  39. data/spec/conn_string_spec.rb +0 -53
  40. data/spec/declare_spec.rb +0 -281
  41. data/spec/pagezip_spec.rb +0 -153
  42. data/spec/parser_spec.rb +0 -352
  43. data/spec/plsql_structure_spec.rb +0 -68
  44. data/spec/spec_helper.rb +0 -13
  45. data/spec/sql/create_objects.sql +0 -69
  46. data/spec/sql/dbms_crypto.spc +0 -339
  47. data/spec/sql/dbms_stats.spc +0 -4097
  48. data/spec/sql/drop_user.sql +0 -10
  49. data/spec/sql/muci.spc +0 -26
  50. data/spec/sql/setup_user.sql +0 -22
  51. data/spec/sql/test.fnc +0 -12
  52. data/spec/sql/test.pkg +0 -83
  53. data/spec/sqlplus_spec.rb +0 -52
  54. data/spec/stmt_inspector_spec.rb +0 -96
  55. data/spec/tablezip_spec.rb +0 -111
  56. data/spec/vertical_spec.rb +0 -150
@@ -1,160 +0,0 @@
1
- %%{
2
-
3
- machine declare;
4
-
5
- include common "common.rl";
6
-
7
- action start_identifier {
8
- @start = p
9
- }
10
-
11
- action end_identifier {
12
- @end = p - 1
13
- }
14
-
15
- action tail {
16
- p = p - 1
17
- te = p
18
- }
19
-
20
- prev_terminator = (';' ws*) | (ws+ (K_AS | K_IS | K_DECLARE) ws+);
21
- next_terminator = ';' | (ws+ (K_AS | K_IS) ws+);
22
- id = identifier >start_identifier %end_identifier;
23
- variable_name = id - (K_CURSOR | K_TYPE | K_FUNCTION | K_PROCEDURE | K_END | K_PRAGMA);
24
- variable_type = qualified_identifier (K_ROWTYPE | K_VARTYPE)?;
25
-
26
- constant = prev_terminator
27
- (id ws+ K_CONSTANT ws+
28
- (qualified_identifier >{@start_qi = p} %{@end_qi = p - 1})
29
- (( any )* :>> ';') %tail
30
- ) >{@start_capture = p};
31
-
32
- exception = prev_terminator
33
- (variable_name ws+ K_EXCEPTION
34
- (( any )* :>> ';') %tail
35
- ) >{@start_capture = p};
36
-
37
- cursor = prev_terminator
38
- (K_CURSOR ws+ id ws+ K_IS ws+
39
- (( any )* :>> ';') %tail
40
- ) >{@start_capture = p};
41
-
42
- type = prev_terminator
43
- (K_TYPE ws+ id ws+ K_IS ws+
44
- (qualified_identifier >{@start_qi = p} %{@end_qi = p - 1})
45
- (( any )* :>> ';') %tail
46
- ) >{@start_capture = p};
47
-
48
- var = prev_terminator
49
- (
50
- variable_name ws+ (variable_type >{@start_qi = p} %{@end_qi = p - 1})
51
- (( any )* :>> ';') %tail
52
- ) >{@start_capture = p};
53
-
54
- function = prev_terminator
55
- (
56
- K_FUNCTION ws+ id
57
- (( any )* :>> next_terminator) %tail
58
- ) >{@start_capture = p};
59
-
60
- procedure = prev_terminator
61
- (
62
- K_PROCEDURE ws+ id
63
- (( any )* :>> next_terminator) %tail
64
- ) >{@start_capture = p};
65
-
66
- main := |*
67
- squoted_string;
68
- dquoted_string;
69
- comment;
70
- constant => { add_item(:constant, te) };
71
- exception => { add_item(:exception, te) };
72
- cursor => { add_item(:cursor, te) };
73
- type => { add_item(:type, te) };
74
- var => { add_item(:variable, te) };
75
- function => { add_item(:function, te) };
76
- procedure => { add_item(:procedure, te) };
77
- any => {};
78
- *|;
79
-
80
- }%%
81
-
82
- require 'set'
83
-
84
- module Vorax
85
-
86
- module Parser
87
-
88
- class DeclareItem
89
-
90
- attr_reader :name
91
- attr_accessor :is_a, :captured_text, :type
92
-
93
- def initialize(name, is_a = nil, type = nil, captured_text = '')
94
- @name = name
95
- @is_a = is_a
96
- @type = type
97
- @captured_text = captured_text
98
- end
99
-
100
- def ==(obj)
101
- self.name == obj.name && self.is_a == obj.is_a && self.type == obj.type && self.captured_text == obj.captured_text
102
- end
103
-
104
- def debug_constructor
105
- "DeclareItem.new(#{@name.inspect}, #{@is_a.inspect}, #{@type.inspect}, #{@captured_text.inspect})"
106
- end
107
-
108
- def to_vim
109
- "{'name' : #{@name.to_s.inspect}," +
110
- " 'is_a' : #{@is_a.to_s.inspect}," +
111
- " 'type' : #{@type.to_s.inspect}," +
112
- " 'captured_text' : #{@captured_text.to_s.inspect}}"
113
- end
114
-
115
- end
116
-
117
- # A class used to parse a PLSQL package spec.
118
- class Declare
119
-
120
- attr_reader :items
121
-
122
- def initialize(declare_code)
123
- @code = Parser.remove_all_comments(declare_code)
124
- walk(@code)
125
- end
126
-
127
- # Walks the provided spec in order to compute the structure.
128
- #
129
- # param data [String] the package spec
130
- def walk(data)
131
- @items = []
132
- if data
133
- eof = data.length
134
- %% write data;
135
- %% write init;
136
- %% write exec;
137
- end
138
- end
139
-
140
- def to_vim
141
- "[ #{@items.map { |i| i.to_vim }.join(',')} ]"
142
- end
143
-
144
- private
145
-
146
- def add_item(type, te)
147
- item = DeclareItem.new(@code[(@start..@end)])
148
- item.is_a = type
149
- item.type = @code[(@start_qi..@end_qi)] if @start_qi && @end_qi
150
- item.captured_text = @code[(@start_capture..te)]
151
- @items << item
152
- @start_qi = @end_qi = nil
153
- end
154
-
155
- end
156
-
157
- end
158
-
159
- end
160
-
@@ -1,440 +0,0 @@
1
-
2
- # line 1 "lib/vorax/parser/grammars/for_block.rl"
3
-
4
- # line 47 "lib/vorax/parser/grammars/for_block.rl"
5
-
6
-
7
-
8
- module Vorax
9
-
10
- module Parser
11
-
12
- def self.describe_for(data)
13
- @cursor_var = nil
14
- @for_var = nil
15
- @expr = nil
16
- @end_pos = -1
17
- if data
18
- eof = data.length
19
-
20
- # line 21 "lib/vorax/parser/grammars/for_block.rb"
21
- class << self
22
- attr_accessor :_for_block_actions
23
- private :_for_block_actions, :_for_block_actions=
24
- end
25
- self._for_block_actions = [
26
- 0, 1, 0, 1, 1, 1, 3, 1,
27
- 4, 1, 5, 2, 6, 2
28
- ]
29
-
30
- class << self
31
- attr_accessor :_for_block_key_offsets
32
- private :_for_block_key_offsets, :_for_block_key_offsets=
33
- end
34
- self._for_block_key_offsets = [
35
- 0, 0, 2, 4, 6, 11, 24, 25,
36
- 30, 37, 38, 39, 40, 41, 43, 45,
37
- 51, 69, 70, 76, 83, 84, 85, 86,
38
- 87, 89, 91, 93, 95, 100, 101, 102,
39
- 103, 104, 106, 114, 115, 121, 129, 130,
40
- 135, 149, 164, 179, 180, 181, 182, 183,
41
- 185, 193, 199, 200, 201, 202, 209, 210,
42
- 211, 212, 213, 215, 222, 223, 224, 226,
43
- 243, 260, 277, 294, 311, 328, 343, 350,
44
- 351, 352, 353, 354, 356, 370, 371, 372,
45
- 373, 374, 376
46
- ]
47
-
48
- class << self
49
- attr_accessor :_for_block_trans_keys
50
- private :_for_block_trans_keys, :_for_block_trans_keys=
51
- end
52
- self._for_block_trans_keys = [
53
- 70, 102, 79, 111, 82, 114, 32, 45,
54
- 47, 9, 13, 32, 34, 45, 47, 95,
55
- 9, 13, 35, 36, 65, 90, 97, 122,
56
- 34, 32, 45, 47, 9, 13, 32, 45,
57
- 47, 73, 105, 9, 13, 45, 10, 42,
58
- 42, 42, 47, 78, 110, 32, 40, 45,
59
- 47, 9, 13, 32, 34, 40, 45, 47,
60
- 82, 95, 114, 9, 13, 35, 36, 48,
61
- 57, 65, 90, 97, 122, 34, 32, 45,
62
- 46, 47, 9, 13, 32, 45, 47, 76,
63
- 108, 9, 13, 45, 10, 42, 42, 42,
64
- 47, 79, 111, 79, 111, 80, 112, 32,
65
- 45, 47, 9, 13, 45, 10, 42, 42,
66
- 42, 47, 34, 95, 35, 36, 65, 90,
67
- 97, 122, 34, 32, 45, 46, 47, 9,
68
- 13, 34, 95, 35, 36, 65, 90, 97,
69
- 122, 34, 32, 45, 47, 9, 13, 32,
70
- 45, 47, 95, 9, 13, 35, 36, 48,
71
- 57, 65, 90, 97, 122, 32, 45, 46,
72
- 47, 95, 9, 13, 35, 36, 48, 57,
73
- 65, 90, 97, 122, 32, 45, 46, 47,
74
- 95, 9, 13, 35, 36, 48, 57, 65,
75
- 90, 97, 122, 45, 10, 42, 42, 42,
76
- 47, 32, 45, 46, 47, 9, 13, 48,
77
- 57, 32, 45, 46, 47, 9, 13, 45,
78
- 10, 46, 32, 45, 47, 9, 13, 48,
79
- 57, 45, 10, 42, 42, 42, 47, 32,
80
- 45, 47, 9, 13, 48, 57, 42, 42,
81
- 42, 47, 32, 45, 46, 47, 69, 95,
82
- 101, 9, 13, 35, 36, 48, 57, 65,
83
- 90, 97, 122, 32, 45, 46, 47, 86,
84
- 95, 118, 9, 13, 35, 36, 48, 57,
85
- 65, 90, 97, 122, 32, 45, 46, 47,
86
- 69, 95, 101, 9, 13, 35, 36, 48,
87
- 57, 65, 90, 97, 122, 32, 45, 46,
88
- 47, 82, 95, 114, 9, 13, 35, 36,
89
- 48, 57, 65, 90, 97, 122, 32, 45,
90
- 46, 47, 83, 95, 115, 9, 13, 35,
91
- 36, 48, 57, 65, 90, 97, 122, 32,
92
- 45, 46, 47, 69, 95, 101, 9, 13,
93
- 35, 36, 48, 57, 65, 90, 97, 122,
94
- 32, 45, 46, 47, 95, 9, 13, 35,
95
- 36, 48, 57, 65, 90, 97, 122, 32,
96
- 45, 47, 9, 13, 48, 57, 45, 10,
97
- 42, 42, 42, 47, 32, 45, 47, 95,
98
- 9, 13, 35, 36, 48, 57, 65, 90,
99
- 97, 122, 45, 10, 42, 42, 42, 47,
100
- 32, 45, 47, 9, 13, 0
101
- ]
102
-
103
- class << self
104
- attr_accessor :_for_block_single_lengths
105
- private :_for_block_single_lengths, :_for_block_single_lengths=
106
- end
107
- self._for_block_single_lengths = [
108
- 0, 2, 2, 2, 3, 5, 1, 3,
109
- 5, 1, 1, 1, 1, 2, 2, 4,
110
- 8, 1, 4, 5, 1, 1, 1, 1,
111
- 2, 2, 2, 2, 3, 1, 1, 1,
112
- 1, 2, 2, 1, 4, 2, 1, 3,
113
- 4, 5, 5, 1, 1, 1, 1, 2,
114
- 4, 4, 1, 1, 1, 3, 1, 1,
115
- 1, 1, 2, 3, 1, 1, 2, 7,
116
- 7, 7, 7, 7, 7, 5, 3, 1,
117
- 1, 1, 1, 2, 4, 1, 1, 1,
118
- 1, 2, 3
119
- ]
120
-
121
- class << self
122
- attr_accessor :_for_block_range_lengths
123
- private :_for_block_range_lengths, :_for_block_range_lengths=
124
- end
125
- self._for_block_range_lengths = [
126
- 0, 0, 0, 0, 1, 4, 0, 1,
127
- 1, 0, 0, 0, 0, 0, 0, 1,
128
- 5, 0, 1, 1, 0, 0, 0, 0,
129
- 0, 0, 0, 0, 1, 0, 0, 0,
130
- 0, 0, 3, 0, 1, 3, 0, 1,
131
- 5, 5, 5, 0, 0, 0, 0, 0,
132
- 2, 1, 0, 0, 0, 2, 0, 0,
133
- 0, 0, 0, 2, 0, 0, 0, 5,
134
- 5, 5, 5, 5, 5, 5, 2, 0,
135
- 0, 0, 0, 0, 5, 0, 0, 0,
136
- 0, 0, 1
137
- ]
138
-
139
- class << self
140
- attr_accessor :_for_block_index_offsets
141
- private :_for_block_index_offsets, :_for_block_index_offsets=
142
- end
143
- self._for_block_index_offsets = [
144
- 0, 0, 3, 6, 9, 14, 24, 26,
145
- 31, 38, 40, 42, 44, 46, 49, 52,
146
- 58, 72, 74, 80, 87, 89, 91, 93,
147
- 95, 98, 101, 104, 107, 112, 114, 116,
148
- 118, 120, 123, 129, 131, 137, 143, 145,
149
- 150, 160, 171, 182, 184, 186, 188, 190,
150
- 193, 200, 206, 208, 210, 212, 218, 220,
151
- 222, 224, 226, 229, 235, 237, 239, 242,
152
- 255, 268, 281, 294, 307, 320, 331, 337,
153
- 339, 341, 343, 345, 348, 358, 360, 362,
154
- 364, 366, 369
155
- ]
156
-
157
- class << self
158
- attr_accessor :_for_block_indicies
159
- private :_for_block_indicies, :_for_block_indicies=
160
- end
161
- self._for_block_indicies = [
162
- 0, 0, 1, 2, 2, 1, 3, 3,
163
- 1, 4, 5, 6, 4, 1, 4, 7,
164
- 5, 6, 8, 4, 8, 8, 8, 1,
165
- 10, 9, 11, 12, 13, 11, 1, 14,
166
- 15, 16, 17, 17, 14, 1, 18, 1,
167
- 14, 18, 19, 1, 20, 19, 20, 14,
168
- 19, 21, 21, 1, 22, 23, 24, 25,
169
- 22, 1, 22, 26, 23, 24, 25, 29,
170
- 27, 29, 22, 27, 28, 27, 27, 1,
171
- 31, 30, 32, 33, 34, 35, 32, 1,
172
- 36, 37, 38, 39, 39, 36, 1, 40,
173
- 1, 36, 40, 41, 1, 42, 41, 42,
174
- 36, 41, 43, 43, 1, 44, 44, 1,
175
- 45, 45, 1, 46, 47, 48, 46, 1,
176
- 49, 1, 46, 49, 50, 1, 51, 50,
177
- 51, 46, 50, 52, 53, 53, 53, 53,
178
- 1, 54, 52, 32, 33, 55, 35, 32,
179
- 1, 56, 57, 57, 57, 57, 1, 58,
180
- 56, 32, 33, 35, 32, 1, 32, 33,
181
- 35, 57, 32, 57, 57, 57, 57, 1,
182
- 32, 33, 55, 35, 53, 32, 53, 53,
183
- 53, 53, 1, 32, 33, 34, 35, 59,
184
- 32, 59, 59, 59, 59, 1, 60, 1,
185
- 22, 60, 61, 1, 62, 61, 62, 22,
186
- 61, 63, 64, 65, 66, 63, 28, 1,
187
- 63, 64, 65, 66, 63, 1, 67, 1,
188
- 63, 67, 68, 1, 68, 69, 70, 68,
189
- 71, 1, 72, 1, 68, 72, 73, 1,
190
- 74, 73, 74, 68, 73, 36, 37, 38,
191
- 36, 71, 1, 75, 1, 76, 75, 76,
192
- 63, 75, 32, 33, 34, 35, 77, 59,
193
- 77, 32, 59, 59, 59, 59, 1, 32,
194
- 33, 34, 35, 78, 59, 78, 32, 59,
195
- 59, 59, 59, 1, 32, 33, 34, 35,
196
- 79, 59, 79, 32, 59, 59, 59, 59,
197
- 1, 32, 33, 34, 35, 80, 59, 80,
198
- 32, 59, 59, 59, 59, 1, 32, 33,
199
- 34, 35, 81, 59, 81, 32, 59, 59,
200
- 59, 59, 1, 32, 33, 34, 35, 82,
201
- 59, 82, 32, 59, 59, 59, 59, 1,
202
- 83, 84, 34, 85, 59, 83, 59, 59,
203
- 59, 59, 1, 83, 84, 85, 83, 28,
204
- 1, 86, 1, 83, 86, 87, 1, 88,
205
- 87, 88, 83, 87, 11, 12, 13, 89,
206
- 11, 89, 89, 89, 89, 1, 90, 1,
207
- 4, 90, 91, 1, 92, 91, 92, 4,
208
- 91, 46, 47, 48, 46, 1, 0
209
- ]
210
-
211
- class << self
212
- attr_accessor :_for_block_trans_targs
213
- private :_for_block_trans_targs, :_for_block_trans_targs=
214
- end
215
- self._for_block_trans_targs = [
216
- 2, 0, 3, 4, 5, 77, 79, 6,
217
- 76, 6, 7, 8, 9, 11, 8, 9,
218
- 11, 14, 10, 12, 13, 15, 16, 19,
219
- 43, 45, 17, 42, 48, 63, 17, 18,
220
- 19, 20, 34, 22, 19, 20, 22, 25,
221
- 21, 23, 24, 26, 27, 28, 82, 29,
222
- 31, 30, 32, 33, 35, 41, 36, 37,
223
- 38, 40, 39, 42, 44, 46, 47, 49,
224
- 50, 52, 60, 51, 53, 54, 56, 59,
225
- 55, 57, 58, 61, 62, 64, 65, 66,
226
- 67, 68, 69, 70, 71, 73, 72, 74,
227
- 75, 76, 78, 80, 81
228
- ]
229
-
230
- class << self
231
- attr_accessor :_for_block_trans_actions
232
- private :_for_block_trans_actions, :_for_block_trans_actions=
233
- end
234
- self._for_block_trans_actions = [
235
- 0, 0, 0, 0, 0, 0, 0, 9,
236
- 9, 0, 0, 11, 11, 11, 0, 0,
237
- 0, 0, 0, 0, 0, 0, 0, 1,
238
- 0, 0, 5, 5, 0, 5, 0, 0,
239
- 7, 7, 0, 7, 0, 0, 0, 0,
240
- 0, 0, 0, 0, 0, 0, 3, 0,
241
- 0, 0, 0, 0, 0, 0, 0, 0,
242
- 0, 0, 0, 0, 0, 0, 0, 0,
243
- 0, 0, 0, 0, 0, 0, 0, 0,
244
- 0, 0, 0, 0, 0, 0, 0, 0,
245
- 0, 0, 0, 0, 0, 0, 0, 0,
246
- 0, 0, 0, 0, 0
247
- ]
248
-
249
- class << self
250
- attr_accessor :for_block_start
251
- end
252
- self.for_block_start = 1;
253
- class << self
254
- attr_accessor :for_block_first_final
255
- end
256
- self.for_block_first_final = 82;
257
- class << self
258
- attr_accessor :for_block_error
259
- end
260
- self.for_block_error = 0;
261
-
262
- class << self
263
- attr_accessor :for_block_en_for_stmt
264
- end
265
- self.for_block_en_for_stmt = 1;
266
-
267
-
268
- # line 62 "lib/vorax/parser/grammars/for_block.rl"
269
-
270
- # line 271 "lib/vorax/parser/grammars/for_block.rb"
271
- begin
272
- p ||= 0
273
- pe ||= data.length
274
- cs = for_block_start
275
- end
276
-
277
- # line 63 "lib/vorax/parser/grammars/for_block.rl"
278
-
279
- # line 280 "lib/vorax/parser/grammars/for_block.rb"
280
- begin
281
- _klen, _trans, _keys, _acts, _nacts = nil
282
- _goto_level = 0
283
- _resume = 10
284
- _eof_trans = 15
285
- _again = 20
286
- _test_eof = 30
287
- _out = 40
288
- while true
289
- _trigger_goto = false
290
- if _goto_level <= 0
291
- if p == pe
292
- _goto_level = _test_eof
293
- next
294
- end
295
- if cs == 0
296
- _goto_level = _out
297
- next
298
- end
299
- end
300
- if _goto_level <= _resume
301
- _keys = _for_block_key_offsets[cs]
302
- _trans = _for_block_index_offsets[cs]
303
- _klen = _for_block_single_lengths[cs]
304
- _break_match = false
305
-
306
- begin
307
- if _klen > 0
308
- _lower = _keys
309
- _upper = _keys + _klen - 1
310
-
311
- loop do
312
- break if _upper < _lower
313
- _mid = _lower + ( (_upper - _lower) >> 1 )
314
-
315
- if data[p].ord < _for_block_trans_keys[_mid]
316
- _upper = _mid - 1
317
- elsif data[p].ord > _for_block_trans_keys[_mid]
318
- _lower = _mid + 1
319
- else
320
- _trans += (_mid - _keys)
321
- _break_match = true
322
- break
323
- end
324
- end # loop
325
- break if _break_match
326
- _keys += _klen
327
- _trans += _klen
328
- end
329
- _klen = _for_block_range_lengths[cs]
330
- if _klen > 0
331
- _lower = _keys
332
- _upper = _keys + (_klen << 1) - 2
333
- loop do
334
- break if _upper < _lower
335
- _mid = _lower + (((_upper-_lower) >> 1) & ~1)
336
- if data[p].ord < _for_block_trans_keys[_mid]
337
- _upper = _mid - 2
338
- elsif data[p].ord > _for_block_trans_keys[_mid+1]
339
- _lower = _mid + 2
340
- else
341
- _trans += ((_mid - _keys) >> 1)
342
- _break_match = true
343
- break
344
- end
345
- end # loop
346
- break if _break_match
347
- _trans += _klen
348
- end
349
- end while false
350
- _trans = _for_block_indicies[_trans]
351
- cs = _for_block_trans_targs[_trans]
352
- if _for_block_trans_actions[_trans] != 0
353
- _acts = _for_block_trans_actions[_trans]
354
- _nacts = _for_block_actions[_acts]
355
- _acts += 1
356
- while _nacts > 0
357
- _nacts -= 1
358
- _acts += 1
359
- case _for_block_actions[_acts - 1]
360
- when 0 then
361
- # line 7 "lib/vorax/parser/grammars/for_block.rl"
362
- begin
363
-
364
- @expr = Parser.walk_balanced_paren(data[(p..-1)])
365
- p += @expr.length - 1
366
- end
367
- when 1 then
368
- # line 12 "lib/vorax/parser/grammars/for_block.rl"
369
- begin
370
-
371
- @end_pos = p
372
- end
373
- when 2 then
374
- # line 16 "lib/vorax/parser/grammars/for_block.rl"
375
- begin
376
-
377
- @for_var = data[(@start..@end)]
378
- end
379
- when 3 then
380
- # line 20 "lib/vorax/parser/grammars/for_block.rl"
381
- begin
382
-
383
- @cursor_var_start = p
384
- end
385
- when 4 then
386
- # line 24 "lib/vorax/parser/grammars/for_block.rl"
387
- begin
388
-
389
- @cursor_var = data[(@cursor_var_start..p-1)]
390
- end
391
- when 5 then
392
- # line 28 "lib/vorax/parser/grammars/for_block.rl"
393
- begin
394
-
395
- @start = p
396
- end
397
- when 6 then
398
- # line 32 "lib/vorax/parser/grammars/for_block.rl"
399
- begin
400
-
401
- @end = p - 1
402
- end
403
- # line 404 "lib/vorax/parser/grammars/for_block.rb"
404
- end # action switch
405
- end
406
- end
407
- if _trigger_goto
408
- next
409
- end
410
- end
411
- if _goto_level <= _again
412
- if cs == 0
413
- _goto_level = _out
414
- next
415
- end
416
- p += 1
417
- if p != pe
418
- _goto_level = _resume
419
- next
420
- end
421
- end
422
- if _goto_level <= _test_eof
423
- end
424
- if _goto_level <= _out
425
- break
426
- end
427
- end
428
- end
429
-
430
- # line 64 "lib/vorax/parser/grammars/for_block.rl"
431
- end
432
- return {:cursor_var => @cursor_var,
433
- :for_var => @for_var,
434
- :expr => @expr,
435
- :end_pos => @end_pos}
436
- end
437
-
438
- end
439
-
440
- end