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
@@ -3,89 +3,104 @@
|
|
3
3
|
%%{
|
4
4
|
machine bel;
|
5
5
|
|
6
|
+
include 'function.rl';
|
6
7
|
include 'parameter.rl';
|
7
8
|
|
8
|
-
action start_function {
|
9
|
-
@buffers[:function] = []
|
10
|
-
}
|
11
|
-
|
12
|
-
action append_function {
|
13
|
-
@buffers[:function] << fc
|
14
|
-
}
|
15
|
-
|
16
|
-
action finish_function {
|
17
|
-
@buffers[:function] = identifier(utf8_string(@buffers[:function]))
|
18
|
-
}
|
19
|
-
|
20
9
|
action term_init {
|
10
|
+
trace('TERM term_init')
|
21
11
|
@buffers[:term_stack] = [ term() ]
|
22
12
|
}
|
23
13
|
|
24
14
|
action inner_term_init {
|
15
|
+
trace('TERM inner_term_init')
|
25
16
|
@buffers[:term_stack] << term()
|
26
17
|
}
|
27
18
|
|
28
19
|
action term_fx {
|
29
|
-
|
30
|
-
@buffers[:term_stack][-1]
|
20
|
+
trace('TERM term_fx')
|
21
|
+
new_term = @buffers[:term_stack][-1] << @buffers[:function]
|
22
|
+
@buffers[:term_stack][-1] = new_term
|
31
23
|
}
|
32
24
|
|
33
25
|
action term_argument {
|
34
|
-
|
35
|
-
@buffers[:parameter]
|
26
|
+
trace('TERM term_argument')
|
27
|
+
arg_node = argument(@buffers[:parameter])
|
28
|
+
new_term = @buffers[:term_stack][-1] << arg_node
|
29
|
+
@buffers[:term_stack][-1] = new_term
|
30
|
+
@buffers[:parameter] = nil
|
36
31
|
}
|
37
32
|
|
38
33
|
action fxbt {
|
39
|
-
|
34
|
+
trace('TERM fxbt')
|
35
|
+
function_string = @buffers[:function].identifier.string_literal
|
36
|
+
fpc -= function_string.length + 1
|
40
37
|
fcall inner_term;
|
41
38
|
}
|
42
39
|
|
43
40
|
action fxret {
|
41
|
+
trace('TERM fxret')
|
44
42
|
inner_term = @buffers[:term_stack].pop
|
45
|
-
|
43
|
+
arg_node = argument(inner_term)
|
44
|
+
new_term = @buffers[:term_stack][-1] << arg_node
|
45
|
+
@buffers[:term_stack][-1] = new_term
|
46
46
|
fret;
|
47
47
|
}
|
48
48
|
|
49
|
+
action outer_term_end {
|
50
|
+
trace('TERM outer_term_end')
|
51
|
+
term_stack = @buffers[:term_stack]
|
52
|
+
term_stack.each { |term| term.complete = true }
|
53
|
+
}
|
54
|
+
|
55
|
+
action eof_parameter_argument {
|
56
|
+
trace('TERM eof_parameter_argument')
|
57
|
+
@buffers[:term_stack][-1].complete = false
|
58
|
+
yield @buffers[:term_stack][-1]
|
59
|
+
}
|
60
|
+
|
49
61
|
action yield_term_ast {
|
50
62
|
yield @buffers[:term_stack][-1]
|
51
63
|
}
|
52
64
|
|
53
65
|
inner_term :=
|
54
|
-
|
66
|
+
a_function >inner_term_init
|
55
67
|
SP*
|
56
68
|
'(' @term_fx
|
57
69
|
(
|
58
|
-
|
59
|
-
|
70
|
+
a_parameter %term_argument |
|
71
|
+
a_function '(' @fxbt
|
60
72
|
)
|
61
73
|
(
|
62
|
-
|
74
|
+
COMMA_DELIM
|
63
75
|
(
|
64
|
-
|
65
|
-
|
76
|
+
a_parameter %term_argument |
|
77
|
+
a_function '(' @fxbt
|
66
78
|
)
|
67
79
|
)*
|
68
80
|
')' @fxret;
|
69
81
|
|
70
82
|
outer_term =
|
71
|
-
|
83
|
+
a_function >term_init
|
72
84
|
SP*
|
73
85
|
'(' @term_fx
|
74
86
|
(
|
75
|
-
|
76
|
-
|
87
|
+
a_parameter %term_argument $eof(eof_parameter_argument) |
|
88
|
+
a_function '(' @fxbt
|
77
89
|
)
|
78
90
|
(
|
79
|
-
|
91
|
+
COMMA_DELIM
|
80
92
|
(
|
81
|
-
|
82
|
-
|
93
|
+
a_parameter %term_argument $eof(eof_parameter_argument) |
|
94
|
+
a_function '(' @fxbt
|
83
95
|
)
|
84
96
|
)*
|
85
97
|
')';
|
86
98
|
|
87
99
|
term :=
|
88
|
-
outer_term
|
100
|
+
outer_term
|
101
|
+
%outer_term_end
|
102
|
+
%yield_term_ast
|
103
|
+
NL?;
|
89
104
|
}%%
|
90
105
|
=end
|
91
106
|
# end: ragel
|
@@ -93,6 +108,7 @@
|
|
93
108
|
require_relative '../ast/node'
|
94
109
|
require_relative '../mixin/buffer'
|
95
110
|
require_relative '../nonblocking_io_wrapper'
|
111
|
+
require_relative '../tracer'
|
96
112
|
|
97
113
|
module BELParser
|
98
114
|
module Parsers
|
@@ -118,12 +134,13 @@ module BELParser
|
|
118
134
|
include Enumerable
|
119
135
|
include BELParser::Parsers::Buffer
|
120
136
|
include BELParser::Parsers::AST::Sexp
|
137
|
+
include BELParser::Parsers::Tracer
|
121
138
|
|
122
139
|
def initialize(content)
|
123
140
|
@content = content
|
124
|
-
# begin: ragel
|
141
|
+
# begin: ragel
|
125
142
|
%% write data;
|
126
|
-
# end: ragel
|
143
|
+
# end: ragel
|
127
144
|
end
|
128
145
|
|
129
146
|
def each
|
@@ -134,10 +151,10 @@ module BELParser
|
|
134
151
|
pe = data.length
|
135
152
|
eof = data.length
|
136
153
|
|
137
|
-
# begin: ragel
|
154
|
+
# begin: ragel
|
138
155
|
%% write init;
|
139
156
|
%% write exec;
|
140
|
-
# end: ragel
|
157
|
+
# end: ragel
|
141
158
|
end
|
142
159
|
end
|
143
160
|
end
|
@@ -14,6 +14,7 @@ module LINE
|
|
14
14
|
BELParser::Parsers::Common::Identifier,
|
15
15
|
BELParser::Parsers::Common::String,
|
16
16
|
BELParser::Parsers::Common::List,
|
17
|
+
BELParser::Parsers::Common::Function,
|
17
18
|
BELParser::Parsers::Expression::Parameter,
|
18
19
|
BELParser::Parsers::Expression::Term,
|
19
20
|
BELParser::Parsers::Expression::Relationship,
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module BELParser
|
2
|
+
module Parsers
|
3
|
+
# Tracer provides a facility to trace ragel finite state machines.
|
4
|
+
# Tracing is enabled with using +$DEBUG+ or the environment variable
|
5
|
+
# +BELPARSER_PARSER_TRACE+
|
6
|
+
module Tracer
|
7
|
+
# Defines trace on require based on environment.
|
8
|
+
if $DEBUG || (ENV['BELPARSER_PARSER_TRACE'] =~ /^(1|yes|on|true)$/)
|
9
|
+
def trace(msg)
|
10
|
+
$stderr.puts msg
|
11
|
+
end
|
12
|
+
else
|
13
|
+
def trace(_)
|
14
|
+
# no-operation
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -18,6 +18,7 @@ module BELParser
|
|
18
18
|
resource_reader = script_context[:resource_reader]
|
19
19
|
|
20
20
|
keyword, domain = ast_node.children
|
21
|
+
require 'pry'; binding.pry unless domain
|
21
22
|
if domain.url?
|
22
23
|
prefix = keyword.identifier.string_literal
|
23
24
|
url = unquote(domain.child.string.string_literal)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bel_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.alpha.
|
4
|
+
version: 1.0.0.alpha.39
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Anthony Bargnesi
|
@@ -12,33 +12,33 @@ cert_chain: []
|
|
12
12
|
date: 2016-05-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
+
name: sparql-client
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
16
17
|
requirements:
|
17
18
|
- - "~>"
|
18
19
|
- !ruby/object:Gem::Version
|
19
20
|
version: 2.0.0
|
20
|
-
name: sparql-client
|
21
|
-
prerelease: false
|
22
|
-
type: :runtime
|
23
21
|
version_requirements: !ruby/object:Gem::Requirement
|
24
22
|
requirements:
|
25
23
|
- - "~>"
|
26
24
|
- !ruby/object:Gem::Version
|
27
25
|
version: 2.0.0
|
26
|
+
prerelease: false
|
27
|
+
type: :runtime
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
|
+
name: dbm-mapdb3
|
29
30
|
requirement: !ruby/object:Gem::Requirement
|
30
31
|
requirements:
|
31
32
|
- - "~>"
|
32
33
|
- !ruby/object:Gem::Version
|
33
34
|
version: 0.6.0.beta
|
34
|
-
name: dbm-mapdb3
|
35
|
-
prerelease: false
|
36
|
-
type: :runtime
|
37
35
|
version_requirements: !ruby/object:Gem::Requirement
|
38
36
|
requirements:
|
39
37
|
- - "~>"
|
40
38
|
- !ruby/object:Gem::Version
|
41
39
|
version: 0.6.0.beta
|
40
|
+
prerelease: false
|
41
|
+
type: :runtime
|
42
42
|
description: Implements language versions 1.0 and 2.0.
|
43
43
|
email: abargnesi@selventa.com
|
44
44
|
executables:
|
@@ -317,6 +317,8 @@ files:
|
|
317
317
|
- lib/bel_parser/parsers/common/comment_line.rl
|
318
318
|
- lib/bel_parser/parsers/common/common.rb
|
319
319
|
- lib/bel_parser/parsers/common/common.rl
|
320
|
+
- lib/bel_parser/parsers/common/function.rb
|
321
|
+
- lib/bel_parser/parsers/common/function.rl
|
320
322
|
- lib/bel_parser/parsers/common/identifier.rb
|
321
323
|
- lib/bel_parser/parsers/common/identifier.rl
|
322
324
|
- lib/bel_parser/parsers/common/list.rb
|
@@ -342,6 +344,7 @@ files:
|
|
342
344
|
- lib/bel_parser/parsers/mixin/buffer.rb
|
343
345
|
- lib/bel_parser/parsers/nonblocking_io_wrapper.rb
|
344
346
|
- lib/bel_parser/parsers/serializer.rb
|
347
|
+
- lib/bel_parser/parsers/tracer.rb
|
345
348
|
- lib/bel_parser/quoting.rb
|
346
349
|
- lib/bel_parser/resource.rb
|
347
350
|
- lib/bel_parser/resource/concept.rb
|