bel 0.2.1 → 0.3.0.beta1
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.
- data/INSTALL.md +19 -0
- data/INSTALL_RUBY.md +107 -0
- data/README.md +319 -0
- data/bel.gemspec +67 -0
- data/bin/bel2rdf +134 -0
- data/bin/bel_compare +177 -0
- data/bin/bel_parse +60 -0
- data/bin/bel_rdfschema +72 -0
- data/bin/bel_summarize +86 -0
- data/bin/bel_upgrade +77 -55
- data/bin/bel_upgrade_term +163 -0
- data/ext/mri/bel-ast.c +221 -0
- data/ext/mri/bel-ast.h +82 -0
- data/ext/mri/bel-node-stack.c +83 -0
- data/ext/mri/bel-node-stack.h +26 -0
- data/ext/mri/bel-parse-statement.c +122296 -0
- data/ext/mri/bel-parse-term.c +117670 -0
- data/ext/mri/bel-parser.c +91 -0
- data/ext/mri/bel-parser.h +13 -0
- data/ext/mri/bel-token.c +161 -0
- data/ext/mri/bel-token.h +58 -0
- data/ext/mri/bel-tokenize-term.c +391 -0
- data/ext/mri/extconf.rb +8 -0
- data/ext/mri/libbel.c +5 -0
- data/ext/mri/libbel.def +26 -0
- data/lib/bel.rb +12 -2
- data/lib/bel/completion.rb +53 -0
- data/lib/bel/completion_rule.rb +236 -0
- data/lib/bel/language.rb +573 -97
- data/lib/bel/namespace.rb +237 -21
- data/lib/bel/quoting.rb +29 -0
- data/lib/bel/rdf.rb +314 -0
- data/lib/bel/script.rb +206365 -153577
- data/lib/features.rb +21 -0
- data/lib/libbel.rb +201 -0
- data/lib/util.rb +125 -0
- metadata +190 -43
- checksums.yaml +0 -7
- data/lib/bel/parse_objects.rb +0 -115
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 3f744cb7280ca000b3f0d88c83e997cbaf05f654
|
4
|
-
data.tar.gz: e49304e421acd5e906fcf4022c91b9156ccc4b90
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: fd2a6f3a6218651f9398eb1407489a73d3d4f2271b89a5950b839f2939382d60b49669d078bffc5e2c4408d8c0fad84803e5babb264b52f5822ea79923b613e8
|
7
|
-
data.tar.gz: 1e42739d9092c3f1a92e6b3b64cdcc028f5f9582ca60aabfe388ace26fd70b34d5c86db421d83b93af17dfd7421531e8116ff035ba1fd144f9e883aa6bbddc4f
|
data/lib/bel/parse_objects.rb
DELETED
@@ -1,115 +0,0 @@
|
|
1
|
-
require 'singleton'
|
2
|
-
|
3
|
-
module BEL
|
4
|
-
module Script
|
5
|
-
class Newline
|
6
|
-
include Singleton
|
7
|
-
def to_s
|
8
|
-
""
|
9
|
-
end
|
10
|
-
end
|
11
|
-
Comment = Struct.new(:text) do
|
12
|
-
def to_s
|
13
|
-
%Q{##{self.text}}
|
14
|
-
end
|
15
|
-
end
|
16
|
-
DocumentProperty = Struct.new(:name, :value) do
|
17
|
-
def to_s
|
18
|
-
value = self.value
|
19
|
-
if NonWordMatcher.match value
|
20
|
-
value = %Q{"#{value}"}
|
21
|
-
end
|
22
|
-
%Q{SET DOCUMENT #{self.name} = #{value}}
|
23
|
-
end
|
24
|
-
end
|
25
|
-
AnnotationDefinition = Struct.new(:type, :prefix, :value) do
|
26
|
-
def to_s
|
27
|
-
case self.type
|
28
|
-
when :list
|
29
|
-
%Q{DEFINE ANNOTATION #{self.prefix} AS LIST {#{self.value.join(',')}}}
|
30
|
-
when :pattern
|
31
|
-
%Q{DEFINE ANNOTATION #{self.prefix} AS PATTERN "#{self.value}"}
|
32
|
-
when :url
|
33
|
-
%Q{DEFINE ANNOTATION #{self.prefix} AS URL "#{self.value}"}
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
NamespaceDefinition = Struct.new(:prefix, :value) do
|
38
|
-
def to_s
|
39
|
-
%Q{DEFINE NAMESPACE #{self.prefix} AS URL "#{self.value}"}
|
40
|
-
end
|
41
|
-
end
|
42
|
-
Annotation = Struct.new(:name, :value) do
|
43
|
-
def to_s
|
44
|
-
if self.value.respond_to? :each
|
45
|
-
value = "{#{self.value.join(',')}}"
|
46
|
-
else
|
47
|
-
value = self.value
|
48
|
-
if NonWordMatcher.match value
|
49
|
-
value.gsub! '"', '\"'
|
50
|
-
value = %Q{"#{value}"}
|
51
|
-
end
|
52
|
-
end
|
53
|
-
"SET #{self.name} = #{value}"
|
54
|
-
end
|
55
|
-
end
|
56
|
-
Parameter = Struct.new(:ns, :value) do
|
57
|
-
NonWordMatcher = Regexp.compile(/[^0-9a-zA-Z]/)
|
58
|
-
def to_s
|
59
|
-
prepped_value = value
|
60
|
-
if NonWordMatcher.match value
|
61
|
-
prepped_value = %Q{"#{value}"}
|
62
|
-
end
|
63
|
-
"#{self.ns ? self.ns + ':' : ''}#{prepped_value}"
|
64
|
-
end
|
65
|
-
end
|
66
|
-
Term = Struct.new(:fx, :args) do
|
67
|
-
def <<(item)
|
68
|
-
self.args << item
|
69
|
-
end
|
70
|
-
def to_s
|
71
|
-
"#{self.fx}(#{[args].flatten.join(',')})"
|
72
|
-
end
|
73
|
-
end
|
74
|
-
Statement = Struct.new(:subject, :rel, :object, :annotations, :comment) do
|
75
|
-
def subject_only?
|
76
|
-
!rel
|
77
|
-
end
|
78
|
-
def simple?
|
79
|
-
object.is_a? Term
|
80
|
-
end
|
81
|
-
def nested?
|
82
|
-
object.is_a? Statement
|
83
|
-
end
|
84
|
-
def to_s
|
85
|
-
lbl = case
|
86
|
-
when subject_only?
|
87
|
-
subject.to_s
|
88
|
-
when simple?
|
89
|
-
"#{subject.to_s} #{rel} #{object.to_s}"
|
90
|
-
when nested?
|
91
|
-
"#{subject.to_s} #{rel} (#{object.to_s})"
|
92
|
-
end
|
93
|
-
comment ? lbl + ' //' + comment : lbl
|
94
|
-
end
|
95
|
-
end
|
96
|
-
StatementGroup = Struct.new(:name, :statements, :annotations) do
|
97
|
-
def to_s
|
98
|
-
name = self.name
|
99
|
-
if NonWordMatcher.match name
|
100
|
-
name = %Q{"#{name}"}
|
101
|
-
end
|
102
|
-
%Q{SET STATEMENT_GROUP = #{name}}
|
103
|
-
end
|
104
|
-
end
|
105
|
-
UnsetStatementGroup = Struct.new(:name) do
|
106
|
-
def to_s
|
107
|
-
%Q{UNSET STATEMENT_GROUP}
|
108
|
-
end
|
109
|
-
end
|
110
|
-
|
111
|
-
private
|
112
|
-
end
|
113
|
-
end
|
114
|
-
# vim: ts=2 sw=2:
|
115
|
-
# encoding: utf-8
|