vorax 0.2.0 → 0.3.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.
@@ -0,0 +1,67 @@
1
+ %%{
2
+
3
+ machine for_block;
4
+
5
+ include common "common.rl";
6
+
7
+ action expr_start {
8
+ @expr = Parser.walk_balanced_paren(data[(p..-1)])
9
+ p += @expr.length - 1
10
+ }
11
+
12
+ action mark_end {
13
+ @end_pos = p
14
+ }
15
+
16
+ action for_var {
17
+ @for_var = data[(@start..@end)]
18
+ }
19
+
20
+ action cursor_var {
21
+ @cursor_var = data[(@start..@end)]
22
+ }
23
+
24
+ action start_identifier {
25
+ @start = p
26
+ }
27
+
28
+ action end_identifier {
29
+ @end = p - 1
30
+ }
31
+
32
+ # a bracket expression
33
+ expression = '(' >expr_start;
34
+ id = identifier >start_identifier %end_identifier;
35
+
36
+ for_stmt_range = ws+ (K_REVERSE ws+)? digit+ ws* '..' ws* digit+ ws+;
37
+ for_stmt_query = ws* expression ws*;
38
+ for_stmt_cursor = ws+ (id - K_REVERSE) %cursor_var ws+;
39
+ for_stmt := (K_FOR ws+ id %for_var ws+ K_IN (for_stmt_range | for_stmt_query | for_stmt_cursor) K_LOOP ws+) @mark_end;
40
+
41
+ }%%
42
+
43
+
44
+ module Vorax
45
+
46
+ module Parser
47
+
48
+ def self.describe_for(data)
49
+ @cursor_var = nil
50
+ @for_var = nil
51
+ @expr = nil
52
+ @end_pos = -1
53
+ if data
54
+ eof = data.length
55
+ %% write data;
56
+ %% write init;
57
+ %% write exec;
58
+ end
59
+ return {:cursor_var => @cursor_var,
60
+ :for_var => @for_var,
61
+ :expr => @expr,
62
+ :end_pos => @end_pos}
63
+ end
64
+
65
+ end
66
+
67
+ end
@@ -1,7 +1,7 @@
1
1
 
2
- # line 1 "/home/talek/Dropbox/ruby-vorax/lib/vorax/parser/grammars/plsql_def.rl"
2
+ # line 1 "lib/vorax/parser/grammars/plsql_def.rl"
3
3
 
4
- # line 33 "/home/talek/Dropbox/ruby-vorax/lib/vorax/parser/grammars/plsql_def.rl"
4
+ # line 45 "lib/vorax/parser/grammars/plsql_def.rl"
5
5
 
6
6
 
7
7
  module Vorax
@@ -16,17 +16,20 @@ module Vorax
16
16
  # fragment ends (immediatelly after "AS|IS"), :type => 'SPEC' or 'BODY'.
17
17
  def self.plsql_def(data)
18
18
  @end_pos = -1
19
+ @name = ""
20
+ @type = ""
19
21
  if data
20
22
  eof = data.length
21
23
 
22
- # line 23 "/home/talek/Dropbox/ruby-vorax/lib/vorax/parser/grammars/plsql_def.rb"
24
+ # line 25 "lib/vorax/parser/grammars/plsql_def.rb"
23
25
  class << self
24
26
  attr_accessor :_plsql_def_actions
25
27
  private :_plsql_def_actions, :_plsql_def_actions=
26
28
  end
27
29
  self._plsql_def_actions = [
28
30
  0, 1, 0, 1, 1, 1, 2, 1,
29
- 3, 1, 4, 2, 3, 0
31
+ 3, 1, 4, 1, 5, 1, 6, 2,
32
+ 5, 0
30
33
  ]
31
34
 
32
35
  class << self
@@ -34,19 +37,21 @@ class << self
34
37
  private :_plsql_def_key_offsets, :_plsql_def_key_offsets=
35
38
  end
36
39
  self._plsql_def_key_offsets = [
37
- 0, 0, 6, 8, 10, 16, 34, 35,
38
- 41, 42, 43, 44, 45, 47, 62, 63,
39
- 64, 65, 66, 68, 85, 94, 111, 128,
40
- 145, 147, 149, 151, 153, 155, 157, 162,
41
- 177, 178, 184, 193, 194, 195, 196, 197,
42
- 199, 201, 206, 207, 208, 209, 210, 212,
43
- 220, 221, 226, 240, 255, 256, 257, 258,
44
- 259, 261, 278, 295, 312, 327, 344, 345,
45
- 351, 360, 361, 362, 363, 364, 366, 368,
46
- 373, 374, 375, 376, 377, 379, 387, 388,
47
- 393, 407, 422, 423, 424, 425, 426, 428,
48
- 445, 460, 461, 462, 463, 464, 466, 468,
49
- 470, 470, 475, 480
40
+ 0, 0, 6, 8, 10, 20, 38, 39,
41
+ 45, 46, 47, 48, 49, 51, 66, 67,
42
+ 68, 69, 70, 72, 89, 104, 110, 111,
43
+ 112, 113, 114, 116, 133, 150, 167, 182,
44
+ 188, 189, 190, 191, 192, 194, 196, 198,
45
+ 200, 202, 204, 206, 208, 210, 212, 214,
46
+ 219, 234, 235, 241, 250, 251, 252, 253,
47
+ 254, 256, 258, 263, 264, 265, 266, 267,
48
+ 269, 277, 278, 283, 297, 312, 313, 314,
49
+ 315, 316, 318, 335, 352, 369, 384, 401,
50
+ 402, 408, 417, 418, 419, 420, 421, 423,
51
+ 425, 430, 431, 432, 433, 434, 436, 444,
52
+ 445, 450, 464, 479, 480, 481, 482, 483,
53
+ 485, 502, 517, 518, 519, 520, 521, 523,
54
+ 525, 527, 527, 532, 537
50
55
  ]
51
56
 
52
57
  class << self
@@ -55,27 +60,55 @@ class << self
55
60
  end
56
61
  self._plsql_def_trans_keys = [
57
62
  69, 80, 84, 101, 112, 116, 78, 110,
58
- 68, 100, 32, 45, 47, 59, 9, 13,
59
- 32, 34, 45, 47, 59, 73, 76, 95,
60
- 105, 108, 9, 13, 35, 36, 65, 90,
61
- 97, 122, 34, 32, 45, 47, 59, 9,
62
- 13, 45, 10, 42, 42, 42, 47, 32,
63
- 45, 47, 59, 95, 9, 13, 35, 36,
64
- 48, 57, 65, 90, 97, 122, 45, 10,
63
+ 68, 100, 32, 45, 47, 59, 73, 76,
64
+ 105, 108, 9, 13, 32, 34, 45, 47,
65
+ 59, 73, 76, 95, 105, 108, 9, 13,
66
+ 35, 36, 65, 90, 97, 122, 34, 32,
67
+ 45, 47, 59, 9, 13, 45, 10, 42,
68
+ 42, 42, 47, 32, 45, 47, 59, 95,
69
+ 9, 13, 35, 36, 48, 57, 65, 90,
70
+ 97, 122, 45, 10, 42, 42, 42, 47,
71
+ 32, 45, 47, 59, 70, 95, 102, 9,
72
+ 13, 35, 36, 48, 57, 65, 90, 97,
73
+ 122, 32, 45, 47, 59, 95, 9, 13,
74
+ 35, 36, 48, 57, 65, 90, 97, 122,
75
+ 32, 45, 47, 59, 9, 13, 45, 10,
65
76
  42, 42, 42, 47, 32, 45, 47, 59,
66
- 70, 95, 102, 9, 13, 35, 36, 48,
67
- 57, 65, 90, 97, 122, 95, 35, 36,
77
+ 79, 95, 111, 9, 13, 35, 36, 48,
78
+ 57, 65, 90, 97, 122, 32, 45, 47,
79
+ 59, 79, 95, 111, 9, 13, 35, 36,
68
80
  48, 57, 65, 90, 97, 122, 32, 45,
69
- 47, 59, 79, 95, 111, 9, 13, 35,
81
+ 47, 59, 80, 95, 112, 9, 13, 35,
82
+ 36, 48, 57, 65, 90, 97, 122, 32,
83
+ 45, 47, 59, 95, 9, 13, 35, 36,
84
+ 48, 57, 65, 90, 97, 122, 32, 45,
85
+ 47, 59, 9, 13, 45, 10, 42, 42,
86
+ 42, 47, 70, 102, 79, 111, 79, 111,
87
+ 80, 112, 65, 97, 67, 99, 75, 107,
88
+ 65, 97, 71, 103, 69, 101, 32, 45,
89
+ 47, 9, 13, 32, 34, 45, 47, 66,
90
+ 95, 98, 9, 13, 35, 36, 65, 90,
91
+ 97, 122, 34, 32, 45, 46, 47, 9,
92
+ 13, 32, 45, 47, 65, 73, 97, 105,
93
+ 9, 13, 45, 10, 42, 42, 42, 47,
94
+ 83, 115, 32, 45, 47, 9, 13, 45,
95
+ 10, 42, 42, 42, 47, 34, 95, 35,
96
+ 36, 65, 90, 97, 122, 34, 32, 45,
97
+ 47, 9, 13, 32, 45, 47, 95, 9,
98
+ 13, 35, 36, 48, 57, 65, 90, 97,
99
+ 122, 32, 45, 46, 47, 95, 9, 13,
100
+ 35, 36, 48, 57, 65, 90, 97, 122,
101
+ 45, 10, 42, 42, 42, 47, 32, 45,
102
+ 46, 47, 79, 95, 111, 9, 13, 35,
70
103
  36, 48, 57, 65, 90, 97, 122, 32,
71
- 45, 47, 59, 79, 95, 111, 9, 13,
104
+ 45, 46, 47, 68, 95, 100, 9, 13,
72
105
  35, 36, 48, 57, 65, 90, 97, 122,
73
- 32, 45, 47, 59, 80, 95, 112, 9,
106
+ 32, 45, 46, 47, 89, 95, 121, 9,
74
107
  13, 35, 36, 48, 57, 65, 90, 97,
75
- 122, 65, 97, 67, 99, 75, 107, 65,
76
- 97, 71, 103, 69, 101, 32, 45, 47,
77
- 9, 13, 32, 34, 45, 47, 66, 95,
78
- 98, 9, 13, 35, 36, 65, 90, 97,
108
+ 122, 32, 45, 46, 47, 95, 9, 13,
109
+ 35, 36, 48, 57, 65, 90, 97, 122,
110
+ 32, 34, 45, 47, 65, 73, 95, 97,
111
+ 105, 9, 13, 35, 36, 66, 90, 98,
79
112
  122, 34, 32, 45, 46, 47, 9, 13,
80
113
  32, 45, 47, 65, 73, 97, 105, 9,
81
114
  13, 45, 10, 42, 42, 42, 47, 83,
@@ -87,35 +120,14 @@ self._plsql_def_trans_keys = [
87
120
  32, 45, 46, 47, 95, 9, 13, 35,
88
121
  36, 48, 57, 65, 90, 97, 122, 45,
89
122
  10, 42, 42, 42, 47, 32, 45, 46,
90
- 47, 79, 95, 111, 9, 13, 35, 36,
123
+ 47, 83, 95, 115, 9, 13, 35, 36,
91
124
  48, 57, 65, 90, 97, 122, 32, 45,
92
- 46, 47, 68, 95, 100, 9, 13, 35,
93
- 36, 48, 57, 65, 90, 97, 122, 32,
94
- 45, 46, 47, 89, 95, 121, 9, 13,
95
- 35, 36, 48, 57, 65, 90, 97, 122,
96
- 32, 45, 46, 47, 95, 9, 13, 35,
97
- 36, 48, 57, 65, 90, 97, 122, 32,
98
- 34, 45, 47, 65, 73, 95, 97, 105,
99
- 9, 13, 35, 36, 66, 90, 98, 122,
100
- 34, 32, 45, 46, 47, 9, 13, 32,
101
- 45, 47, 65, 73, 97, 105, 9, 13,
102
- 45, 10, 42, 42, 42, 47, 83, 115,
103
- 32, 45, 47, 9, 13, 45, 10, 42,
104
- 42, 42, 47, 34, 95, 35, 36, 65,
105
- 90, 97, 122, 34, 32, 45, 47, 9,
106
- 13, 32, 45, 47, 95, 9, 13, 35,
107
- 36, 48, 57, 65, 90, 97, 122, 32,
108
- 45, 46, 47, 95, 9, 13, 35, 36,
109
- 48, 57, 65, 90, 97, 122, 45, 10,
110
- 42, 42, 42, 47, 32, 45, 46, 47,
111
- 83, 95, 115, 9, 13, 35, 36, 48,
112
- 57, 65, 90, 97, 122, 32, 45, 46,
113
- 47, 95, 9, 13, 35, 36, 48, 57,
114
- 65, 90, 97, 122, 45, 10, 42, 42,
115
- 42, 47, 89, 121, 80, 112, 32, 45,
116
- 47, 9, 13, 32, 45, 47, 9, 13,
117
- 32, 45, 47, 65, 73, 97, 105, 9,
118
- 13, 0
125
+ 46, 47, 95, 9, 13, 35, 36, 48,
126
+ 57, 65, 90, 97, 122, 45, 10, 42,
127
+ 42, 42, 47, 89, 121, 80, 112, 32,
128
+ 45, 47, 9, 13, 32, 45, 47, 9,
129
+ 13, 32, 45, 47, 65, 73, 97, 105,
130
+ 9, 13, 0
119
131
  ]
120
132
 
121
133
  class << self
@@ -123,19 +135,21 @@ class << self
123
135
  private :_plsql_def_single_lengths, :_plsql_def_single_lengths=
124
136
  end
125
137
  self._plsql_def_single_lengths = [
126
- 0, 6, 2, 2, 4, 10, 1, 4,
138
+ 0, 6, 2, 2, 8, 10, 1, 4,
127
139
  1, 1, 1, 1, 2, 5, 1, 1,
128
- 1, 1, 2, 7, 1, 7, 7, 7,
129
- 2, 2, 2, 2, 2, 2, 3, 7,
130
- 1, 4, 7, 1, 1, 1, 1, 2,
131
- 2, 3, 1, 1, 1, 1, 2, 2,
132
- 1, 3, 4, 5, 1, 1, 1, 1,
133
- 2, 7, 7, 7, 5, 9, 1, 4,
134
- 7, 1, 1, 1, 1, 2, 2, 3,
135
- 1, 1, 1, 1, 2, 2, 1, 3,
136
- 4, 5, 1, 1, 1, 1, 2, 7,
137
- 5, 1, 1, 1, 1, 2, 2, 2,
138
- 0, 3, 3, 7
140
+ 1, 1, 2, 7, 5, 4, 1, 1,
141
+ 1, 1, 2, 7, 7, 7, 5, 4,
142
+ 1, 1, 1, 1, 2, 2, 2, 2,
143
+ 2, 2, 2, 2, 2, 2, 2, 3,
144
+ 7, 1, 4, 7, 1, 1, 1, 1,
145
+ 2, 2, 3, 1, 1, 1, 1, 2,
146
+ 2, 1, 3, 4, 5, 1, 1, 1,
147
+ 1, 2, 7, 7, 7, 5, 9, 1,
148
+ 4, 7, 1, 1, 1, 1, 2, 2,
149
+ 3, 1, 1, 1, 1, 2, 2, 1,
150
+ 3, 4, 5, 1, 1, 1, 1, 2,
151
+ 7, 5, 1, 1, 1, 1, 2, 2,
152
+ 2, 0, 3, 3, 7
139
153
  ]
140
154
 
141
155
  class << self
@@ -145,17 +159,19 @@ end
145
159
  self._plsql_def_range_lengths = [
146
160
  0, 0, 0, 0, 1, 4, 0, 1,
147
161
  0, 0, 0, 0, 0, 5, 0, 0,
148
- 0, 0, 0, 5, 4, 5, 5, 5,
149
- 0, 0, 0, 0, 0, 0, 1, 4,
150
- 0, 1, 1, 0, 0, 0, 0, 0,
151
- 0, 1, 0, 0, 0, 0, 0, 3,
152
- 0, 1, 5, 5, 0, 0, 0, 0,
153
- 0, 5, 5, 5, 5, 4, 0, 1,
154
- 1, 0, 0, 0, 0, 0, 0, 1,
155
- 0, 0, 0, 0, 0, 3, 0, 1,
156
- 5, 5, 0, 0, 0, 0, 0, 5,
157
- 5, 0, 0, 0, 0, 0, 0, 0,
158
- 0, 1, 1, 1
162
+ 0, 0, 0, 5, 5, 1, 0, 0,
163
+ 0, 0, 0, 5, 5, 5, 5, 1,
164
+ 0, 0, 0, 0, 0, 0, 0, 0,
165
+ 0, 0, 0, 0, 0, 0, 0, 1,
166
+ 4, 0, 1, 1, 0, 0, 0, 0,
167
+ 0, 0, 1, 0, 0, 0, 0, 0,
168
+ 3, 0, 1, 5, 5, 0, 0, 0,
169
+ 0, 0, 5, 5, 5, 5, 4, 0,
170
+ 1, 1, 0, 0, 0, 0, 0, 0,
171
+ 1, 0, 0, 0, 0, 0, 3, 0,
172
+ 1, 5, 5, 0, 0, 0, 0, 0,
173
+ 5, 5, 0, 0, 0, 0, 0, 0,
174
+ 0, 0, 1, 1, 1
159
175
  ]
160
176
 
161
177
  class << self
@@ -163,86 +179,21 @@ class << self
163
179
  private :_plsql_def_index_offsets, :_plsql_def_index_offsets=
164
180
  end
165
181
  self._plsql_def_index_offsets = [
166
- 0, 0, 7, 10, 13, 19, 34, 36,
167
- 42, 44, 46, 48, 50, 53, 64, 66,
168
- 68, 70, 72, 75, 88, 94, 107, 120,
169
- 133, 136, 139, 142, 145, 148, 151, 156,
170
- 168, 170, 176, 185, 187, 189, 191, 193,
171
- 196, 199, 204, 206, 208, 210, 212, 215,
172
- 221, 223, 228, 238, 249, 251, 253, 255,
173
- 257, 260, 273, 286, 299, 310, 324, 326,
174
- 332, 341, 343, 345, 347, 349, 352, 355,
175
- 360, 362, 364, 366, 368, 371, 377, 379,
176
- 384, 394, 405, 407, 409, 411, 413, 416,
177
- 429, 440, 442, 444, 446, 448, 451, 454,
178
- 457, 458, 463, 468
179
- ]
180
-
181
- class << self
182
- attr_accessor :_plsql_def_indicies
183
- private :_plsql_def_indicies, :_plsql_def_indicies=
184
- end
185
- self._plsql_def_indicies = [
186
- 0, 2, 3, 0, 2, 3, 1, 4,
187
- 4, 1, 5, 5, 1, 6, 7, 8,
188
- 9, 6, 1, 6, 10, 7, 8, 9,
189
- 12, 13, 11, 12, 13, 6, 11, 11,
190
- 11, 1, 14, 10, 14, 15, 16, 9,
191
- 14, 1, 17, 1, 14, 17, 18, 1,
192
- 19, 18, 19, 14, 18, 14, 15, 16,
193
- 9, 11, 14, 11, 11, 11, 11, 1,
194
- 20, 1, 6, 20, 21, 1, 22, 21,
195
- 22, 6, 21, 14, 15, 16, 9, 23,
196
- 11, 23, 14, 11, 11, 11, 11, 1,
197
- 11, 11, 11, 11, 11, 1, 14, 15,
198
- 16, 9, 24, 11, 24, 14, 11, 11,
199
- 11, 11, 1, 14, 15, 16, 9, 25,
200
- 11, 25, 14, 11, 11, 11, 11, 1,
201
- 14, 15, 16, 9, 23, 11, 23, 14,
202
- 11, 11, 11, 11, 1, 26, 26, 1,
203
- 27, 27, 1, 28, 28, 1, 29, 29,
204
- 1, 30, 30, 1, 31, 31, 1, 32,
205
- 33, 34, 32, 1, 32, 35, 33, 34,
206
- 37, 36, 37, 32, 36, 36, 36, 1,
207
- 39, 38, 40, 41, 42, 43, 40, 1,
208
- 44, 45, 46, 47, 47, 47, 47, 44,
209
- 1, 48, 1, 44, 48, 49, 1, 50,
210
- 49, 50, 44, 49, 51, 51, 1, 52,
211
- 53, 54, 52, 1, 55, 1, 52, 55,
212
- 56, 1, 57, 56, 57, 52, 56, 58,
213
- 59, 59, 59, 59, 1, 60, 58, 40,
214
- 41, 43, 40, 1, 40, 41, 43, 59,
215
- 40, 59, 59, 59, 59, 1, 40, 41,
216
- 42, 43, 61, 40, 61, 61, 61, 61,
217
- 1, 62, 1, 32, 62, 63, 1, 64,
218
- 63, 64, 32, 63, 40, 41, 42, 43,
219
- 65, 61, 65, 40, 61, 61, 61, 61,
220
- 1, 40, 41, 42, 43, 66, 61, 66,
221
- 40, 61, 61, 61, 61, 1, 40, 41,
222
- 42, 43, 67, 61, 67, 40, 61, 61,
223
- 61, 61, 1, 68, 69, 42, 70, 61,
224
- 68, 61, 61, 61, 61, 1, 71, 72,
225
- 74, 75, 76, 76, 73, 76, 76, 71,
226
- 73, 73, 73, 1, 78, 77, 79, 80,
227
- 81, 82, 79, 1, 83, 84, 85, 86,
228
- 86, 86, 86, 83, 1, 87, 1, 83,
229
- 87, 88, 1, 89, 88, 89, 83, 88,
230
- 90, 90, 1, 91, 92, 93, 91, 1,
231
- 94, 1, 91, 94, 95, 1, 96, 95,
232
- 96, 91, 95, 97, 98, 98, 98, 98,
233
- 1, 99, 97, 79, 80, 82, 79, 1,
234
- 79, 80, 82, 98, 79, 98, 98, 98,
235
- 98, 1, 79, 80, 81, 82, 100, 79,
236
- 100, 100, 100, 100, 1, 101, 1, 71,
237
- 101, 102, 1, 103, 102, 103, 71, 102,
238
- 79, 80, 81, 82, 104, 100, 104, 79,
239
- 100, 100, 100, 100, 1, 105, 106, 81,
240
- 107, 100, 105, 100, 100, 100, 100, 1,
241
- 108, 1, 109, 108, 110, 1, 111, 110,
242
- 111, 109, 110, 112, 112, 1, 30, 30,
243
- 1, 1, 52, 53, 54, 52, 1, 91,
244
- 92, 93, 91, 1, 109, 113, 114, 86,
245
- 86, 86, 86, 109, 1, 0
182
+ 0, 0, 7, 10, 13, 23, 38, 40,
183
+ 46, 48, 50, 52, 54, 57, 68, 70,
184
+ 72, 74, 76, 79, 92, 103, 109, 111,
185
+ 113, 115, 117, 120, 133, 146, 159, 170,
186
+ 176, 178, 180, 182, 184, 187, 190, 193,
187
+ 196, 199, 202, 205, 208, 211, 214, 217,
188
+ 222, 234, 236, 242, 251, 253, 255, 257,
189
+ 259, 262, 265, 270, 272, 274, 276, 278,
190
+ 281, 287, 289, 294, 304, 315, 317, 319,
191
+ 321, 323, 326, 339, 352, 365, 376, 390,
192
+ 392, 398, 407, 409, 411, 413, 415, 418,
193
+ 421, 426, 428, 430, 432, 434, 437, 443,
194
+ 445, 450, 460, 471, 473, 475, 477, 479,
195
+ 482, 495, 506, 508, 510, 512, 514, 517,
196
+ 520, 523, 524, 529, 534
246
197
  ]
247
198
 
248
199
  class << self
@@ -250,21 +201,74 @@ class << self
250
201
  private :_plsql_def_trans_targs, :_plsql_def_trans_targs=
251
202
  end
252
203
  self._plsql_def_trans_targs = [
253
- 2, 0, 24, 94, 3, 4, 5, 14,
254
- 16, 96, 6, 13, 19, 21, 7, 8,
255
- 10, 9, 11, 12, 15, 17, 18, 20,
256
- 22, 23, 25, 26, 27, 28, 29, 30,
257
- 31, 52, 54, 32, 51, 57, 32, 33,
258
- 34, 35, 47, 37, 34, 35, 37, 40,
259
- 36, 38, 39, 41, 97, 42, 44, 43,
260
- 45, 46, 48, 50, 49, 51, 53, 55,
261
- 56, 58, 59, 60, 61, 82, 84, 61,
262
- 62, 81, 82, 84, 87, 62, 63, 64,
263
- 65, 77, 67, 64, 65, 67, 70, 66,
264
- 68, 69, 71, 98, 72, 74, 73, 75,
265
- 76, 78, 80, 79, 81, 83, 85, 86,
266
- 88, 99, 89, 91, 90, 99, 92, 93,
267
- 95, 89, 91
204
+ 2, 41, 111, 2, 41, 111, 0, 3,
205
+ 3, 0, 4, 4, 0, 5, 14, 16,
206
+ 113, 37, 38, 37, 38, 5, 0, 5,
207
+ 6, 14, 16, 113, 19, 27, 13, 19,
208
+ 27, 5, 13, 13, 13, 0, 7, 6,
209
+ 7, 8, 10, 113, 7, 0, 9, 0,
210
+ 7, 9, 11, 0, 12, 11, 12, 7,
211
+ 11, 7, 8, 10, 113, 13, 7, 13,
212
+ 13, 13, 13, 0, 15, 0, 5, 15,
213
+ 17, 0, 18, 17, 18, 5, 17, 7,
214
+ 8, 10, 113, 20, 13, 20, 7, 13,
215
+ 13, 13, 13, 0, 21, 22, 24, 113,
216
+ 13, 21, 13, 13, 13, 13, 0, 21,
217
+ 22, 24, 113, 21, 0, 23, 0, 21,
218
+ 23, 25, 0, 26, 25, 26, 21, 25,
219
+ 7, 8, 10, 113, 28, 13, 28, 7,
220
+ 13, 13, 13, 13, 0, 7, 8, 10,
221
+ 113, 29, 13, 29, 7, 13, 13, 13,
222
+ 13, 0, 7, 8, 10, 113, 30, 13,
223
+ 30, 7, 13, 13, 13, 13, 0, 31,
224
+ 32, 34, 113, 13, 31, 13, 13, 13,
225
+ 13, 0, 31, 32, 34, 113, 31, 0,
226
+ 33, 0, 31, 33, 35, 0, 36, 35,
227
+ 36, 31, 35, 21, 21, 0, 39, 39,
228
+ 0, 40, 40, 0, 31, 31, 0, 42,
229
+ 42, 0, 43, 43, 0, 44, 44, 0,
230
+ 45, 45, 0, 46, 46, 0, 47, 47,
231
+ 0, 48, 69, 71, 48, 0, 48, 49,
232
+ 69, 71, 74, 68, 74, 48, 68, 68,
233
+ 68, 0, 50, 49, 51, 52, 64, 54,
234
+ 51, 0, 51, 52, 54, 57, 57, 57,
235
+ 57, 51, 0, 53, 0, 51, 53, 55,
236
+ 0, 56, 55, 56, 51, 55, 58, 58,
237
+ 0, 114, 59, 61, 114, 0, 60, 0,
238
+ 114, 60, 62, 0, 63, 62, 63, 114,
239
+ 62, 65, 67, 67, 67, 67, 0, 66,
240
+ 65, 51, 52, 54, 51, 0, 51, 52,
241
+ 54, 67, 51, 67, 67, 67, 67, 0,
242
+ 51, 52, 64, 54, 68, 51, 68, 68,
243
+ 68, 68, 0, 70, 0, 48, 70, 72,
244
+ 0, 73, 72, 73, 48, 72, 51, 52,
245
+ 64, 54, 75, 68, 75, 51, 68, 68,
246
+ 68, 68, 0, 51, 52, 64, 54, 76,
247
+ 68, 76, 51, 68, 68, 68, 68, 0,
248
+ 51, 52, 64, 54, 77, 68, 77, 51,
249
+ 68, 68, 68, 68, 0, 78, 99, 64,
250
+ 101, 68, 78, 68, 68, 68, 68, 0,
251
+ 78, 79, 99, 101, 104, 104, 98, 104,
252
+ 104, 78, 98, 98, 98, 0, 80, 79,
253
+ 81, 82, 94, 84, 81, 0, 81, 82,
254
+ 84, 87, 87, 87, 87, 81, 0, 83,
255
+ 0, 81, 83, 85, 0, 86, 85, 86,
256
+ 81, 85, 88, 88, 0, 115, 89, 91,
257
+ 115, 0, 90, 0, 115, 90, 92, 0,
258
+ 93, 92, 93, 115, 92, 95, 97, 97,
259
+ 97, 97, 0, 96, 95, 81, 82, 84,
260
+ 81, 0, 81, 82, 84, 97, 81, 97,
261
+ 97, 97, 97, 0, 81, 82, 94, 84,
262
+ 98, 81, 98, 98, 98, 98, 0, 100,
263
+ 0, 78, 100, 102, 0, 103, 102, 103,
264
+ 78, 102, 81, 82, 94, 84, 105, 98,
265
+ 105, 81, 98, 98, 98, 98, 0, 116,
266
+ 106, 94, 108, 98, 116, 98, 98, 98,
267
+ 98, 0, 107, 0, 116, 107, 109, 0,
268
+ 110, 109, 110, 116, 109, 112, 112, 0,
269
+ 46, 46, 0, 0, 114, 59, 61, 114,
270
+ 0, 115, 89, 91, 115, 0, 116, 106,
271
+ 108, 87, 87, 87, 87, 116, 0, 0
268
272
  ]
269
273
 
270
274
  class << self
@@ -273,20 +277,73 @@ class << self
273
277
  end
274
278
  self._plsql_def_trans_actions = [
275
279
  0, 0, 0, 0, 0, 0, 0, 0,
276
- 0, 5, 0, 0, 0, 0, 0, 0,
277
280
  0, 0, 0, 0, 0, 0, 0, 0,
281
+ 5, 0, 0, 0, 0, 0, 0, 0,
282
+ 0, 0, 0, 5, 0, 0, 0, 0,
283
+ 0, 0, 0, 0, 0, 0, 0, 0,
284
+ 0, 0, 0, 5, 0, 0, 0, 0,
278
285
  0, 0, 0, 0, 0, 0, 0, 0,
279
- 0, 0, 0, 9, 9, 9, 0, 0,
280
- 7, 7, 0, 7, 0, 0, 0, 0,
281
- 0, 0, 0, 0, 1, 0, 0, 0,
286
+ 0, 0, 0, 0, 5, 0, 0, 0,
287
+ 0, 0, 0, 0, 0, 0, 0, 0,
288
+ 0, 0, 0, 0, 0, 0, 0, 0,
289
+ 0, 0, 5, 0, 0, 0, 0, 0,
290
+ 0, 0, 0, 0, 0, 0, 0, 9,
291
+ 0, 0, 0, 0, 0, 0, 0, 0,
292
+ 0, 0, 9, 0, 0, 0, 0, 0,
282
293
  0, 0, 0, 0, 0, 0, 0, 0,
283
- 0, 0, 0, 0, 7, 7, 7, 0,
284
- 9, 9, 0, 0, 9, 0, 0, 7,
285
- 7, 0, 7, 0, 0, 0, 0, 0,
294
+ 0, 0, 0, 5, 0, 0, 0, 0,
295
+ 0, 0, 0, 0, 0, 0, 0, 0,
296
+ 5, 0, 0, 0, 0, 0, 0, 0,
297
+ 0, 0, 0, 0, 0, 5, 0, 0,
298
+ 0, 0, 0, 0, 0, 0, 0, 0,
299
+ 0, 0, 7, 0, 0, 0, 0, 0,
300
+ 0, 0, 0, 0, 0, 7, 0, 0,
301
+ 0, 0, 0, 0, 0, 0, 0, 0,
302
+ 0, 0, 0, 0, 0, 0, 0, 0,
303
+ 0, 0, 0, 0, 0, 0, 0, 0,
304
+ 0, 0, 0, 0, 0, 0, 0, 0,
305
+ 0, 0, 0, 0, 0, 0, 0, 0,
306
+ 0, 0, 0, 0, 0, 0, 0, 13,
307
+ 0, 0, 13, 13, 13, 0, 13, 13,
308
+ 13, 0, 0, 0, 11, 11, 0, 11,
309
+ 11, 0, 0, 0, 0, 0, 0, 0,
310
+ 0, 0, 0, 0, 0, 0, 0, 0,
311
+ 0, 0, 0, 0, 0, 0, 0, 0,
312
+ 0, 1, 0, 0, 1, 0, 0, 0,
313
+ 1, 0, 0, 0, 0, 0, 0, 1,
314
+ 0, 0, 0, 0, 0, 0, 0, 0,
315
+ 0, 11, 11, 11, 11, 0, 11, 11,
316
+ 11, 0, 11, 0, 0, 0, 0, 0,
317
+ 11, 11, 0, 11, 0, 11, 0, 0,
318
+ 0, 0, 0, 0, 0, 0, 0, 0,
319
+ 0, 0, 0, 0, 0, 0, 11, 11,
320
+ 0, 11, 0, 0, 0, 11, 0, 0,
321
+ 0, 0, 0, 11, 11, 0, 11, 0,
322
+ 0, 0, 11, 0, 0, 0, 0, 0,
323
+ 11, 11, 0, 11, 0, 0, 0, 11,
324
+ 0, 0, 0, 0, 0, 11, 11, 0,
325
+ 11, 0, 11, 0, 0, 0, 0, 0,
326
+ 0, 13, 0, 0, 13, 13, 13, 13,
327
+ 13, 0, 13, 13, 13, 0, 0, 0,
328
+ 11, 11, 0, 11, 11, 0, 0, 0,
329
+ 0, 0, 0, 0, 0, 0, 0, 0,
330
+ 0, 0, 0, 0, 0, 0, 0, 0,
331
+ 0, 0, 0, 0, 0, 3, 0, 0,
332
+ 3, 0, 0, 0, 3, 0, 0, 0,
286
333
  0, 0, 0, 3, 0, 0, 0, 0,
334
+ 0, 0, 0, 0, 0, 11, 11, 11,
335
+ 11, 0, 11, 11, 11, 0, 11, 0,
336
+ 0, 0, 0, 0, 11, 11, 0, 11,
337
+ 0, 11, 0, 0, 0, 0, 0, 0,
287
338
  0, 0, 0, 0, 0, 0, 0, 0,
288
- 0, 11, 7, 7, 0, 1, 0, 0,
289
- 0, 0, 0
339
+ 0, 0, 11, 11, 0, 11, 0, 0,
340
+ 0, 11, 0, 0, 0, 0, 0, 15,
341
+ 11, 0, 11, 0, 15, 0, 0, 0,
342
+ 0, 0, 0, 0, 1, 0, 0, 0,
343
+ 0, 0, 0, 1, 0, 0, 0, 0,
344
+ 0, 0, 0, 0, 1, 0, 0, 1,
345
+ 0, 3, 0, 0, 3, 0, 1, 0,
346
+ 0, 0, 0, 0, 0, 1, 0, 0
290
347
  ]
291
348
 
292
349
  class << self
@@ -296,7 +353,7 @@ self.plsql_def_start = 1;
296
353
  class << self
297
354
  attr_accessor :plsql_def_first_final
298
355
  end
299
- self.plsql_def_first_final = 96;
356
+ self.plsql_def_first_final = 113;
300
357
  class << self
301
358
  attr_accessor :plsql_def_error
302
359
  end
@@ -308,18 +365,18 @@ end
308
365
  self.plsql_def_en_main = 1;
309
366
 
310
367
 
311
- # line 50 "/home/talek/Dropbox/ruby-vorax/lib/vorax/parser/grammars/plsql_def.rl"
368
+ # line 64 "lib/vorax/parser/grammars/plsql_def.rl"
312
369
 
313
- # line 314 "/home/talek/Dropbox/ruby-vorax/lib/vorax/parser/grammars/plsql_def.rb"
370
+ # line 371 "lib/vorax/parser/grammars/plsql_def.rb"
314
371
  begin
315
372
  p ||= 0
316
373
  pe ||= data.length
317
374
  cs = plsql_def_start
318
375
  end
319
376
 
320
- # line 51 "/home/talek/Dropbox/ruby-vorax/lib/vorax/parser/grammars/plsql_def.rl"
377
+ # line 65 "lib/vorax/parser/grammars/plsql_def.rl"
321
378
 
322
- # line 323 "/home/talek/Dropbox/ruby-vorax/lib/vorax/parser/grammars/plsql_def.rb"
379
+ # line 380 "lib/vorax/parser/grammars/plsql_def.rb"
323
380
  begin
324
381
  _klen, _trans, _keys, _acts, _nacts = nil
325
382
  _goto_level = 0
@@ -390,7 +447,6 @@ begin
390
447
  _trans += _klen
391
448
  end
392
449
  end while false
393
- _trans = _plsql_def_indicies[_trans]
394
450
  cs = _plsql_def_trans_targs[_trans]
395
451
  if _plsql_def_trans_actions[_trans] != 0
396
452
  _acts = _plsql_def_trans_actions[_trans]
@@ -401,37 +457,51 @@ begin
401
457
  _acts += 1
402
458
  case _plsql_def_actions[_acts - 1]
403
459
  when 0 then
404
- # line 7 "/home/talek/Dropbox/ruby-vorax/lib/vorax/parser/grammars/plsql_def.rl"
460
+ # line 7 "lib/vorax/parser/grammars/plsql_def.rl"
405
461
  begin
406
462
 
407
463
  @end_pos = p - 1;
408
464
  @type = 'SPEC';
409
465
  end
410
466
  when 1 then
411
- # line 12 "/home/talek/Dropbox/ruby-vorax/lib/vorax/parser/grammars/plsql_def.rl"
467
+ # line 12 "lib/vorax/parser/grammars/plsql_def.rl"
412
468
  begin
413
469
 
414
470
  @end_pos = p - 1;
415
471
  @type = 'BODY';
416
472
  end
417
473
  when 2 then
418
- # line 17 "/home/talek/Dropbox/ruby-vorax/lib/vorax/parser/grammars/plsql_def.rl"
474
+ # line 17 "lib/vorax/parser/grammars/plsql_def.rl"
419
475
  begin
420
476
 
421
477
  @end_pos = p - 1;
422
478
  @type = 'END';
423
479
  end
424
480
  when 3 then
425
- # line 22 "/home/talek/Dropbox/ruby-vorax/lib/vorax/parser/grammars/plsql_def.rl"
481
+ # line 22 "lib/vorax/parser/grammars/plsql_def.rl"
426
482
  begin
427
483
 
428
- @name = data[(@start..p-1)]
484
+ @end_pos = p - 1;
485
+ @type = 'END_LOOP';
429
486
  end
430
487
  when 4 then
431
- # line 28 "/home/talek/Dropbox/ruby-vorax/lib/vorax/parser/grammars/plsql_def.rl"
488
+ # line 27 "lib/vorax/parser/grammars/plsql_def.rl"
489
+ begin
490
+
491
+ @end_pos = p - 1;
492
+ @type = 'END_IF';
493
+ end
494
+ when 5 then
495
+ # line 32 "lib/vorax/parser/grammars/plsql_def.rl"
496
+ begin
497
+
498
+ @name = data[(@start..p-1)]
499
+ end
500
+ when 6 then
501
+ # line 40 "lib/vorax/parser/grammars/plsql_def.rl"
432
502
  begin
433
503
  @start = p end
434
- # line 435 "/home/talek/Dropbox/ruby-vorax/lib/vorax/parser/grammars/plsql_def.rb"
504
+ # line 505 "lib/vorax/parser/grammars/plsql_def.rb"
435
505
  end # action switch
436
506
  end
437
507
  end
@@ -458,7 +528,7 @@ when 4 then
458
528
  end
459
529
  end
460
530
 
461
- # line 52 "/home/talek/Dropbox/ruby-vorax/lib/vorax/parser/grammars/plsql_def.rl"
531
+ # line 66 "lib/vorax/parser/grammars/plsql_def.rl"
462
532
  end
463
533
  return {:name => @name, :end_def => @end_pos, :type => @type}
464
534
  end