bel_parser 1.0.0.alpha.30-java → 1.0.0.alpha.31-java
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fa04261c4ab5fb7567aa559b39547ce55587533b
|
4
|
+
data.tar.gz: 40cb25e2563b4e0e58c1ab45859c176a4dd7ac2e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 761629499e9952307150811a2f6a3339913c6341f0fd74b52cabde34db19212f06d64ddf18d7e9cec6f55b42864804358699c142ed66373f2f649f1c7cb4df8a
|
7
|
+
data.tar.gz: f445020c91a30361c321b8ae470642e77572dfab288b2cfe5697fbb5b1c7fa2ede02dff7cedf4aaf49656a7ad35818b18ca2e195856438b482cb3dc704e70fd2
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.0.alpha.
|
1
|
+
1.0.0.alpha.31
|
@@ -8,7 +8,7 @@ module BELParser
|
|
8
8
|
include BELParser::Quoting
|
9
9
|
include Comparable
|
10
10
|
|
11
|
-
|
11
|
+
attr_reader :namespace, :value
|
12
12
|
|
13
13
|
def initialize(namespace, value)
|
14
14
|
raise(ArgumentError, 'value is nil') unless value
|
@@ -21,6 +21,22 @@ module BELParser
|
|
21
21
|
@value = value
|
22
22
|
end
|
23
23
|
|
24
|
+
def namespace=(namespace)
|
25
|
+
unless namespace.nil? || namespace.is_a?(Namespace)
|
26
|
+
raise(
|
27
|
+
ArgumentError,
|
28
|
+
"namespace: expected nil or Namespace, actual #{namespace.class}")
|
29
|
+
end
|
30
|
+
|
31
|
+
@namespace = namespace
|
32
|
+
end
|
33
|
+
|
34
|
+
def value=(value)
|
35
|
+
raise(ArgumentError, 'value is nil') unless value
|
36
|
+
|
37
|
+
@value = value
|
38
|
+
end
|
39
|
+
|
24
40
|
def encoding
|
25
41
|
nsv = @namespace[@value]
|
26
42
|
return nil unless nsv
|
@@ -72,7 +88,7 @@ module BELParser
|
|
72
88
|
namespace =
|
73
89
|
if prefix.identifier
|
74
90
|
keyword = prefix.identifier.string_literal
|
75
|
-
namespace_hash[keyword]
|
91
|
+
Namespace.new(keyword, namespace_hash[keyword])
|
76
92
|
else
|
77
93
|
nil
|
78
94
|
end
|
@@ -6,19 +6,36 @@ module BELParser
|
|
6
6
|
class Term
|
7
7
|
include Comparable
|
8
8
|
|
9
|
-
|
9
|
+
attr_reader :function, :arguments
|
10
10
|
|
11
11
|
def initialize(function, *arguments)
|
12
|
+
self.function = function
|
13
|
+
self.arguments = arguments
|
14
|
+
end
|
15
|
+
|
16
|
+
def function=(function)
|
12
17
|
unless function && function.is_a?(BELParser::Language::Function)
|
13
18
|
raise(
|
14
19
|
ArgumentError,
|
15
20
|
%(function: expected Function, actual #{function.class}))
|
16
21
|
end
|
17
22
|
@function = function
|
18
|
-
@arguments = (arguments ||= []).flatten
|
19
23
|
end
|
20
24
|
|
21
|
-
def
|
25
|
+
def arguments=(*args)
|
26
|
+
args = (args ||= []).flatten
|
27
|
+
invalid = args.any?(&method(:invalid_argument?))
|
28
|
+
raise(
|
29
|
+
ArgumentError,
|
30
|
+
'args must be Parameter or Term objects') if invalid
|
31
|
+
|
32
|
+
@arguments = args
|
33
|
+
end
|
34
|
+
|
35
|
+
def <<(arg)
|
36
|
+
raise(
|
37
|
+
ArgumentError,
|
38
|
+
'argument must be Parameter or Term') if invalid_argument?(arg)
|
22
39
|
@arguments << item
|
23
40
|
end
|
24
41
|
|
@@ -47,6 +64,13 @@ module BELParser
|
|
47
64
|
nil
|
48
65
|
end
|
49
66
|
end
|
67
|
+
|
68
|
+
private
|
69
|
+
|
70
|
+
def invalid_argument?(arg)
|
71
|
+
!arg.is_a?(BELParser::Expression::Model::Parameter) &&
|
72
|
+
!arg.is_a?(BELParser::Expression::Model::Term)
|
73
|
+
end
|
50
74
|
end
|
51
75
|
|
52
76
|
module Converters
|
@@ -90,4 +114,3 @@ module BELParser
|
|
90
114
|
end
|
91
115
|
end
|
92
116
|
end
|
93
|
-
|
@@ -65,10 +65,12 @@ module BELParser
|
|
65
65
|
def parse
|
66
66
|
case @input
|
67
67
|
when ::String # conflicts with ...AST::String
|
68
|
+
results = parse_string(@input, @filter)
|
69
|
+
return nil if results.nil?
|
68
70
|
convert_ast(
|
69
71
|
@spec,
|
70
72
|
@namespaces,
|
71
|
-
|
73
|
+
results.first)
|
72
74
|
when Array
|
73
75
|
convert_multiple(
|
74
76
|
parse_array(@input, @filter),
|