bel_parser 1.0.0.alpha.38-java → 1.0.0.alpha.39-java
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/VERSION +1 -1
- data/lib/bel_parser/ast_filter.rb +6 -2
- data/lib/bel_parser/parsers/ast/node.rb +113 -58
- data/lib/bel_parser/parsers/bel_script/define_annotation.rb +4175 -3097
- data/lib/bel_parser/parsers/bel_script/define_annotation.rl +142 -49
- data/lib/bel_parser/parsers/bel_script/define_namespace.rb +980 -461
- data/lib/bel_parser/parsers/bel_script/define_namespace.rl +79 -39
- data/lib/bel_parser/parsers/bel_script/set.rb +4878 -2743
- data/lib/bel_parser/parsers/bel_script/set.rl +114 -32
- data/lib/bel_parser/parsers/bel_script/set_document.rb +5839 -5292
- data/lib/bel_parser/parsers/bel_script/set_document.rl +130 -27
- data/lib/bel_parser/parsers/bel_script/unset.rb +321 -234
- data/lib/bel_parser/parsers/bel_script/unset.rl +49 -21
- data/lib/bel_parser/parsers/common/blank_line.rb +12 -11
- data/lib/bel_parser/parsers/common/blank_line.rl +12 -12
- data/lib/bel_parser/parsers/common/comment_line.rb +65 -40
- data/lib/bel_parser/parsers/common/comment_line.rl +26 -26
- data/lib/bel_parser/parsers/common/common.rl +60 -0
- data/lib/bel_parser/parsers/common/function.rb +319 -0
- data/lib/bel_parser/parsers/common/function.rl +149 -0
- data/lib/bel_parser/parsers/common/identifier.rb +72 -68
- data/lib/bel_parser/parsers/common/identifier.rl +73 -29
- data/lib/bel_parser/parsers/common/list.rb +1617 -1243
- data/lib/bel_parser/parsers/common/list.rl +120 -60
- data/lib/bel_parser/parsers/common/string.rb +114 -41
- data/lib/bel_parser/parsers/common/string.rl +91 -28
- data/lib/bel_parser/parsers/common.rb +1 -0
- data/lib/bel_parser/parsers/expression/comment.rb +70 -38
- data/lib/bel_parser/parsers/expression/comment.rl +37 -20
- data/lib/bel_parser/parsers/expression/nested_statement.rb +63116 -13958
- data/lib/bel_parser/parsers/expression/nested_statement.rl +53 -23
- data/lib/bel_parser/parsers/expression/observed_term.rb +32497 -5188
- data/lib/bel_parser/parsers/expression/observed_term.rl +25 -20
- data/lib/bel_parser/parsers/expression/parameter.rb +2861 -847
- data/lib/bel_parser/parsers/expression/parameter.rl +178 -21
- data/lib/bel_parser/parsers/expression/relationship.rb +73 -55
- data/lib/bel_parser/parsers/expression/relationship.rl +41 -23
- data/lib/bel_parser/parsers/expression/simple_statement.rb +42895 -7846
- data/lib/bel_parser/parsers/expression/simple_statement.rl +41 -24
- data/lib/bel_parser/parsers/expression/term.rb +16498 -2602
- data/lib/bel_parser/parsers/expression/term.rl +52 -35
- data/lib/bel_parser/parsers/line_parser.rb +1 -0
- data/lib/bel_parser/parsers/mixin/buffer.rb +4 -0
- data/lib/bel_parser/parsers/tracer.rb +19 -0
- data/lib/bel_parser/script/state/namespace_definition.rb +1 -0
- metadata +10 -7
@@ -9,6 +9,7 @@
|
|
9
9
|
require_relative '../ast/node'
|
10
10
|
require_relative '../mixin/buffer'
|
11
11
|
require_relative '../nonblocking_io_wrapper'
|
12
|
+
require_relative '../tracer'
|
12
13
|
|
13
14
|
module BELParser
|
14
15
|
module Parsers
|
@@ -34,17 +35,18 @@ module BELParser
|
|
34
35
|
include Enumerable
|
35
36
|
include BELParser::Parsers::Buffer
|
36
37
|
include BELParser::Parsers::AST::Sexp
|
38
|
+
include BELParser::Parsers::Tracer
|
37
39
|
|
38
40
|
def initialize(content)
|
39
41
|
@content = content
|
40
|
-
# begin: ragel
|
42
|
+
# begin: ragel
|
41
43
|
|
42
44
|
class << self
|
43
45
|
attr_accessor :_bel_trans_keys
|
44
46
|
private :_bel_trans_keys, :_bel_trans_keys=
|
45
47
|
end
|
46
48
|
self._bel_trans_keys = [
|
47
|
-
0, 0,
|
49
|
+
0, 0, 47, 47, 47, 47,
|
48
50
|
10, 10, 10, 10, 0,
|
49
51
|
0, 0
|
50
52
|
]
|
@@ -54,7 +56,7 @@ class << self
|
|
54
56
|
private :_bel_key_spans, :_bel_key_spans=
|
55
57
|
end
|
56
58
|
self._bel_key_spans = [
|
57
|
-
0,
|
59
|
+
0, 1, 1, 1, 1, 0
|
58
60
|
]
|
59
61
|
|
60
62
|
class << self
|
@@ -62,7 +64,7 @@ class << self
|
|
62
64
|
private :_bel_index_offsets, :_bel_index_offsets=
|
63
65
|
end
|
64
66
|
self._bel_index_offsets = [
|
65
|
-
0, 0,
|
67
|
+
0, 0, 2, 4, 6, 8
|
66
68
|
]
|
67
69
|
|
68
70
|
class << self
|
@@ -70,12 +72,8 @@ class << self
|
|
70
72
|
private :_bel_indicies, :_bel_indicies=
|
71
73
|
end
|
72
74
|
self._bel_indicies = [
|
73
|
-
0, 1,
|
74
|
-
1,
|
75
|
-
1, 1, 1, 1, 1, 1, 1, 1,
|
76
|
-
1, 1, 1, 1, 1, 1, 1, 1,
|
77
|
-
1, 1, 1, 1, 1, 2, 1, 3,
|
78
|
-
1, 1, 4, 6, 5, 1, 0
|
75
|
+
0, 1, 2, 1, 1, 3, 5, 4,
|
76
|
+
1, 0
|
79
77
|
]
|
80
78
|
|
81
79
|
class << self
|
@@ -83,7 +81,7 @@ class << self
|
|
83
81
|
private :_bel_trans_targs, :_bel_trans_targs=
|
84
82
|
end
|
85
83
|
self._bel_trans_targs = [
|
86
|
-
|
84
|
+
2, 0, 3, 4, 4, 5
|
87
85
|
]
|
88
86
|
|
89
87
|
class << self
|
@@ -91,7 +89,15 @@ class << self
|
|
91
89
|
private :_bel_trans_actions, :_bel_trans_actions=
|
92
90
|
end
|
93
91
|
self._bel_trans_actions = [
|
94
|
-
|
92
|
+
0, 0, 0, 1, 0, 2
|
93
|
+
]
|
94
|
+
|
95
|
+
class << self
|
96
|
+
attr_accessor :_bel_eof_actions
|
97
|
+
private :_bel_eof_actions, :_bel_eof_actions=
|
98
|
+
end
|
99
|
+
self._bel_eof_actions = [
|
100
|
+
0, 0, 0, 0, 2, 0
|
95
101
|
]
|
96
102
|
|
97
103
|
class << self
|
@@ -101,29 +107,33 @@ self.bel_start = 1;
|
|
101
107
|
class << self
|
102
108
|
attr_accessor :bel_first_final
|
103
109
|
end
|
104
|
-
self.bel_first_final =
|
110
|
+
self.bel_first_final = 4;
|
105
111
|
class << self
|
106
112
|
attr_accessor :bel_error
|
107
113
|
end
|
108
114
|
self.bel_error = 0;
|
109
115
|
|
110
116
|
class << self
|
111
|
-
attr_accessor :
|
117
|
+
attr_accessor :bel_en_comment_node
|
112
118
|
end
|
113
|
-
self.
|
119
|
+
self.bel_en_comment_node = 1;
|
114
120
|
|
115
121
|
|
116
|
-
# end: ragel
|
122
|
+
# end: ragel
|
117
123
|
end
|
118
124
|
|
119
125
|
def each
|
120
|
-
@buffers
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
126
|
+
@buffers = {}
|
127
|
+
@incomplete = {}
|
128
|
+
stack = []
|
129
|
+
data = @content.unpack('C*')
|
130
|
+
p = 0
|
131
|
+
p_start = 0
|
132
|
+
p_end = 0
|
133
|
+
pe = data.length
|
134
|
+
eof = data.length
|
135
|
+
|
136
|
+
# begin: ragel
|
127
137
|
|
128
138
|
begin
|
129
139
|
p ||= 0
|
@@ -168,33 +178,30 @@ begin
|
|
168
178
|
cs = _bel_trans_targs[_trans]
|
169
179
|
if _bel_trans_actions[_trans] != 0
|
170
180
|
case _bel_trans_actions[_trans]
|
171
|
-
when 3 then
|
172
|
-
begin
|
173
|
-
|
174
|
-
@buffers[:comment] << data[p].ord
|
175
|
-
end
|
176
181
|
when 1 then
|
177
182
|
begin
|
178
183
|
|
179
|
-
|
184
|
+
trace('COMMENT start_comment')
|
185
|
+
p_start = p;
|
180
186
|
end
|
181
187
|
when 2 then
|
182
188
|
begin
|
183
189
|
|
184
|
-
|
185
|
-
|
186
|
-
begin
|
187
|
-
|
188
|
-
@buffers[:comment] << data[p].ord
|
190
|
+
trace('COMMENT stop_comment')
|
191
|
+
p_end = p;
|
189
192
|
end
|
190
|
-
when 4 then
|
191
193
|
begin
|
192
194
|
|
193
|
-
|
194
|
-
|
195
|
+
trace('COMMENT comment_end')
|
196
|
+
p_end = p
|
197
|
+
chars = data[p_start...p_end]
|
198
|
+
completed = !chars.empty?
|
199
|
+
ast_node = comment(utf8_string(chars), complete: completed)
|
200
|
+
@buffers[:comment] = ast_node
|
195
201
|
end
|
196
202
|
begin
|
197
203
|
|
204
|
+
trace('COMMENT yield_comment')
|
198
205
|
yield @buffers[:comment] || comment(nil)
|
199
206
|
end
|
200
207
|
end
|
@@ -212,6 +219,31 @@ begin
|
|
212
219
|
end
|
213
220
|
end
|
214
221
|
if _goto_level <= _test_eof
|
222
|
+
if p == eof
|
223
|
+
case _bel_eof_actions[cs]
|
224
|
+
when 2 then
|
225
|
+
begin
|
226
|
+
|
227
|
+
trace('COMMENT stop_comment')
|
228
|
+
p_end = p;
|
229
|
+
end
|
230
|
+
begin
|
231
|
+
|
232
|
+
trace('COMMENT comment_end')
|
233
|
+
p_end = p
|
234
|
+
chars = data[p_start...p_end]
|
235
|
+
completed = !chars.empty?
|
236
|
+
ast_node = comment(utf8_string(chars), complete: completed)
|
237
|
+
@buffers[:comment] = ast_node
|
238
|
+
end
|
239
|
+
begin
|
240
|
+
|
241
|
+
trace('COMMENT yield_comment')
|
242
|
+
yield @buffers[:comment] || comment(nil)
|
243
|
+
end
|
244
|
+
end
|
245
|
+
end
|
246
|
+
|
215
247
|
end
|
216
248
|
if _goto_level <= _out
|
217
249
|
break
|
@@ -219,7 +251,7 @@ begin
|
|
219
251
|
end
|
220
252
|
end
|
221
253
|
|
222
|
-
# end: ragel
|
254
|
+
# end: ragel
|
223
255
|
end
|
224
256
|
end
|
225
257
|
end
|
@@ -6,27 +6,38 @@
|
|
6
6
|
include 'common.rl';
|
7
7
|
|
8
8
|
action start_comment {
|
9
|
-
|
9
|
+
trace('COMMENT start_comment')
|
10
|
+
p_start = p;
|
10
11
|
}
|
11
12
|
|
12
|
-
action
|
13
|
-
|
13
|
+
action stop_comment {
|
14
|
+
trace('COMMENT stop_comment')
|
15
|
+
p_end = p;
|
14
16
|
}
|
15
17
|
|
16
|
-
action
|
17
|
-
|
18
|
-
|
18
|
+
action comment_end {
|
19
|
+
trace('COMMENT comment_end')
|
20
|
+
p_end = p
|
21
|
+
chars = data[p_start...p_end]
|
22
|
+
completed = !chars.empty?
|
23
|
+
ast_node = comment(utf8_string(chars), complete: completed)
|
24
|
+
@buffers[:comment] = ast_node
|
19
25
|
}
|
20
26
|
|
21
27
|
action yield_comment {
|
28
|
+
trace('COMMENT yield_comment')
|
22
29
|
yield @buffers[:comment] || comment(nil)
|
23
30
|
}
|
24
31
|
|
25
|
-
|
32
|
+
comment =
|
33
|
+
SS
|
34
|
+
^NL+ >start_comment %stop_comment %comment_end
|
35
|
+
;
|
26
36
|
|
27
|
-
|
28
|
-
|
29
|
-
NL
|
37
|
+
comment_node :=
|
38
|
+
comment %yield_comment
|
39
|
+
NL?
|
40
|
+
;
|
30
41
|
}%%
|
31
42
|
=end
|
32
43
|
# end: ragel
|
@@ -34,6 +45,7 @@
|
|
34
45
|
require_relative '../ast/node'
|
35
46
|
require_relative '../mixin/buffer'
|
36
47
|
require_relative '../nonblocking_io_wrapper'
|
48
|
+
require_relative '../tracer'
|
37
49
|
|
38
50
|
module BELParser
|
39
51
|
module Parsers
|
@@ -59,25 +71,30 @@ module BELParser
|
|
59
71
|
include Enumerable
|
60
72
|
include BELParser::Parsers::Buffer
|
61
73
|
include BELParser::Parsers::AST::Sexp
|
74
|
+
include BELParser::Parsers::Tracer
|
62
75
|
|
63
76
|
def initialize(content)
|
64
77
|
@content = content
|
65
|
-
# begin: ragel
|
78
|
+
# begin: ragel
|
66
79
|
%% write data;
|
67
|
-
# end: ragel
|
80
|
+
# end: ragel
|
68
81
|
end
|
69
82
|
|
70
83
|
def each
|
71
|
-
@buffers
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
84
|
+
@buffers = {}
|
85
|
+
@incomplete = {}
|
86
|
+
stack = []
|
87
|
+
data = @content.unpack('C*')
|
88
|
+
p = 0
|
89
|
+
p_start = 0
|
90
|
+
p_end = 0
|
91
|
+
pe = data.length
|
92
|
+
eof = data.length
|
93
|
+
|
94
|
+
# begin: ragel
|
78
95
|
%% write init;
|
79
96
|
%% write exec;
|
80
|
-
# end: ragel
|
97
|
+
# end: ragel
|
81
98
|
end
|
82
99
|
end
|
83
100
|
end
|