bel_parser 1.0.0.alpha.1
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 +7 -0
- data/.gemspec +28 -0
- data/CHANGELOG.md +10 -0
- data/LICENSE +191 -0
- data/README.md +9 -0
- data/VERSION +1 -0
- data/bin/bel2_termcheck +39 -0
- data/lib/bel_parser.rb +17 -0
- data/lib/bel_parser/ast_filter.rb +27 -0
- data/lib/bel_parser/ast_generator.rb +86 -0
- data/lib/bel_parser/ast_validator.rb +40 -0
- data/lib/bel_parser/expression/parser.rb +42 -0
- data/lib/bel_parser/expression/term_semantics.rb +36 -0
- data/lib/bel_parser/language.rb +7 -0
- data/lib/bel_parser/language/function.rb +59 -0
- data/lib/bel_parser/language/quoting.rb +236 -0
- data/lib/bel_parser/language/semantic_ast.rb +604 -0
- data/lib/bel_parser/language/semantics/analyzer.rb +59 -0
- data/lib/bel_parser/language/signature.rb +39 -0
- data/lib/bel_parser/language/specification.rb +49 -0
- data/lib/bel_parser/language/syntax/expression/incomplete_node.rb +14 -0
- data/lib/bel_parser/language/syntax/expression/invalid_term_function.rb +22 -0
- data/lib/bel_parser/language/version1.rb +50 -0
- data/lib/bel_parser/language/version1/functions/abundance.rb +85 -0
- data/lib/bel_parser/language/version1/functions/biological_process.rb +85 -0
- data/lib/bel_parser/language/version1/functions/catalytic_activity.rb +110 -0
- data/lib/bel_parser/language/version1/functions/cell_secretion.rb +80 -0
- data/lib/bel_parser/language/version1/functions/cell_surface_expression.rb +80 -0
- data/lib/bel_parser/language/version1/functions/chaperone_activity.rb +110 -0
- data/lib/bel_parser/language/version1/functions/complex_abundance.rb +115 -0
- data/lib/bel_parser/language/version1/functions/composite_abundance.rb +80 -0
- data/lib/bel_parser/language/version1/functions/degradation.rb +80 -0
- data/lib/bel_parser/language/version1/functions/fusion.rb +302 -0
- data/lib/bel_parser/language/version1/functions/gene_abundance.rb +125 -0
- data/lib/bel_parser/language/version1/functions/gtp_bound_activity.rb +110 -0
- data/lib/bel_parser/language/version1/functions/kinase_activity.rb +110 -0
- data/lib/bel_parser/language/version1/functions/list.rb +115 -0
- data/lib/bel_parser/language/version1/functions/micro_rna_abundance.rb +85 -0
- data/lib/bel_parser/language/version1/functions/molecular_activity.rb +80 -0
- data/lib/bel_parser/language/version1/functions/pathology.rb +85 -0
- data/lib/bel_parser/language/version1/functions/peptidase_activity.rb +110 -0
- data/lib/bel_parser/language/version1/functions/phosphatase_activity.rb +110 -0
- data/lib/bel_parser/language/version1/functions/products.rb +80 -0
- data/lib/bel_parser/language/version1/functions/protein_abundance.rb +245 -0
- data/lib/bel_parser/language/version1/functions/protein_modification.rb +167 -0
- data/lib/bel_parser/language/version1/functions/reactants.rb +80 -0
- data/lib/bel_parser/language/version1/functions/reaction.rb +85 -0
- data/lib/bel_parser/language/version1/functions/ribosylation_activity.rb +110 -0
- data/lib/bel_parser/language/version1/functions/rna_abundance.rb +125 -0
- data/lib/bel_parser/language/version1/functions/substitution.rb +96 -0
- data/lib/bel_parser/language/version1/functions/transcriptional_activity.rb +110 -0
- data/lib/bel_parser/language/version1/functions/translocation.rb +100 -0
- data/lib/bel_parser/language/version1/functions/transport_activity.rb +110 -0
- data/lib/bel_parser/language/version1/functions/truncation.rb +82 -0
- data/lib/bel_parser/language/version1/return_types/abundance.rb +20 -0
- data/lib/bel_parser/language/version1/return_types/any.rb +74 -0
- data/lib/bel_parser/language/version1/return_types/biological_process.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/catalytic_activity.rb +20 -0
- data/lib/bel_parser/language/version1/return_types/chaperone_activity.rb +20 -0
- data/lib/bel_parser/language/version1/return_types/complex_abundance.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/fusion.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/gene_abundance.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/gtp_bound_activity.rb +20 -0
- data/lib/bel_parser/language/version1/return_types/kinase_activity.rb +20 -0
- data/lib/bel_parser/language/version1/return_types/list.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/micro_rna_abundance.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/molecular_activity.rb +20 -0
- data/lib/bel_parser/language/version1/return_types/pathology.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/peptidase_activity.rb +20 -0
- data/lib/bel_parser/language/version1/return_types/phosphatase_activity.rb +20 -0
- data/lib/bel_parser/language/version1/return_types/products.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/protein_abundance.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/protein_modification.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/reactants.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/ribosylation_activity.rb +20 -0
- data/lib/bel_parser/language/version1/return_types/rna_abundance.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/substitution.rb +17 -0
- data/lib/bel_parser/language/version1/return_types/transcriptional_activity.rb +20 -0
- data/lib/bel_parser/language/version1/return_types/transport_activity.rb +20 -0
- data/lib/bel_parser/language/version1/return_types/truncation.rb +17 -0
- data/lib/bel_parser/language/version2.rb +50 -0
- data/lib/bel_parser/language/version2/functions/abundance.rb +165 -0
- data/lib/bel_parser/language/version2/functions/activity.rb +115 -0
- data/lib/bel_parser/language/version2/functions/biological_process.rb +85 -0
- data/lib/bel_parser/language/version2/functions/cell_secretion.rb +80 -0
- data/lib/bel_parser/language/version2/functions/cell_surface_expression.rb +80 -0
- data/lib/bel_parser/language/version2/functions/complex_abundance.rb +190 -0
- data/lib/bel_parser/language/version2/functions/composite_abundance.rb +80 -0
- data/lib/bel_parser/language/version2/functions/degradation.rb +80 -0
- data/lib/bel_parser/language/version2/functions/fragment.rb +119 -0
- data/lib/bel_parser/language/version2/functions/from_location.rb +85 -0
- data/lib/bel_parser/language/version2/functions/fusion.rb +227 -0
- data/lib/bel_parser/language/version2/functions/gene_abundance.rb +195 -0
- data/lib/bel_parser/language/version2/functions/list.rb +115 -0
- data/lib/bel_parser/language/version2/functions/location.rb +85 -0
- data/lib/bel_parser/language/version2/functions/micro_rna_abundance.rb +165 -0
- data/lib/bel_parser/language/version2/functions/molecular_activity.rb +83 -0
- data/lib/bel_parser/language/version2/functions/pathology.rb +85 -0
- data/lib/bel_parser/language/version2/functions/products.rb +80 -0
- data/lib/bel_parser/language/version2/functions/protein_abundance.rb +285 -0
- data/lib/bel_parser/language/version2/functions/protein_modification.rb +167 -0
- data/lib/bel_parser/language/version2/functions/reactants.rb +80 -0
- data/lib/bel_parser/language/version2/functions/reaction.rb +85 -0
- data/lib/bel_parser/language/version2/functions/rna_abundance.rb +195 -0
- data/lib/bel_parser/language/version2/functions/to_location.rb +85 -0
- data/lib/bel_parser/language/version2/functions/translocation.rb +90 -0
- data/lib/bel_parser/language/version2/functions/variant.rb +83 -0
- data/lib/bel_parser/language/version2/return_types/abundance.rb +20 -0
- data/lib/bel_parser/language/version2/return_types/activity.rb +20 -0
- data/lib/bel_parser/language/version2/return_types/any.rb +74 -0
- data/lib/bel_parser/language/version2/return_types/biological_process.rb +17 -0
- data/lib/bel_parser/language/version2/return_types/complex_abundance.rb +17 -0
- data/lib/bel_parser/language/version2/return_types/fragment.rb +20 -0
- data/lib/bel_parser/language/version2/return_types/from_location.rb +20 -0
- data/lib/bel_parser/language/version2/return_types/fusion.rb +17 -0
- data/lib/bel_parser/language/version2/return_types/gene_abundance.rb +17 -0
- data/lib/bel_parser/language/version2/return_types/list.rb +17 -0
- data/lib/bel_parser/language/version2/return_types/location.rb +20 -0
- data/lib/bel_parser/language/version2/return_types/micro_rna_abundance.rb +17 -0
- data/lib/bel_parser/language/version2/return_types/molecular_activity.rb +20 -0
- data/lib/bel_parser/language/version2/return_types/pathology.rb +17 -0
- data/lib/bel_parser/language/version2/return_types/products.rb +17 -0
- data/lib/bel_parser/language/version2/return_types/protein_abundance.rb +17 -0
- data/lib/bel_parser/language/version2/return_types/protein_modification.rb +17 -0
- data/lib/bel_parser/language/version2/return_types/reactants.rb +17 -0
- data/lib/bel_parser/language/version2/return_types/rna_abundance.rb +17 -0
- data/lib/bel_parser/language/version2/return_types/to_location.rb +20 -0
- data/lib/bel_parser/language/version2/return_types/variant.rb +20 -0
- data/lib/bel_parser/mixin/line_continuator.rb +15 -0
- data/lib/bel_parser/mixin/line_mapping.rb +14 -0
- data/lib/bel_parser/parser.rb +54 -0
- data/lib/bel_parser/parsers/ast/mapped_traversal.rb +36 -0
- data/lib/bel_parser/parsers/ast/node.rb +705 -0
- data/lib/bel_parser/parsers/ast/sexp.rb +8 -0
- data/lib/bel_parser/parsers/ast/traversal.rb +21 -0
- data/lib/bel_parser/parsers/bel_script.rb +4 -0
- data/lib/bel_parser/parsers/bel_script/define_annotation.rb +5476 -0
- data/lib/bel_parser/parsers/bel_script/define_annotation.rl +141 -0
- data/lib/bel_parser/parsers/bel_script/define_namespace.rb +1780 -0
- data/lib/bel_parser/parsers/bel_script/define_namespace.rl +121 -0
- data/lib/bel_parser/parsers/bel_script/set.rb +4556 -0
- data/lib/bel_parser/parsers/bel_script/set.rl +116 -0
- data/lib/bel_parser/parsers/bel_script/unset.rb +706 -0
- data/lib/bel_parser/parsers/bel_script/unset.rl +95 -0
- data/lib/bel_parser/parsers/common.rb +5 -0
- data/lib/bel_parser/parsers/common/blank_line.rb +211 -0
- data/lib/bel_parser/parsers/common/blank_line.rl +81 -0
- data/lib/bel_parser/parsers/common/comment_line.rb +245 -0
- data/lib/bel_parser/parsers/common/comment_line.rl +97 -0
- data/lib/bel_parser/parsers/common/common.rb +7 -0
- data/lib/bel_parser/parsers/common/common.rl +13 -0
- data/lib/bel_parser/parsers/common/identifier.rb +289 -0
- data/lib/bel_parser/parsers/common/identifier.rl +106 -0
- data/lib/bel_parser/parsers/common/list.rb +2142 -0
- data/lib/bel_parser/parsers/common/list.rl +144 -0
- data/lib/bel_parser/parsers/common/string.rb +271 -0
- data/lib/bel_parser/parsers/common/string.rl +107 -0
- data/lib/bel_parser/parsers/expression.rb +7 -0
- data/lib/bel_parser/parsers/expression/comment.rb +239 -0
- data/lib/bel_parser/parsers/expression/comment.rl +97 -0
- data/lib/bel_parser/parsers/expression/parameter.rb +1506 -0
- data/lib/bel_parser/parsers/expression/parameter.rl +97 -0
- data/lib/bel_parser/parsers/expression/relationship.rb +254 -0
- data/lib/bel_parser/parsers/expression/relationship.rl +98 -0
- data/lib/bel_parser/parsers/expression/statement_nested.rb +17802 -0
- data/lib/bel_parser/parsers/expression/statement_nested.rl +141 -0
- data/lib/bel_parser/parsers/expression/statement_observed_term.rb +7291 -0
- data/lib/bel_parser/parsers/expression/statement_observed_term.rl +92 -0
- data/lib/bel_parser/parsers/expression/statement_simple.rb +10475 -0
- data/lib/bel_parser/parsers/expression/statement_simple.rl +112 -0
- data/lib/bel_parser/parsers/expression/term.rb +3989 -0
- data/lib/bel_parser/parsers/expression/term.rl +157 -0
- data/lib/bel_parser/parsers/line_parser.rb +92 -0
- data/lib/bel_parser/parsers/mixin/buffer.rb +10 -0
- data/lib/bel_parser/parsers/nonblocking_io_wrapper.rb +50 -0
- data/lib/bel_parser/script/parser.rb +49 -0
- data/lib/bel_parser/vendor/ast.rb +17 -0
- data/lib/bel_parser/vendor/ast/node.rb +254 -0
- data/lib/bel_parser/vendor/ast/processor.rb +12 -0
- data/lib/bel_parser/vendor/ast/processor/mixin.rb +282 -0
- data/lib/bel_parser/vendor/ast/sexp.rb +30 -0
- metadata +226 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
require_relative '../../version1'
|
|
2
|
+
require_relative '../../function'
|
|
3
|
+
require_relative '../../signature'
|
|
4
|
+
require_relative '../../semantic_ast'
|
|
5
|
+
|
|
6
|
+
module BELParser
|
|
7
|
+
module Language
|
|
8
|
+
module Version2
|
|
9
|
+
module Functions
|
|
10
|
+
# ToLocation: Denotes the to cellular location of the abundance.
|
|
11
|
+
class ToLocation
|
|
12
|
+
extend Function
|
|
13
|
+
|
|
14
|
+
SHORT = :toLoc
|
|
15
|
+
LONG = :toLocation
|
|
16
|
+
RETURN_TYPE = BELParser::Language::Version2::ReturnTypes::ToLocation
|
|
17
|
+
DESCRIPTION = 'Denotes the to cellular location of the abundance.'.freeze
|
|
18
|
+
|
|
19
|
+
def self.short
|
|
20
|
+
SHORT
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def self.long
|
|
24
|
+
LONG
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def self.return_type
|
|
28
|
+
RETURN_TYPE
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def self.description
|
|
32
|
+
DESCRIPTION
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def self.signatures
|
|
36
|
+
SIGNATURES
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
module Signatures
|
|
40
|
+
|
|
41
|
+
class ToLocationSignature
|
|
42
|
+
extend BELParser::Language::Signature
|
|
43
|
+
|
|
44
|
+
private_class_method :new
|
|
45
|
+
|
|
46
|
+
AST = BELParser::Language::Semantics::Builder.build do
|
|
47
|
+
term(
|
|
48
|
+
function(
|
|
49
|
+
identifier(
|
|
50
|
+
function_of(ToLocation))),
|
|
51
|
+
argument(
|
|
52
|
+
parameter(
|
|
53
|
+
prefix(
|
|
54
|
+
identifier(
|
|
55
|
+
has_namespace,
|
|
56
|
+
namespace_of(:*))),
|
|
57
|
+
value(
|
|
58
|
+
value_type(
|
|
59
|
+
has_encoding,
|
|
60
|
+
encoding_of(:Location))))))
|
|
61
|
+
end
|
|
62
|
+
private_constant :AST
|
|
63
|
+
|
|
64
|
+
STRING_FORM = 'toLocation(E:location)toLocation'.freeze
|
|
65
|
+
private_constant :STRING_FORM
|
|
66
|
+
|
|
67
|
+
def self.semantic_ast
|
|
68
|
+
AST
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def self.string_form
|
|
72
|
+
STRING_FORM
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
SIGNATURES = Signatures.constants.map do |const|
|
|
79
|
+
Signatures.const_get(const)
|
|
80
|
+
end.freeze
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
require_relative '../../version1'
|
|
2
|
+
require_relative '../../function'
|
|
3
|
+
require_relative '../../signature'
|
|
4
|
+
require_relative '../../semantic_ast'
|
|
5
|
+
|
|
6
|
+
module BELParser
|
|
7
|
+
module Language
|
|
8
|
+
module Version2
|
|
9
|
+
module Functions
|
|
10
|
+
# Translocation: Denotes the frequency or abundance of events in which members move between locations
|
|
11
|
+
class Translocation
|
|
12
|
+
extend Function
|
|
13
|
+
|
|
14
|
+
SHORT = :tloc
|
|
15
|
+
LONG = :translocation
|
|
16
|
+
RETURN_TYPE = BELParser::Language::Version2::ReturnTypes::Abundance
|
|
17
|
+
DESCRIPTION = 'Denotes the frequency or abundance of events in which members move between locations'.freeze
|
|
18
|
+
|
|
19
|
+
def self.short
|
|
20
|
+
SHORT
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def self.long
|
|
24
|
+
LONG
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def self.return_type
|
|
28
|
+
RETURN_TYPE
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def self.description
|
|
32
|
+
DESCRIPTION
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def self.signatures
|
|
36
|
+
SIGNATURES
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
module Signatures
|
|
40
|
+
|
|
41
|
+
class Translocation
|
|
42
|
+
extend BELParser::Language::Signature
|
|
43
|
+
|
|
44
|
+
private_class_method :new
|
|
45
|
+
|
|
46
|
+
AST = BELParser::Language::Semantics::Builder.build do
|
|
47
|
+
term(
|
|
48
|
+
function(
|
|
49
|
+
identifier(
|
|
50
|
+
function_of(Translocation))),
|
|
51
|
+
argument(
|
|
52
|
+
term(
|
|
53
|
+
function(
|
|
54
|
+
identifier(
|
|
55
|
+
return_type_of(BELParser::Language::Version2::ReturnTypes::Abundance))))),
|
|
56
|
+
argument(
|
|
57
|
+
term(
|
|
58
|
+
function(
|
|
59
|
+
identifier(
|
|
60
|
+
return_type_of(BELParser::Language::Version2::ReturnTypes::FromLocation))))),
|
|
61
|
+
argument(
|
|
62
|
+
term(
|
|
63
|
+
function(
|
|
64
|
+
identifier(
|
|
65
|
+
return_type_of(BELParser::Language::Version2::ReturnTypes::ToLocation))))))
|
|
66
|
+
end
|
|
67
|
+
private_constant :AST
|
|
68
|
+
|
|
69
|
+
STRING_FORM = 'translocation(F:abundance,F:fromLocation,F:toLocation)abundance'.freeze
|
|
70
|
+
private_constant :STRING_FORM
|
|
71
|
+
|
|
72
|
+
def self.semantic_ast
|
|
73
|
+
AST
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def self.string_form
|
|
77
|
+
STRING_FORM
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
SIGNATURES = Signatures.constants.map do |const|
|
|
84
|
+
Signatures.const_get(const)
|
|
85
|
+
end.freeze
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
require_relative '../../version1'
|
|
2
|
+
require_relative '../../function'
|
|
3
|
+
require_relative '../../signature'
|
|
4
|
+
require_relative '../../semantic_ast'
|
|
5
|
+
|
|
6
|
+
module BELParser
|
|
7
|
+
module Language
|
|
8
|
+
module Version2
|
|
9
|
+
module Functions
|
|
10
|
+
# Variant: Denotes a sequence variant of the specified abundance.
|
|
11
|
+
class Variant
|
|
12
|
+
extend Function
|
|
13
|
+
|
|
14
|
+
SHORT = :var
|
|
15
|
+
LONG = :variant
|
|
16
|
+
RETURN_TYPE = BELParser::Language::Version2::ReturnTypes::Variant
|
|
17
|
+
DESCRIPTION = 'Denotes a sequence variant of the specified abundance.'.freeze
|
|
18
|
+
|
|
19
|
+
def self.short
|
|
20
|
+
SHORT
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def self.long
|
|
24
|
+
LONG
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def self.return_type
|
|
28
|
+
RETURN_TYPE
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def self.description
|
|
32
|
+
DESCRIPTION
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def self.signatures
|
|
36
|
+
SIGNATURES
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
module Signatures
|
|
40
|
+
|
|
41
|
+
class VariantSignature
|
|
42
|
+
extend BELParser::Language::Signature
|
|
43
|
+
|
|
44
|
+
private_class_method :new
|
|
45
|
+
|
|
46
|
+
# TODO: More strict prefix validation for variant namespace?
|
|
47
|
+
AST = BELParser::Language::Semantics::Builder.build do
|
|
48
|
+
term(
|
|
49
|
+
function(
|
|
50
|
+
identifier(
|
|
51
|
+
function_of(Variant))),
|
|
52
|
+
argument(
|
|
53
|
+
parameter(
|
|
54
|
+
prefix(any),
|
|
55
|
+
value(
|
|
56
|
+
value_type(
|
|
57
|
+
has_encoding,
|
|
58
|
+
encoding_of(:HgvsVariantDescription))))))
|
|
59
|
+
end
|
|
60
|
+
private_constant :AST
|
|
61
|
+
|
|
62
|
+
STRING_FORM = 'variant(E:hgvsVariantDescription)variant'.freeze
|
|
63
|
+
private_constant :STRING_FORM
|
|
64
|
+
|
|
65
|
+
def self.semantic_ast
|
|
66
|
+
AST
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def self.string_form
|
|
70
|
+
STRING_FORM
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
SIGNATURES = Signatures.constants.map do |const|
|
|
77
|
+
Signatures.const_get(const)
|
|
78
|
+
end.freeze
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require_relative 'any'
|
|
2
|
+
|
|
3
|
+
module BELParser
|
|
4
|
+
module Language
|
|
5
|
+
module Version2
|
|
6
|
+
module ReturnTypes
|
|
7
|
+
# Abundance return type.
|
|
8
|
+
class Abundance < Any
|
|
9
|
+
# Return the {Symbol} value.
|
|
10
|
+
#
|
|
11
|
+
# @note This method should be overridden in subclasses.
|
|
12
|
+
def self.to_sym
|
|
13
|
+
raise_not_implemented(__method__) if self != Abundance
|
|
14
|
+
:abundance
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require_relative 'any'
|
|
2
|
+
|
|
3
|
+
module BELParser
|
|
4
|
+
module Language
|
|
5
|
+
module Version2
|
|
6
|
+
module ReturnTypes
|
|
7
|
+
# Activity return type.
|
|
8
|
+
class Activity < Any
|
|
9
|
+
# Return the {Symbol} value.
|
|
10
|
+
#
|
|
11
|
+
# @note This method should be overridden in subclasses.
|
|
12
|
+
def self.to_sym
|
|
13
|
+
raise_not_implemented(__method__) if self != Activity
|
|
14
|
+
:activity
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
require 'English'
|
|
2
|
+
|
|
3
|
+
module BELParser
|
|
4
|
+
module Language
|
|
5
|
+
module Version2
|
|
6
|
+
module ReturnTypes
|
|
7
|
+
# The any type.
|
|
8
|
+
class Any
|
|
9
|
+
# Return the {Symbol} value.
|
|
10
|
+
#
|
|
11
|
+
# @note This method should be overridden in subclasses.
|
|
12
|
+
def self.to_sym
|
|
13
|
+
raise_not_implemented(__method__) if self != Any
|
|
14
|
+
:*
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Returns +true+ if I am a subtype of +other_return_type+; otherwise
|
|
18
|
+
# return +false+.
|
|
19
|
+
#
|
|
20
|
+
# @param [Class] other_return_type to compare to
|
|
21
|
+
# @return [Boolean] +true+ if I am a subtype; +false+ if not
|
|
22
|
+
def self.subtype_of?(other_return_type)
|
|
23
|
+
self <= other_return_type
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Retrieve my immediate subtypes.
|
|
27
|
+
#
|
|
28
|
+
# @return [Array<Class>] my immediate subtypes
|
|
29
|
+
def self.subtypes
|
|
30
|
+
(@subtypes ||= []).freeze
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Retrieve my transitive subtypes.
|
|
34
|
+
#
|
|
35
|
+
# @return [Array<Class>] my transitive subtypes
|
|
36
|
+
def self.transitive_subtypes
|
|
37
|
+
transitive_subtypes =
|
|
38
|
+
(@subtypes ||= []).flat_map do |subtype|
|
|
39
|
+
[subtype, subtype.subtypes]
|
|
40
|
+
end.flatten
|
|
41
|
+
transitive_subtypes << self
|
|
42
|
+
transitive_subtypes.freeze
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Inherited hook overridden to keep track of descendants. This method
|
|
46
|
+
# is inherited by all descendants.
|
|
47
|
+
#
|
|
48
|
+
# @param [Class] cls the subclass that is inheriting me
|
|
49
|
+
# @see .subtypes
|
|
50
|
+
def self.inherited(cls)
|
|
51
|
+
(@subtypes ||= []) << cls
|
|
52
|
+
end
|
|
53
|
+
private_class_method
|
|
54
|
+
|
|
55
|
+
# Raise {NotImplementedError} for +method+. Alters the exception
|
|
56
|
+
# backtrace to exclude this method.
|
|
57
|
+
#
|
|
58
|
+
# @param [#to_s] the method name
|
|
59
|
+
# @raise [NotImplementedError] for +method+
|
|
60
|
+
def self.raise_not_implemented(method)
|
|
61
|
+
msg = "#{name} must implement the #{method} method"
|
|
62
|
+
raise NotImplementedError, msg
|
|
63
|
+
rescue StandardError
|
|
64
|
+
raise(
|
|
65
|
+
$ERROR_INFO.class,
|
|
66
|
+
$ERROR_INFO.message,
|
|
67
|
+
$ERROR_INFO.backtrace[1..-1])
|
|
68
|
+
end
|
|
69
|
+
private_class_method
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
require_relative 'any'
|
|
2
|
+
|
|
3
|
+
module BELParser
|
|
4
|
+
module Language
|
|
5
|
+
module Version2
|
|
6
|
+
module ReturnTypes
|
|
7
|
+
# Biological process return type.
|
|
8
|
+
class BiologicalProcess < Any
|
|
9
|
+
def self.to_sym
|
|
10
|
+
raise_not_implemented(__method__) if self != BiologicalProcess
|
|
11
|
+
:biologicalProcess
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
require_relative 'abundance'
|
|
2
|
+
|
|
3
|
+
module BELParser
|
|
4
|
+
module Language
|
|
5
|
+
module Version2
|
|
6
|
+
module ReturnTypes
|
|
7
|
+
# Complex abundance return type.
|
|
8
|
+
class ComplexAbundance < Abundance
|
|
9
|
+
def self.to_sym
|
|
10
|
+
raise_not_implemented(__method__) if self != ComplexAbundance
|
|
11
|
+
:complexAbundance
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require_relative 'any'
|
|
2
|
+
|
|
3
|
+
module BELParser
|
|
4
|
+
module Language
|
|
5
|
+
module Version2
|
|
6
|
+
module ReturnTypes
|
|
7
|
+
# Fragment return type.
|
|
8
|
+
class Fragment < Any
|
|
9
|
+
# Return the {Symbol} value.
|
|
10
|
+
#
|
|
11
|
+
# @note This method should be overridden in subclasses.
|
|
12
|
+
def self.to_sym
|
|
13
|
+
raise_not_implemented(__method__) if self != Fragment
|
|
14
|
+
:fragment
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require_relative 'location'
|
|
2
|
+
|
|
3
|
+
module BELParser
|
|
4
|
+
module Language
|
|
5
|
+
module Version2
|
|
6
|
+
module ReturnTypes
|
|
7
|
+
# FromLocation return type.
|
|
8
|
+
class FromLocation < Location
|
|
9
|
+
# Return the {Symbol} value.
|
|
10
|
+
#
|
|
11
|
+
# @note This method should be overridden in subclasses.
|
|
12
|
+
def self.to_sym
|
|
13
|
+
raise_not_implemented(__method__) if self != FromLocation
|
|
14
|
+
:fromLocation
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|