bel_parser 1.0.0.alpha.9 → 1.0.0.alpha.10
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/.gemspec +1 -1
- data/VERSION +1 -1
- data/lib/bel_parser/language/amino_acid.rb +68 -0
- data/lib/bel_parser/language/semantics/function_deprecation.rb +8 -1
- data/lib/bel_parser/language/semantics/multiple_subject_object.rb +55 -0
- data/lib/bel_parser/language/semantics/non_causal_nested_statement.rb +0 -5
- data/lib/bel_parser/language/semantics/non_object_list.rb +56 -0
- data/lib/bel_parser/language/semantics/relationship_deprecation.rb +8 -1
- data/lib/bel_parser/language/semantics/relationship_not_listable.rb +60 -0
- data/lib/bel_parser/language/semantics_ast.rb +26 -1
- data/lib/bel_parser/language/version1_0/functions/protein_modification.rb +9 -4
- data/lib/bel_parser/language/version1_0/functions/substitution.rb +4 -3
- data/lib/bel_parser/language/version2_0/functions/protein_modification.rb +14 -6
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 56e97fd6f3c7806fa34aea964a08dbceb7c03d91
|
4
|
+
data.tar.gz: 79712252a5ee0abbb4c92ccbfe1291b3e5dd657a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 90cd6d95eb8a80079dda7d53f99e0a883390ab1a7a40125de67a397c91bf453778a5f31ac7c9b018fd299c798eb3d82e7c24299fba6f233a75048a3a86f9b86b
|
7
|
+
data.tar.gz: 7cdb7c9cc960b319e960bebeea568c74742434b6831d73b27f9a648e6684476611521863018693c17f7bce8ddc55ba86a75c4e2eaae26ad3303ccb04c9fcdd21
|
data/.gemspec
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.0.alpha.
|
1
|
+
1.0.0.alpha.10
|
@@ -0,0 +1,68 @@
|
|
1
|
+
module BELParser
|
2
|
+
module Language
|
3
|
+
# AminoAcid defines a controlled vocabulary of twenty Amino Acids that are
|
4
|
+
# encoded by the universal genetic code. It does not contain the additional
|
5
|
+
# Amino Acids incorporated into proteins by synthetic means.
|
6
|
+
#
|
7
|
+
# see https://en.wikipedia.org/wiki/Amino_acid
|
8
|
+
module AminoAcid
|
9
|
+
Alanine = [:Alanine, :A, :Ala].freeze
|
10
|
+
Arginine = [:Arginine, :R, :Arg].freeze
|
11
|
+
Asparagine = [:Asparagine, :N, :Asn].freeze
|
12
|
+
AsparticAcid = [:'Aspartic Acid', :D, :Asp].freeze
|
13
|
+
Cysteine = [:Cysteine, :C, :Cys].freeze
|
14
|
+
GlutamicAcid = [:'Glutamic Acid', :E, :Glu].freeze
|
15
|
+
Glutamine = [:Glutamine, :Q, :Gln].freeze
|
16
|
+
Glycine = [:Glycine, :G, :Gly].freeze
|
17
|
+
Histidine = [:Histidine, :H, :His].freeze
|
18
|
+
Isoleucine = [:Isoleucine, :I, :Ile].freeze
|
19
|
+
Leucine = [:Leucine, :L, :Leu].freeze
|
20
|
+
Lysine = [:Lysine, :K, :Lys].freeze
|
21
|
+
Methionine = [:Methionine, :M, :Met].freeze
|
22
|
+
Phenylalanine = [:Phenylalanine, :F, :Phe].freeze
|
23
|
+
Proline = [:Proline, :P, :Pro].freeze
|
24
|
+
Serine = [:Serine, :S, :Ser].freeze
|
25
|
+
Threonine = [:Threonine, :T, :Thr].freeze
|
26
|
+
Tryptophan = [:Tryptophan, :W, :Trp].freeze
|
27
|
+
Tyrosine = [:Tyrosine, :Y, :Tyr].freeze
|
28
|
+
Valine = [:Valine, :V, :Val].freeze
|
29
|
+
|
30
|
+
# Determines if +sym+ represents an amino acid code.
|
31
|
+
#
|
32
|
+
# @param [#to_sym] sym amino acid code
|
33
|
+
# @return [Boolean] +true+ if +sym+ amino acid code is included in
|
34
|
+
# supported amino acids; +false+ if not supported
|
35
|
+
def self.includes?(sym)
|
36
|
+
@hash.key?(sym.to_sym)
|
37
|
+
end
|
38
|
+
|
39
|
+
# Gets all supported amino acid names.
|
40
|
+
def self.names
|
41
|
+
@names
|
42
|
+
end
|
43
|
+
|
44
|
+
# Gets all supported amino acid codes (i.e. name, 1-Letter, 3-Letter).
|
45
|
+
def self.values
|
46
|
+
@values
|
47
|
+
end
|
48
|
+
|
49
|
+
unless defined? @hash
|
50
|
+
@hash = {}
|
51
|
+
constants.map(&method(:const_get)).each do |values|
|
52
|
+
@hash.update(
|
53
|
+
Hash[values.map { |v| [v, values.first] }]
|
54
|
+
)
|
55
|
+
end
|
56
|
+
@hash.freeze
|
57
|
+
end
|
58
|
+
|
59
|
+
unless defined? @names
|
60
|
+
@names = constants.map(&method(:const_get)).map(&:first).sort.freeze
|
61
|
+
end
|
62
|
+
|
63
|
+
unless defined? @values
|
64
|
+
@values = constants.map(&method(:const_get)).map(&:to_a).flatten.freeze
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -3,6 +3,10 @@ require 'bel_parser/parsers/ast/node'
|
|
3
3
|
module BELParser
|
4
4
|
module Language
|
5
5
|
module Semantics
|
6
|
+
# FunctionDeprecation implements a {SemanticsFunction} that maps a
|
7
|
+
# {BELParser::Parsers::AST::Function} to a {SemanticsWarning} if the
|
8
|
+
# referenced function is deprecated for the
|
9
|
+
# {BELParser::Language::Specification}.
|
6
10
|
class FunctionDeprecation
|
7
11
|
include SemanticsFunction
|
8
12
|
|
@@ -19,6 +23,9 @@ module BELParser
|
|
19
23
|
end
|
20
24
|
end
|
21
25
|
|
26
|
+
# Represents a {SemanticsWarning} when a
|
27
|
+
# {BELParser::Parsers::AST::Function} references a deprecated function
|
28
|
+
# for the {BELParser::Language::Specification}.
|
22
29
|
class FunctionDeprecationWarning < SemanticsWarning
|
23
30
|
attr_reader :deprecated_function
|
24
31
|
|
@@ -28,7 +35,7 @@ module BELParser
|
|
28
35
|
end
|
29
36
|
|
30
37
|
def to_s
|
31
|
-
%
|
38
|
+
%(Function "#{deprecated_function}" is deprecated.)
|
32
39
|
end
|
33
40
|
end
|
34
41
|
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'bel_parser/parsers/ast/node'
|
2
|
+
|
3
|
+
module BELParser
|
4
|
+
module Language
|
5
|
+
module Semantics
|
6
|
+
# MultipleSubjectObject implements a {SemanticsFunction} that maps a
|
7
|
+
# {BELParser::Parsers::AST::Statement} to a {SemanticsWarning} if the
|
8
|
+
# subject term is referenced as an argument of the object list term.
|
9
|
+
class MultipleSubjectObject
|
10
|
+
include SemanticsFunction
|
11
|
+
|
12
|
+
private_class_method :new
|
13
|
+
|
14
|
+
def self.map(stmt_node, spec, _namespaces)
|
15
|
+
return nil unless stmt_node.is_a?(BELParser::Parsers::AST::Statement)
|
16
|
+
return nil unless stmt_node.relationship?
|
17
|
+
rel = spec.relationship(stmt_node.relationship.string_literal.to_sym)
|
18
|
+
return nil unless rel.listable?
|
19
|
+
|
20
|
+
list_func = spec.function(:list)
|
21
|
+
return nil unless list_func
|
22
|
+
return nil unless stmt_node.object.term?
|
23
|
+
|
24
|
+
map_subject_object(stmt_node, rel, spec)
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.map_subject_object(stmt_node, rel, spec)
|
28
|
+
sub_term = stmt_node.subject.term
|
29
|
+
list_term = stmt_node.object.child
|
30
|
+
|
31
|
+
if list_term.arguments.any? { |arg| sub_term == arg.child }
|
32
|
+
MultipleSubjectObjectWarning.new(stmt_node, spec, rel)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
# Represents a {SemanticsWarning} when a
|
38
|
+
# {BELParser::Parsers::AST::Statement} includes the subject term as an
|
39
|
+
# argument of an object list term.
|
40
|
+
class MultipleSubjectObjectWarning < SemanticsWarning
|
41
|
+
def initialize(stmt_node, spec, rel)
|
42
|
+
super(stmt_node, spec)
|
43
|
+
@rel = rel
|
44
|
+
end
|
45
|
+
|
46
|
+
def to_s
|
47
|
+
<<-MSG.gsub(/ {12}/, '').gsub(/\n/, '')
|
48
|
+
A "#{@rel.long}" statement cannot use the subject term as an
|
49
|
+
object list() argument.
|
50
|
+
MSG
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'bel_parser/parsers/ast/node'
|
2
|
+
|
3
|
+
module BELParser
|
4
|
+
module Language
|
5
|
+
module Semantics
|
6
|
+
# NonObjectList implements a {SemanticsFunction} that maps a
|
7
|
+
# {BELParser::Parsers::AST::Object} to a {SemanticsWarning} if the
|
8
|
+
# object of a multiple relationship *is not* a list term.
|
9
|
+
class NonObjectList
|
10
|
+
include SemanticsFunction
|
11
|
+
|
12
|
+
private_class_method :new
|
13
|
+
|
14
|
+
def self.map(stmt_node, spec, _namespaces)
|
15
|
+
return nil unless stmt_node.is_a?(BELParser::Parsers::AST::Statement)
|
16
|
+
return nil unless stmt_node.relationship?
|
17
|
+
|
18
|
+
list_func = spec.function(:list)
|
19
|
+
return nil unless list_func
|
20
|
+
|
21
|
+
rel = spec.relationship(stmt_node.relationship.string_literal.to_sym)
|
22
|
+
return nil unless rel.listable?
|
23
|
+
|
24
|
+
map_object(stmt_node.object, rel, list_func, spec)
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.map_object(obj_node, rel, list_func, spec)
|
28
|
+
return NonObjectListWarning.new(
|
29
|
+
obj_node,
|
30
|
+
spec,
|
31
|
+
rel) unless obj_node.term?
|
32
|
+
|
33
|
+
obj_func = obj_node.child.function.identifier.string_literal
|
34
|
+
NonObjectListWarning.new(
|
35
|
+
obj_node,
|
36
|
+
spec,
|
37
|
+
rel) unless spec.function(obj_func.to_sym) == list_func
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
# Represents a {SemanticsWarning} when a
|
42
|
+
# multiple relationship {BELParser::Parsers::AST::Statement} does not
|
43
|
+
# reference an object list term.
|
44
|
+
class NonObjectListWarning < SemanticsWarning
|
45
|
+
def initialize(statement_node, spec, rel)
|
46
|
+
super(statement_node, spec)
|
47
|
+
@rel = rel
|
48
|
+
end
|
49
|
+
|
50
|
+
def to_s
|
51
|
+
%(The "#{@rel.long}" relationship must take a list() object term.)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -3,6 +3,10 @@ require 'bel_parser/parsers/ast/node'
|
|
3
3
|
module BELParser
|
4
4
|
module Language
|
5
5
|
module Semantics
|
6
|
+
# RelationshipDeprecation implements a {SemanticsFunction} that maps a
|
7
|
+
# {BELParser::Parsers::AST::Relationship} to a {SemanticsWarning} if the
|
8
|
+
# referenced relationship is deprecated for the
|
9
|
+
# {BELParser::Language::Specification}.
|
6
10
|
class RelationshipDeprecation
|
7
11
|
include SemanticsFunction
|
8
12
|
|
@@ -19,6 +23,9 @@ module BELParser
|
|
19
23
|
end
|
20
24
|
end
|
21
25
|
|
26
|
+
# Represents a {SemanticsWarning} when a
|
27
|
+
# {BELParser::Parsers::AST::Relationship} references a deprecated
|
28
|
+
# relationship for the {BELParser::Language::Specification}.
|
22
29
|
class RelationshipDeprecationWarning < SemanticsWarning
|
23
30
|
attr_reader :deprecated_relationship
|
24
31
|
|
@@ -28,7 +35,7 @@ module BELParser
|
|
28
35
|
end
|
29
36
|
|
30
37
|
def to_s
|
31
|
-
%
|
38
|
+
%(Relationship "#{deprecated_relationship}" is deprecated.)
|
32
39
|
end
|
33
40
|
end
|
34
41
|
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'bel_parser/parsers/ast/node'
|
2
|
+
|
3
|
+
module BELParser
|
4
|
+
module Language
|
5
|
+
module Semantics
|
6
|
+
# RelationshipNotListable implements a {SemanticsFunction} that maps a
|
7
|
+
# {BELParser::Parsers::AST::Statement} to a {SemanticsWarning} if the
|
8
|
+
# relationship cannot be used for multiple terms in a list.
|
9
|
+
class RelationshipNotListable
|
10
|
+
include SemanticsFunction
|
11
|
+
|
12
|
+
private_class_method :new
|
13
|
+
|
14
|
+
def self.map(node, spec, _namespaces)
|
15
|
+
return nil unless node.is_a?(BELParser::Parsers::AST::Statement)
|
16
|
+
return nil unless node.relationship?
|
17
|
+
return nil unless node.object.term?
|
18
|
+
|
19
|
+
map_statement(node, spec)
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.map_statement(stmt_node, spec)
|
23
|
+
list_func = spec.function(:list)
|
24
|
+
return nil unless list_func
|
25
|
+
|
26
|
+
obj_func = stmt_node.object.child.function.identifier.string_literal
|
27
|
+
return nil unless spec.function(obj_func.to_sym) == list_func
|
28
|
+
|
29
|
+
rel = spec.relationship(stmt_node.relationship.string_literal.to_sym)
|
30
|
+
return nil unless rel
|
31
|
+
|
32
|
+
RelationshipNotMultipleWarning.new(stmt_node, spec, rel) unless
|
33
|
+
rel.listable?
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
# Represents a {SemanticsWarning} when a statement has a relationship
|
38
|
+
# that cannot reference multiple objects.
|
39
|
+
class RelationshipNotMultipleWarning < SemanticsWarning
|
40
|
+
def initialize(statement_node, spec, rel)
|
41
|
+
super(statement_node, spec)
|
42
|
+
@rel = rel
|
43
|
+
end
|
44
|
+
|
45
|
+
def to_s
|
46
|
+
multiple_relationships =
|
47
|
+
@specification
|
48
|
+
.listable_relationships
|
49
|
+
.map(&:long)
|
50
|
+
.join(', ')
|
51
|
+
<<-MSG.gsub(/ {12}/, '').strip
|
52
|
+
Statement must use a multiple relationship with a list object.
|
53
|
+
The "#{@rel.long}" relationship cannot reference multiple objects.
|
54
|
+
Multiple Relationships: #{multiple_relationships}
|
55
|
+
MSG
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -210,8 +210,33 @@ module BELParser
|
|
210
210
|
super(:term, children, properties)
|
211
211
|
end
|
212
212
|
|
213
|
+
def function
|
214
|
+
children[0]
|
215
|
+
end
|
216
|
+
|
217
|
+
def variadic_arguments?
|
218
|
+
children[1].type == :variadic_arguments
|
219
|
+
end
|
220
|
+
|
221
|
+
def arguments
|
222
|
+
children[1..-1]
|
223
|
+
end
|
224
|
+
|
213
225
|
def match(parse_node, _)
|
214
|
-
|
226
|
+
return failure(nil) if parse_node.nil?
|
227
|
+
return failure(parse_node) unless parse_node.type == type
|
228
|
+
|
229
|
+
# Return success if semantic AST does not supply argument patterns.
|
230
|
+
if arguments.empty? || variadic_arguments?
|
231
|
+
success(parse_node)
|
232
|
+
else
|
233
|
+
# Otherwise, check argument length.
|
234
|
+
if arguments.length == parse_node.arguments.length
|
235
|
+
success(parse_node)
|
236
|
+
else
|
237
|
+
failure(parse_node)
|
238
|
+
end
|
239
|
+
end
|
215
240
|
end
|
216
241
|
end
|
217
242
|
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require_relative '../../version1_0'
|
2
2
|
require_relative '../../function'
|
3
3
|
require_relative '../../signature'
|
4
|
+
require_relative '../../amino_acid'
|
4
5
|
require_relative '../../semantics'
|
5
6
|
|
6
7
|
module BELParser
|
@@ -63,7 +64,7 @@ module BELParser
|
|
63
64
|
any),
|
64
65
|
value(
|
65
66
|
value_type(
|
66
|
-
|
67
|
+
amino_acid_of(*AminoAcid.values))))),
|
67
68
|
argument(
|
68
69
|
parameter(
|
69
70
|
prefix(
|
@@ -74,7 +75,9 @@ module BELParser
|
|
74
75
|
end
|
75
76
|
private_constant :AST
|
76
77
|
|
77
|
-
STRING_FORM =
|
78
|
+
STRING_FORM =
|
79
|
+
'proteinModification(E:*,T:AminoAcid,E:*)proteinModification'
|
80
|
+
.freeze
|
78
81
|
private_constant :STRING_FORM
|
79
82
|
|
80
83
|
def self.semantic_ast
|
@@ -110,11 +113,13 @@ module BELParser
|
|
110
113
|
any),
|
111
114
|
value(
|
112
115
|
value_type(
|
113
|
-
|
116
|
+
amino_acid_of(*AminoAcid.values))))))
|
114
117
|
end
|
115
118
|
private_constant :AST
|
116
119
|
|
117
|
-
STRING_FORM =
|
120
|
+
STRING_FORM =
|
121
|
+
'proteinModification(E:*,T:AminoAcid)proteinModification'
|
122
|
+
.freeze
|
118
123
|
private_constant :STRING_FORM
|
119
124
|
|
120
125
|
def self.semantic_ast
|
@@ -56,7 +56,7 @@ module BELParser
|
|
56
56
|
any),
|
57
57
|
value(
|
58
58
|
value_type(
|
59
|
-
|
59
|
+
amino_acid_of(*AminoAcid.values))))),
|
60
60
|
argument(
|
61
61
|
parameter(
|
62
62
|
prefix(
|
@@ -70,11 +70,12 @@ module BELParser
|
|
70
70
|
any),
|
71
71
|
value(
|
72
72
|
value_type(
|
73
|
-
|
73
|
+
amino_acid_of(*AminoAcid.values))))))
|
74
74
|
end
|
75
75
|
private_constant :AST
|
76
76
|
|
77
|
-
STRING_FORM =
|
77
|
+
STRING_FORM =
|
78
|
+
'substitution(T:AminoAcid,E:*,T:AminoAcid)substitution'.freeze
|
78
79
|
private_constant :STRING_FORM
|
79
80
|
|
80
81
|
def self.semantic_ast
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require_relative '../../version2_0'
|
2
2
|
require_relative '../../function'
|
3
3
|
require_relative '../../signature'
|
4
|
+
require_relative '../../amino_acid'
|
4
5
|
require_relative '../../semantics'
|
5
6
|
|
6
7
|
module BELParser
|
@@ -14,7 +15,8 @@ module BELParser
|
|
14
15
|
|
15
16
|
SHORT = :pmod
|
16
17
|
LONG = :proteinModification
|
17
|
-
RETURN_TYPE =
|
18
|
+
RETURN_TYPE =
|
19
|
+
BELParser::Language::Version2_0::ReturnTypes::ProteinModification
|
18
20
|
DESCRIPTION = 'Denotes a covalently modified protein
|
19
21
|
bundance'.freeze
|
20
22
|
|
@@ -61,7 +63,9 @@ module BELParser
|
|
61
63
|
end
|
62
64
|
private_constant :AST
|
63
65
|
|
64
|
-
STRING_FORM =
|
66
|
+
STRING_FORM =
|
67
|
+
'proteinModification(E:modificationType)proteinModification'
|
68
|
+
.freeze
|
65
69
|
private_constant :STRING_FORM
|
66
70
|
|
67
71
|
def self.semantic_ast
|
@@ -97,11 +101,13 @@ module BELParser
|
|
97
101
|
prefix(any),
|
98
102
|
value(
|
99
103
|
value_type(
|
100
|
-
|
104
|
+
amino_acid_of(*AminoAcid.values))))))
|
101
105
|
end
|
102
106
|
private_constant :AST
|
103
107
|
|
104
|
-
STRING_FORM =
|
108
|
+
STRING_FORM =
|
109
|
+
'proteinModification(E:modificationType,T:AminoAcid)proteinModification'
|
110
|
+
.freeze
|
105
111
|
private_constant :STRING_FORM
|
106
112
|
|
107
113
|
def self.semantic_ast
|
@@ -137,7 +143,7 @@ module BELParser
|
|
137
143
|
prefix(any),
|
138
144
|
value(
|
139
145
|
value_type(
|
140
|
-
|
146
|
+
amino_acid_of(*AminoAcid.values))))),
|
141
147
|
argument(
|
142
148
|
parameter(
|
143
149
|
prefix(any),
|
@@ -147,7 +153,9 @@ module BELParser
|
|
147
153
|
end
|
148
154
|
private_constant :AST
|
149
155
|
|
150
|
-
STRING_FORM =
|
156
|
+
STRING_FORM =
|
157
|
+
'proteinModification(E:modificationType,T:AminoAcid,E:*)proteinModification'
|
158
|
+
.freeze
|
151
159
|
private_constant :STRING_FORM
|
152
160
|
|
153
161
|
def self.semantic_ast
|
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.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anthony Bargnesi
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-04-
|
12
|
+
date: 2016-04-14 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Implements language versions 1.0 and 2.0.
|
15
15
|
email: abargnesi@selventa.com
|
@@ -30,6 +30,7 @@ files:
|
|
30
30
|
- lib/bel_parser/expression/parser.rb
|
31
31
|
- lib/bel_parser/expression/validator.rb
|
32
32
|
- lib/bel_parser/language.rb
|
33
|
+
- lib/bel_parser/language/amino_acid.rb
|
33
34
|
- lib/bel_parser/language/expression_validator.rb
|
34
35
|
- lib/bel_parser/language/function.rb
|
35
36
|
- lib/bel_parser/language/quoting.rb
|
@@ -38,8 +39,11 @@ files:
|
|
38
39
|
- lib/bel_parser/language/semantics/deeply_nested_statement.rb
|
39
40
|
- lib/bel_parser/language/semantics/function_deprecation.rb
|
40
41
|
- lib/bel_parser/language/semantics/list_function_subject.rb
|
42
|
+
- lib/bel_parser/language/semantics/multiple_subject_object.rb
|
41
43
|
- lib/bel_parser/language/semantics/non_causal_nested_statement.rb
|
44
|
+
- lib/bel_parser/language/semantics/non_object_list.rb
|
42
45
|
- lib/bel_parser/language/semantics/relationship_deprecation.rb
|
46
|
+
- lib/bel_parser/language/semantics/relationship_not_listable.rb
|
43
47
|
- lib/bel_parser/language/semantics/signature_mapping.rb
|
44
48
|
- lib/bel_parser/language/semantics_ast.rb
|
45
49
|
- lib/bel_parser/language/semantics_function.rb
|