bel 0.2.1 → 0.3.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|