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

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