vorax 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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