bel_parser 1.0.0.alpha.8 → 1.0.0.alpha.9

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.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/lib/bel_parser/language/relationship.rb +46 -1
  4. data/lib/bel_parser/language/semantics/non_causal_nested_statement.rb +55 -0
  5. data/lib/bel_parser/language/specification.rb +62 -0
  6. data/lib/bel_parser/language/version1_0/relationships/acts_in.rb +16 -0
  7. data/lib/bel_parser/language/version1_0/relationships/analogous.rb +4 -0
  8. data/lib/bel_parser/language/version1_0/relationships/biomarker_for.rb +4 -0
  9. data/lib/bel_parser/language/version1_0/relationships/causes_no_change.rb +8 -0
  10. data/lib/bel_parser/language/version1_0/relationships/decreases.rb +12 -0
  11. data/lib/bel_parser/language/version1_0/relationships/directly_decreases.rb +16 -0
  12. data/lib/bel_parser/language/version1_0/relationships/directly_increases.rb +16 -0
  13. data/lib/bel_parser/language/version1_0/relationships/has_component.rb +8 -0
  14. data/lib/bel_parser/language/version1_0/relationships/has_components.rb +12 -0
  15. data/lib/bel_parser/language/version1_0/relationships/has_member.rb +4 -0
  16. data/lib/bel_parser/language/version1_0/relationships/has_members.rb +8 -0
  17. data/lib/bel_parser/language/version1_0/relationships/has_modification.rb +12 -0
  18. data/lib/bel_parser/language/version1_0/relationships/has_product.rb +16 -0
  19. data/lib/bel_parser/language/version1_0/relationships/has_variant.rb +12 -0
  20. data/lib/bel_parser/language/version1_0/relationships/includes.rb +12 -0
  21. data/lib/bel_parser/language/version1_0/relationships/increases.rb +12 -0
  22. data/lib/bel_parser/language/version1_0/relationships/is_a.rb +4 -0
  23. data/lib/bel_parser/language/version1_0/relationships/negative_correlation.rb +8 -0
  24. data/lib/bel_parser/language/version1_0/relationships/orthologous.rb +4 -0
  25. data/lib/bel_parser/language/version1_0/relationships/positive_correlation.rb +8 -0
  26. data/lib/bel_parser/language/version1_0/relationships/prognostic_biomarker_for.rb +4 -0
  27. data/lib/bel_parser/language/version1_0/relationships/rate_limiting_step_of.rb +8 -0
  28. data/lib/bel_parser/language/version1_0/relationships/reactant_in.rb +16 -0
  29. data/lib/bel_parser/language/version1_0/relationships/sub_process_of.rb +4 -0
  30. data/lib/bel_parser/language/version1_0/relationships/transcribed_to.rb +12 -0
  31. data/lib/bel_parser/language/version1_0/relationships/translated_to.rb +12 -0
  32. data/lib/bel_parser/language/version1_0/relationships/translocates.rb +12 -0
  33. data/lib/bel_parser/language/version1_0.rb +1 -0
  34. data/lib/bel_parser/language/version2_0/relationships/acts_in.rb +16 -0
  35. data/lib/bel_parser/language/version2_0/relationships/analogous.rb +4 -0
  36. data/lib/bel_parser/language/version2_0/relationships/biomarker_for.rb +4 -0
  37. data/lib/bel_parser/language/version2_0/relationships/causes_no_change.rb +8 -0
  38. data/lib/bel_parser/language/version2_0/relationships/decreases.rb +12 -0
  39. data/lib/bel_parser/language/version2_0/relationships/directly_decreases.rb +16 -0
  40. data/lib/bel_parser/language/version2_0/relationships/directly_increases.rb +16 -0
  41. data/lib/bel_parser/language/version2_0/relationships/has_component.rb +8 -0
  42. data/lib/bel_parser/language/version2_0/relationships/has_components.rb +12 -0
  43. data/lib/bel_parser/language/version2_0/relationships/has_member.rb +4 -0
  44. data/lib/bel_parser/language/version2_0/relationships/has_members.rb +8 -0
  45. data/lib/bel_parser/language/version2_0/relationships/has_modification.rb +12 -0
  46. data/lib/bel_parser/language/version2_0/relationships/has_product.rb +16 -0
  47. data/lib/bel_parser/language/version2_0/relationships/has_variant.rb +12 -0
  48. data/lib/bel_parser/language/version2_0/relationships/includes.rb +12 -0
  49. data/lib/bel_parser/language/version2_0/relationships/increases.rb +12 -0
  50. data/lib/bel_parser/language/version2_0/relationships/is_a.rb +4 -0
  51. data/lib/bel_parser/language/version2_0/relationships/negative_correlation.rb +8 -0
  52. data/lib/bel_parser/language/version2_0/relationships/orthologous.rb +4 -0
  53. data/lib/bel_parser/language/version2_0/relationships/positive_correlation.rb +8 -0
  54. data/lib/bel_parser/language/version2_0/relationships/prognostic_biomarker_for.rb +4 -0
  55. data/lib/bel_parser/language/version2_0/relationships/rate_limiting_step_of.rb +8 -0
  56. data/lib/bel_parser/language/version2_0/relationships/reactant_in.rb +16 -0
  57. data/lib/bel_parser/language/version2_0/relationships/regulates.rb +8 -0
  58. data/lib/bel_parser/language/version2_0/relationships/sub_process_of.rb +4 -0
  59. data/lib/bel_parser/language/version2_0/relationships/transcribed_to.rb +12 -0
  60. data/lib/bel_parser/language/version2_0/relationships/translated_to.rb +12 -0
  61. data/lib/bel_parser/language/version2_0/relationships/translocates.rb +12 -0
  62. data/lib/bel_parser/language/version2_0.rb +1 -0
  63. data/lib/bel_parser/parsers/ast/node.rb +8 -2
  64. metadata +2 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: db955e27ca9e82bf06bbd0b3a01d4e7c9f4a00d3
4
- data.tar.gz: a4621fb03673bba08e748328d3087cb6b98c2881
3
+ metadata.gz: 0ec7298783e8859243fb8ba8ca8f5a317ce76066
4
+ data.tar.gz: ae09c0ccf3a4ad7edad1288aa2b557dfc8496f60
5
5
  SHA512:
6
- metadata.gz: 42721d3f23244e42a9ea26399964d359bfe334a927ae622fead2255fb33758748aac4e3259cee34e2d4a53ebd5305ec18dd2571be657e86eca3872704c7373e7
7
- data.tar.gz: 55a9fd90bb9807075bc240afd9a4fc513c656d638ffb9fb27055d8431746323d7870ad1501de0607f4b84072986233534e82a6a40ad2bfa54096602c17727b81
6
+ metadata.gz: 6fce1307bbce3fe4bcf5047a045f2a1b1a98fb92c8b0f1ece305189736f26847f18e238059ae07ccb690bcc703cd45d0e0f4b6b717072d9020c46b788ce9e623
7
+ data.tar.gz: 98f2a8f16b931302f508a5259a56345cc22e81fd017ffb1233e61aacbe4c4a180204a6e6e1b9e9db30a978e20e9d274782093e111577f6e4b0222509dfbe534e
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.0.alpha.8
1
+ 1.0.0.alpha.9
@@ -25,7 +25,52 @@ module BELParser
25
25
  false
26
26
  end
27
27
 
28
- def ===(other)
28
+ def causal?
29
+ false
30
+ end
31
+
32
+ def correlative?
33
+ false
34
+ end
35
+
36
+ def decreasing?
37
+ false
38
+ end
39
+
40
+ def direct?
41
+ false
42
+ end
43
+
44
+ def directed?
45
+ false
46
+ end
47
+
48
+ def genomic?
49
+ false
50
+ end
51
+
52
+ def increasing?
53
+ false
54
+ end
55
+
56
+ def indirect?
57
+ false
58
+ end
59
+
60
+ def injected?
61
+ false
62
+ end
63
+
64
+ def listable?
65
+ false
66
+ end
67
+
68
+ def self?
69
+ false
70
+ end
71
+
72
+ def ==(other)
73
+ return true if self.equal?(other)
29
74
  return false if other.nil?
30
75
  short == other || long == other
31
76
  end
@@ -0,0 +1,55 @@
1
+ require 'bel_parser/parsers/ast/node'
2
+
3
+ module BELParser
4
+ module Language
5
+ module Semantics
6
+ # NonCausalNestedStatement implements a {SemanticsFunction} that maps a
7
+ # nested {BELParser::Parsers::AST::Statement} to {SemanticsWarning} if
8
+ # the relationship is non-causal.
9
+ class NonCausalNestedStatement
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.object? && node.object.statement?
17
+
18
+ rel = node.relationship.string_literal.to_sym
19
+ unless spec.causal_relationships.include?(rel)
20
+ NonCausalNestedStatementWarning.new(node, spec, rel)
21
+ end
22
+ end
23
+ end
24
+
25
+ # Represents a {SemanticsWarning} when a nested
26
+ # {BELParser::Parsers::AST::Statement} has a non-causal relationship.
27
+ class NonCausalNestedStatementWarning < SemanticsWarning
28
+ attr_reader :non_causal_relationship
29
+
30
+ def initialize(stmt_node, spec, rel)
31
+ super(stmt_node, spec)
32
+ @non_causal_relationship = spec.relationship(rel)
33
+ end
34
+
35
+ def to_s
36
+ causal_relationships =
37
+ @specification
38
+ .causal_relationships
39
+ .map(&:long)
40
+ .join(', ')
41
+ <<-MSG.gsub(/ {12}/, '')
42
+ Nested statement is not a causal relationship.
43
+ The "#{non_causal_relationship.long}" relationship is not causal.
44
+ Causal Relationships: #{causal_relationships}
45
+ MSG
46
+ end
47
+
48
+ private
49
+
50
+ def causal_relationships
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -3,6 +3,8 @@ module BELParser
3
3
  # Specification defines the common behavior of any language specification.
4
4
  # It includes the syntactic and semantic rules of the language.
5
5
  module Specification
6
+ EMPTY_ARRAY = [].freeze
7
+
6
8
  def function(short_or_long_form)
7
9
  @indexed_functions[short_or_long_form]
8
10
  end
@@ -43,6 +45,50 @@ module BELParser
43
45
  @syntax
44
46
  end
45
47
 
48
+ def causal_relationships
49
+ @causal_relationships || EMPTY_ARRAY
50
+ end
51
+
52
+ def correlative_relationships
53
+ @correlative_relationships || EMPTY_ARRAY
54
+ end
55
+
56
+ def decreasing_relationships
57
+ @decreasing_relationships || EMPTY_ARRAY
58
+ end
59
+
60
+ def deprecated_relationships
61
+ @deprecated_relationships || EMPTY_ARRAY
62
+ end
63
+
64
+ def direct_relationships
65
+ @direct_relationships || EMPTY_ARRAY
66
+ end
67
+
68
+ def directed_relationships
69
+ @directed_relationships || EMPTY_ARRAY
70
+ end
71
+
72
+ def genomic_relationships
73
+ @genomic_relationships || EMPTY_ARRAY
74
+ end
75
+
76
+ def increasing_relationships
77
+ @increasing_relationships || EMPTY_ARRAY
78
+ end
79
+
80
+ def indirect_relationships
81
+ @indirect_relationships || EMPTY_ARRAY
82
+ end
83
+
84
+ def listable_relationships
85
+ @listable_relationships || EMPTY_ARRAY
86
+ end
87
+
88
+ def self_relationships
89
+ @self_relationships || EMPTY_ARRAY
90
+ end
91
+
46
92
  # @param [Array<#long,#short>] language_objects to be indexed by
47
93
  # +long+ and +short+ method return
48
94
  def index_long_short(language_objects)
@@ -65,6 +111,22 @@ module BELParser
65
111
  end
66
112
  protected :index_sym
67
113
 
114
+ def assign_relationship_categories(relationships)
115
+ relationships.each do |rel|
116
+ rel.methods(false).grep(/(.*?)\?/) do |method_name|
117
+ if rel.method(method_name).call
118
+ category = method_name.to_s.delete('?')
119
+ category_ivar = "@#{category}_relationships".to_sym
120
+ unless instance_variable_defined? category_ivar
121
+ instance_variable_set(category_ivar, [])
122
+ end
123
+ instance_variable_get(category_ivar) << rel
124
+ end
125
+ end
126
+ end
127
+ end
128
+ protected :assign_relationship_categories
129
+
68
130
  def version
69
131
  @version
70
132
  end
@@ -38,6 +38,22 @@ module BELParser
38
38
  def self.description
39
39
  DESCRIPTION
40
40
  end
41
+
42
+ def self.direct?
43
+ true
44
+ end
45
+
46
+ def self.directed?
47
+ true
48
+ end
49
+
50
+ def self.injected?
51
+ true
52
+ end
53
+
54
+ def self.self?
55
+ true
56
+ end
41
57
  end
42
58
  end
43
59
  end
@@ -30,6 +30,10 @@ module BELParser
30
30
  def self.description
31
31
  DESCRIPTION
32
32
  end
33
+
34
+ def self.genomic?
35
+ true
36
+ end
33
37
  end
34
38
  end
35
39
  end
@@ -31,6 +31,10 @@ module BELParser
31
31
  def self.description
32
32
  DESCRIPTION
33
33
  end
34
+
35
+ def self.directed?
36
+ true
37
+ end
34
38
  end
35
39
  end
36
40
  end
@@ -35,6 +35,14 @@ module BELParser
35
35
  def self.description
36
36
  DESCRIPTION
37
37
  end
38
+
39
+ def self.causal?
40
+ true
41
+ end
42
+
43
+ def self.directed?
44
+ true
45
+ end
38
46
  end
39
47
  end
40
48
  end
@@ -44,6 +44,18 @@ module BELParser
44
44
  def self.description
45
45
  DESCRIPTION
46
46
  end
47
+
48
+ def self.causal?
49
+ true
50
+ end
51
+
52
+ def self.decreasing?
53
+ true
54
+ end
55
+
56
+ def self.directed?
57
+ true
58
+ end
47
59
  end
48
60
  end
49
61
  end
@@ -33,6 +33,22 @@ module BELParser
33
33
  def self.description
34
34
  DESCRIPTION
35
35
  end
36
+
37
+ def self.causal?
38
+ true
39
+ end
40
+
41
+ def self.decreasing?
42
+ true
43
+ end
44
+
45
+ def self.direct?
46
+ true
47
+ end
48
+
49
+ def self.directed?
50
+ true
51
+ end
36
52
  end
37
53
  end
38
54
  end
@@ -33,6 +33,22 @@ module BELParser
33
33
  def self.description
34
34
  DESCRIPTION
35
35
  end
36
+
37
+ def self.causal?
38
+ true
39
+ end
40
+
41
+ def self.increasing?
42
+ true
43
+ end
44
+
45
+ def self.direct?
46
+ true
47
+ end
48
+
49
+ def self.directed?
50
+ true
51
+ end
36
52
  end
37
53
  end
38
54
  end
@@ -47,6 +47,14 @@ module BELParser
47
47
  def self.description
48
48
  DESCRIPTION
49
49
  end
50
+
51
+ def self.direct?
52
+ true
53
+ end
54
+
55
+ def self.directed?
56
+ true
57
+ end
50
58
  end
51
59
  end
52
60
  end
@@ -42,6 +42,18 @@ module BELParser
42
42
  def self.description
43
43
  DESCRIPTION
44
44
  end
45
+
46
+ def self.direct?
47
+ true
48
+ end
49
+
50
+ def self.directed?
51
+ true
52
+ end
53
+
54
+ def self.listable?
55
+ true
56
+ end
45
57
  end
46
58
  end
47
59
  end
@@ -37,6 +37,10 @@ module BELParser
37
37
  def self.description
38
38
  DESCRIPTION
39
39
  end
40
+
41
+ def self.directed?
42
+ true
43
+ end
40
44
  end
41
45
  end
42
46
  end
@@ -42,6 +42,14 @@ module BELParser
42
42
  def self.description
43
43
  DESCRIPTION
44
44
  end
45
+
46
+ def self.directed?
47
+ true
48
+ end
49
+
50
+ def self.listable?
51
+ true
52
+ end
45
53
  end
46
54
  end
47
55
  end
@@ -35,6 +35,18 @@ module BELParser
35
35
  def self.description
36
36
  DESCRIPTION
37
37
  end
38
+
39
+ def self.direct?
40
+ true
41
+ end
42
+
43
+ def self.directed?
44
+ true
45
+ end
46
+
47
+ def self.injected?
48
+ true
49
+ end
38
50
  end
39
51
  end
40
52
  end
@@ -37,6 +37,22 @@ module BELParser
37
37
  def self.description
38
38
  DESCRIPTION
39
39
  end
40
+
41
+ def self.direct?
42
+ true
43
+ end
44
+
45
+ def self.directed?
46
+ true
47
+ end
48
+
49
+ def self.injected?
50
+ true
51
+ end
52
+
53
+ def self.self?
54
+ true
55
+ end
40
56
  end
41
57
  end
42
58
  end
@@ -35,6 +35,18 @@ module BELParser
35
35
  def self.description
36
36
  DESCRIPTION
37
37
  end
38
+
39
+ def self.direct?
40
+ true
41
+ end
42
+
43
+ def self.directed?
44
+ true
45
+ end
46
+
47
+ def self.injected?
48
+ true
49
+ end
38
50
  end
39
51
  end
40
52
  end
@@ -40,6 +40,18 @@ module BELParser
40
40
  def self.description
41
41
  DESCRIPTION
42
42
  end
43
+
44
+ def self.directed?
45
+ true
46
+ end
47
+
48
+ def self.injected?
49
+ true
50
+ end
51
+
52
+ def self.self?
53
+ true
54
+ end
43
55
  end
44
56
  end
45
57
  end
@@ -44,6 +44,18 @@ module BELParser
44
44
  def self.description
45
45
  DESCRIPTION
46
46
  end
47
+
48
+ def self.causal?
49
+ true
50
+ end
51
+
52
+ def self.directed?
53
+ true
54
+ end
55
+
56
+ def self.increasing?
57
+ true
58
+ end
47
59
  end
48
60
  end
49
61
  end
@@ -37,6 +37,10 @@ module BELParser
37
37
  def self.description
38
38
  DESCRIPTION
39
39
  end
40
+
41
+ def self.directed?
42
+ true
43
+ end
40
44
  end
41
45
  end
42
46
  end
@@ -35,6 +35,14 @@ module BELParser
35
35
  def self.description
36
36
  DESCRIPTION
37
37
  end
38
+
39
+ def self.correlative?
40
+ true
41
+ end
42
+
43
+ def self.decreasing?
44
+ true
45
+ end
38
46
  end
39
47
  end
40
48
  end
@@ -37,6 +37,10 @@ module BELParser
37
37
  def self.description
38
38
  DESCRIPTION
39
39
  end
40
+
41
+ def self.genomic?
42
+ true
43
+ end
40
44
  end
41
45
  end
42
46
  end
@@ -31,6 +31,14 @@ module BELParser
31
31
  def self.description
32
32
  DESCRIPTION
33
33
  end
34
+
35
+ def self.increasing?
36
+ true
37
+ end
38
+
39
+ def self.correlative?
40
+ true
41
+ end
34
42
  end
35
43
  end
36
44
  end
@@ -33,6 +33,10 @@ module BELParser
33
33
  def self.description
34
34
  DESCRIPTION
35
35
  end
36
+
37
+ def self.directed?
38
+ true
39
+ end
36
40
  end
37
41
  end
38
42
  end
@@ -38,6 +38,14 @@ module BELParser
38
38
  def self.description
39
39
  DESCRIPTION
40
40
  end
41
+
42
+ def self.directed?
43
+ true
44
+ end
45
+
46
+ def self.increasing?
47
+ true
48
+ end
41
49
  end
42
50
  end
43
51
  end
@@ -37,6 +37,22 @@ module BELParser
37
37
  def self.description
38
38
  DESCRIPTION
39
39
  end
40
+
41
+ def self.direct?
42
+ true
43
+ end
44
+
45
+ def self.directed?
46
+ true
47
+ end
48
+
49
+ def self.injected?
50
+ true
51
+ end
52
+
53
+ def self.self?
54
+ true
55
+ end
40
56
  end
41
57
  end
42
58
  end
@@ -44,6 +44,10 @@ module BELParser
44
44
  def self.description
45
45
  DESCRIPTION
46
46
  end
47
+
48
+ def self.directed?
49
+ true
50
+ end
47
51
  end
48
52
  end
49
53
  end
@@ -34,6 +34,18 @@ module BELParser
34
34
  def self.description
35
35
  DESCRIPTION
36
36
  end
37
+
38
+ def self.direct?
39
+ true
40
+ end
41
+
42
+ def self.directed?
43
+ true
44
+ end
45
+
46
+ def self.genomic?
47
+ true
48
+ end
37
49
  end
38
50
  end
39
51
  end
@@ -35,6 +35,18 @@ module BELParser
35
35
  def self.description
36
36
  DESCRIPTION
37
37
  end
38
+
39
+ def self.direct?
40
+ true
41
+ end
42
+
43
+ def self.directed?
44
+ true
45
+ end
46
+
47
+ def self.genomic?
48
+ true
49
+ end
38
50
  end
39
51
  end
40
52
  end
@@ -38,6 +38,18 @@ module BELParser
38
38
  def self.description
39
39
  DESCRIPTION
40
40
  end
41
+
42
+ def self.directed?
43
+ true
44
+ end
45
+
46
+ def self.injected?
47
+ true
48
+ end
49
+
50
+ def self.self?
51
+ true
52
+ end
41
53
  end
42
54
  end
43
55
  end
@@ -48,6 +48,7 @@ module BELParser
48
48
  end
49
49
  @relationships = rel_classes.compact
50
50
  @indexed_relationships = index_long_short(@relationships)
51
+ assign_relationship_categories(@relationships)
51
52
  end
52
53
 
53
54
  def load_syntax
@@ -38,6 +38,22 @@ module BELParser
38
38
  def self.description
39
39
  DESCRIPTION
40
40
  end
41
+
42
+ def self.direct?
43
+ true
44
+ end
45
+
46
+ def self.directed?
47
+ true
48
+ end
49
+
50
+ def self.injected?
51
+ true
52
+ end
53
+
54
+ def self.self?
55
+ true
56
+ end
41
57
  end
42
58
  end
43
59
  end
@@ -34,6 +34,10 @@ module BELParser
34
34
  def self.deprecated?
35
35
  true
36
36
  end
37
+
38
+ def self.genomic?
39
+ true
40
+ end
37
41
  end
38
42
  end
39
43
  end
@@ -35,6 +35,10 @@ module BELParser
35
35
  def self.deprecated?
36
36
  true
37
37
  end
38
+
39
+ def self.directed?
40
+ true
41
+ end
38
42
  end
39
43
  end
40
44
  end
@@ -35,6 +35,14 @@ module BELParser
35
35
  def self.description
36
36
  DESCRIPTION
37
37
  end
38
+
39
+ def self.causal?
40
+ true
41
+ end
42
+
43
+ def self.directed?
44
+ true
45
+ end
38
46
  end
39
47
  end
40
48
  end
@@ -44,6 +44,18 @@ module BELParser
44
44
  def self.description
45
45
  DESCRIPTION
46
46
  end
47
+
48
+ def self.causal?
49
+ true
50
+ end
51
+
52
+ def self.decreasing?
53
+ true
54
+ end
55
+
56
+ def self.directed?
57
+ true
58
+ end
47
59
  end
48
60
  end
49
61
  end
@@ -33,6 +33,22 @@ module BELParser
33
33
  def self.description
34
34
  DESCRIPTION
35
35
  end
36
+
37
+ def self.causal?
38
+ true
39
+ end
40
+
41
+ def self.decreasing?
42
+ true
43
+ end
44
+
45
+ def self.direct?
46
+ true
47
+ end
48
+
49
+ def self.directed?
50
+ true
51
+ end
36
52
  end
37
53
  end
38
54
  end
@@ -33,6 +33,22 @@ module BELParser
33
33
  def self.description
34
34
  DESCRIPTION
35
35
  end
36
+
37
+ def self.causal?
38
+ true
39
+ end
40
+
41
+ def self.increasing?
42
+ true
43
+ end
44
+
45
+ def self.direct?
46
+ true
47
+ end
48
+
49
+ def self.directed?
50
+ true
51
+ end
36
52
  end
37
53
  end
38
54
  end
@@ -47,6 +47,14 @@ module BELParser
47
47
  def self.description
48
48
  DESCRIPTION
49
49
  end
50
+
51
+ def self.direct?
52
+ true
53
+ end
54
+
55
+ def self.directed?
56
+ true
57
+ end
50
58
  end
51
59
  end
52
60
  end
@@ -42,6 +42,18 @@ module BELParser
42
42
  def self.description
43
43
  DESCRIPTION
44
44
  end
45
+
46
+ def self.direct?
47
+ true
48
+ end
49
+
50
+ def self.directed?
51
+ true
52
+ end
53
+
54
+ def self.listable?
55
+ true
56
+ end
45
57
  end
46
58
  end
47
59
  end
@@ -37,6 +37,10 @@ module BELParser
37
37
  def self.description
38
38
  DESCRIPTION
39
39
  end
40
+
41
+ def self.directed?
42
+ true
43
+ end
40
44
  end
41
45
  end
42
46
  end
@@ -42,6 +42,14 @@ module BELParser
42
42
  def self.description
43
43
  DESCRIPTION
44
44
  end
45
+
46
+ def self.directed?
47
+ true
48
+ end
49
+
50
+ def self.listable?
51
+ true
52
+ end
45
53
  end
46
54
  end
47
55
  end
@@ -35,6 +35,18 @@ module BELParser
35
35
  def self.description
36
36
  DESCRIPTION
37
37
  end
38
+
39
+ def self.direct?
40
+ true
41
+ end
42
+
43
+ def self.directed?
44
+ true
45
+ end
46
+
47
+ def self.injected?
48
+ true
49
+ end
38
50
  end
39
51
  end
40
52
  end
@@ -37,6 +37,22 @@ module BELParser
37
37
  def self.description
38
38
  DESCRIPTION
39
39
  end
40
+
41
+ def self.direct?
42
+ true
43
+ end
44
+
45
+ def self.directed?
46
+ true
47
+ end
48
+
49
+ def self.injected?
50
+ true
51
+ end
52
+
53
+ def self.self?
54
+ true
55
+ end
40
56
  end
41
57
  end
42
58
  end
@@ -35,6 +35,18 @@ module BELParser
35
35
  def self.description
36
36
  DESCRIPTION
37
37
  end
38
+
39
+ def self.direct?
40
+ true
41
+ end
42
+
43
+ def self.directed?
44
+ true
45
+ end
46
+
47
+ def self.injected?
48
+ true
49
+ end
38
50
  end
39
51
  end
40
52
  end
@@ -40,6 +40,18 @@ module BELParser
40
40
  def self.description
41
41
  DESCRIPTION
42
42
  end
43
+
44
+ def self.directed?
45
+ true
46
+ end
47
+
48
+ def self.injected?
49
+ true
50
+ end
51
+
52
+ def self.self?
53
+ true
54
+ end
43
55
  end
44
56
  end
45
57
  end
@@ -44,6 +44,18 @@ module BELParser
44
44
  def self.description
45
45
  DESCRIPTION
46
46
  end
47
+
48
+ def self.causal?
49
+ true
50
+ end
51
+
52
+ def self.directed?
53
+ true
54
+ end
55
+
56
+ def self.increasing?
57
+ true
58
+ end
47
59
  end
48
60
  end
49
61
  end
@@ -37,6 +37,10 @@ module BELParser
37
37
  def self.description
38
38
  DESCRIPTION
39
39
  end
40
+
41
+ def self.directed?
42
+ true
43
+ end
40
44
  end
41
45
  end
42
46
  end
@@ -35,6 +35,14 @@ module BELParser
35
35
  def self.description
36
36
  DESCRIPTION
37
37
  end
38
+
39
+ def self.correlative?
40
+ true
41
+ end
42
+
43
+ def self.decreasing?
44
+ true
45
+ end
38
46
  end
39
47
  end
40
48
  end
@@ -37,6 +37,10 @@ module BELParser
37
37
  def self.description
38
38
  DESCRIPTION
39
39
  end
40
+
41
+ def self.genomic?
42
+ true
43
+ end
40
44
  end
41
45
  end
42
46
  end
@@ -31,6 +31,14 @@ module BELParser
31
31
  def self.description
32
32
  DESCRIPTION
33
33
  end
34
+
35
+ def self.increasing?
36
+ true
37
+ end
38
+
39
+ def self.correlative?
40
+ true
41
+ end
34
42
  end
35
43
  end
36
44
  end
@@ -37,6 +37,10 @@ module BELParser
37
37
  def self.deprecated?
38
38
  true
39
39
  end
40
+
41
+ def self.directed?
42
+ true
43
+ end
40
44
  end
41
45
  end
42
46
  end
@@ -38,6 +38,14 @@ module BELParser
38
38
  def self.description
39
39
  DESCRIPTION
40
40
  end
41
+
42
+ def self.directed?
43
+ true
44
+ end
45
+
46
+ def self.increasing?
47
+ true
48
+ end
41
49
  end
42
50
  end
43
51
  end
@@ -37,6 +37,22 @@ module BELParser
37
37
  def self.description
38
38
  DESCRIPTION
39
39
  end
40
+
41
+ def self.direct?
42
+ true
43
+ end
44
+
45
+ def self.directed?
46
+ true
47
+ end
48
+
49
+ def self.injected?
50
+ true
51
+ end
52
+
53
+ def self.self?
54
+ true
55
+ end
40
56
  end
41
57
  end
42
58
  end
@@ -36,6 +36,14 @@ module BELParser
36
36
  def self.description
37
37
  DESCRIPTION
38
38
  end
39
+
40
+ def self.causal?
41
+ true
42
+ end
43
+
44
+ def self.directed?
45
+ true
46
+ end
39
47
  end
40
48
  end
41
49
  end
@@ -44,6 +44,10 @@ module BELParser
44
44
  def self.description
45
45
  DESCRIPTION
46
46
  end
47
+
48
+ def self.directed?
49
+ true
50
+ end
47
51
  end
48
52
  end
49
53
  end
@@ -34,6 +34,18 @@ module BELParser
34
34
  def self.description
35
35
  DESCRIPTION
36
36
  end
37
+
38
+ def self.direct?
39
+ true
40
+ end
41
+
42
+ def self.directed?
43
+ true
44
+ end
45
+
46
+ def self.genomic?
47
+ true
48
+ end
37
49
  end
38
50
  end
39
51
  end
@@ -35,6 +35,18 @@ module BELParser
35
35
  def self.description
36
36
  DESCRIPTION
37
37
  end
38
+
39
+ def self.direct?
40
+ true
41
+ end
42
+
43
+ def self.directed?
44
+ true
45
+ end
46
+
47
+ def self.genomic?
48
+ true
49
+ end
38
50
  end
39
51
  end
40
52
  end
@@ -38,6 +38,18 @@ module BELParser
38
38
  def self.description
39
39
  DESCRIPTION
40
40
  end
41
+
42
+ def self.directed?
43
+ true
44
+ end
45
+
46
+ def self.injected?
47
+ true
48
+ end
49
+
50
+ def self.self?
51
+ true
52
+ end
41
53
  end
42
54
  end
43
55
  end
@@ -29,6 +29,7 @@ module BELParser
29
29
  end
30
30
  @relationships = rel_classes.compact
31
31
  @indexed_relationships = index_long_short(@relationships)
32
+ assign_relationship_categories(@relationships)
32
33
 
33
34
  # Establish return types
34
35
  ret_classes = Version2_0::ReturnTypes.constants.collect do |symbol|
@@ -19,7 +19,8 @@ module BELParser
19
19
  # _ast_type_. This is equivalent to its _type_ instance variable
20
20
  # but the former is not used by the AST library itself.
21
21
  #
22
- # @see Node.ast_type @see Node.initialize
22
+ # @see Node.ast_type
23
+ # @see Node.initialize
23
24
  #
24
25
  class Node < ::AST::Node
25
26
  # AST node type
@@ -62,6 +63,9 @@ module BELParser
62
63
  # AST node.
63
64
  attr_reader :character_range
64
65
 
66
+ # Get/Set the complete property.
67
+ attr_accessor :complete
68
+
65
69
  # Get the syntax errors for this AST node.
66
70
  def syntax_errors
67
71
  (@syntax_errors ||= [])
@@ -120,7 +124,9 @@ module BELParser
120
124
 
121
125
  if @children == new_children && properties.nil?
122
126
  self
123
- else
127
+ elsif instance_of? Node
128
+ original_dup.send :initialize, @type, new_children, new_properties
129
+ else # self.is_a? Node
124
130
  original_dup.send :initialize, new_children, new_properties
125
131
  end
126
132
  end
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.8
4
+ version: 1.0.0.alpha.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anthony Bargnesi
@@ -38,6 +38,7 @@ files:
38
38
  - lib/bel_parser/language/semantics/deeply_nested_statement.rb
39
39
  - lib/bel_parser/language/semantics/function_deprecation.rb
40
40
  - lib/bel_parser/language/semantics/list_function_subject.rb
41
+ - lib/bel_parser/language/semantics/non_causal_nested_statement.rb
41
42
  - lib/bel_parser/language/semantics/relationship_deprecation.rb
42
43
  - lib/bel_parser/language/semantics/signature_mapping.rb
43
44
  - lib/bel_parser/language/semantics_ast.rb