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.
Files changed (182) hide show
  1. checksums.yaml +7 -0
  2. data/.gemspec +28 -0
  3. data/CHANGELOG.md +10 -0
  4. data/LICENSE +191 -0
  5. data/README.md +9 -0
  6. data/VERSION +1 -0
  7. data/bin/bel2_termcheck +39 -0
  8. data/lib/bel_parser.rb +17 -0
  9. data/lib/bel_parser/ast_filter.rb +27 -0
  10. data/lib/bel_parser/ast_generator.rb +86 -0
  11. data/lib/bel_parser/ast_validator.rb +40 -0
  12. data/lib/bel_parser/expression/parser.rb +42 -0
  13. data/lib/bel_parser/expression/term_semantics.rb +36 -0
  14. data/lib/bel_parser/language.rb +7 -0
  15. data/lib/bel_parser/language/function.rb +59 -0
  16. data/lib/bel_parser/language/quoting.rb +236 -0
  17. data/lib/bel_parser/language/semantic_ast.rb +604 -0
  18. data/lib/bel_parser/language/semantics/analyzer.rb +59 -0
  19. data/lib/bel_parser/language/signature.rb +39 -0
  20. data/lib/bel_parser/language/specification.rb +49 -0
  21. data/lib/bel_parser/language/syntax/expression/incomplete_node.rb +14 -0
  22. data/lib/bel_parser/language/syntax/expression/invalid_term_function.rb +22 -0
  23. data/lib/bel_parser/language/version1.rb +50 -0
  24. data/lib/bel_parser/language/version1/functions/abundance.rb +85 -0
  25. data/lib/bel_parser/language/version1/functions/biological_process.rb +85 -0
  26. data/lib/bel_parser/language/version1/functions/catalytic_activity.rb +110 -0
  27. data/lib/bel_parser/language/version1/functions/cell_secretion.rb +80 -0
  28. data/lib/bel_parser/language/version1/functions/cell_surface_expression.rb +80 -0
  29. data/lib/bel_parser/language/version1/functions/chaperone_activity.rb +110 -0
  30. data/lib/bel_parser/language/version1/functions/complex_abundance.rb +115 -0
  31. data/lib/bel_parser/language/version1/functions/composite_abundance.rb +80 -0
  32. data/lib/bel_parser/language/version1/functions/degradation.rb +80 -0
  33. data/lib/bel_parser/language/version1/functions/fusion.rb +302 -0
  34. data/lib/bel_parser/language/version1/functions/gene_abundance.rb +125 -0
  35. data/lib/bel_parser/language/version1/functions/gtp_bound_activity.rb +110 -0
  36. data/lib/bel_parser/language/version1/functions/kinase_activity.rb +110 -0
  37. data/lib/bel_parser/language/version1/functions/list.rb +115 -0
  38. data/lib/bel_parser/language/version1/functions/micro_rna_abundance.rb +85 -0
  39. data/lib/bel_parser/language/version1/functions/molecular_activity.rb +80 -0
  40. data/lib/bel_parser/language/version1/functions/pathology.rb +85 -0
  41. data/lib/bel_parser/language/version1/functions/peptidase_activity.rb +110 -0
  42. data/lib/bel_parser/language/version1/functions/phosphatase_activity.rb +110 -0
  43. data/lib/bel_parser/language/version1/functions/products.rb +80 -0
  44. data/lib/bel_parser/language/version1/functions/protein_abundance.rb +245 -0
  45. data/lib/bel_parser/language/version1/functions/protein_modification.rb +167 -0
  46. data/lib/bel_parser/language/version1/functions/reactants.rb +80 -0
  47. data/lib/bel_parser/language/version1/functions/reaction.rb +85 -0
  48. data/lib/bel_parser/language/version1/functions/ribosylation_activity.rb +110 -0
  49. data/lib/bel_parser/language/version1/functions/rna_abundance.rb +125 -0
  50. data/lib/bel_parser/language/version1/functions/substitution.rb +96 -0
  51. data/lib/bel_parser/language/version1/functions/transcriptional_activity.rb +110 -0
  52. data/lib/bel_parser/language/version1/functions/translocation.rb +100 -0
  53. data/lib/bel_parser/language/version1/functions/transport_activity.rb +110 -0
  54. data/lib/bel_parser/language/version1/functions/truncation.rb +82 -0
  55. data/lib/bel_parser/language/version1/return_types/abundance.rb +20 -0
  56. data/lib/bel_parser/language/version1/return_types/any.rb +74 -0
  57. data/lib/bel_parser/language/version1/return_types/biological_process.rb +17 -0
  58. data/lib/bel_parser/language/version1/return_types/catalytic_activity.rb +20 -0
  59. data/lib/bel_parser/language/version1/return_types/chaperone_activity.rb +20 -0
  60. data/lib/bel_parser/language/version1/return_types/complex_abundance.rb +17 -0
  61. data/lib/bel_parser/language/version1/return_types/fusion.rb +17 -0
  62. data/lib/bel_parser/language/version1/return_types/gene_abundance.rb +17 -0
  63. data/lib/bel_parser/language/version1/return_types/gtp_bound_activity.rb +20 -0
  64. data/lib/bel_parser/language/version1/return_types/kinase_activity.rb +20 -0
  65. data/lib/bel_parser/language/version1/return_types/list.rb +17 -0
  66. data/lib/bel_parser/language/version1/return_types/micro_rna_abundance.rb +17 -0
  67. data/lib/bel_parser/language/version1/return_types/molecular_activity.rb +20 -0
  68. data/lib/bel_parser/language/version1/return_types/pathology.rb +17 -0
  69. data/lib/bel_parser/language/version1/return_types/peptidase_activity.rb +20 -0
  70. data/lib/bel_parser/language/version1/return_types/phosphatase_activity.rb +20 -0
  71. data/lib/bel_parser/language/version1/return_types/products.rb +17 -0
  72. data/lib/bel_parser/language/version1/return_types/protein_abundance.rb +17 -0
  73. data/lib/bel_parser/language/version1/return_types/protein_modification.rb +17 -0
  74. data/lib/bel_parser/language/version1/return_types/reactants.rb +17 -0
  75. data/lib/bel_parser/language/version1/return_types/ribosylation_activity.rb +20 -0
  76. data/lib/bel_parser/language/version1/return_types/rna_abundance.rb +17 -0
  77. data/lib/bel_parser/language/version1/return_types/substitution.rb +17 -0
  78. data/lib/bel_parser/language/version1/return_types/transcriptional_activity.rb +20 -0
  79. data/lib/bel_parser/language/version1/return_types/transport_activity.rb +20 -0
  80. data/lib/bel_parser/language/version1/return_types/truncation.rb +17 -0
  81. data/lib/bel_parser/language/version2.rb +50 -0
  82. data/lib/bel_parser/language/version2/functions/abundance.rb +165 -0
  83. data/lib/bel_parser/language/version2/functions/activity.rb +115 -0
  84. data/lib/bel_parser/language/version2/functions/biological_process.rb +85 -0
  85. data/lib/bel_parser/language/version2/functions/cell_secretion.rb +80 -0
  86. data/lib/bel_parser/language/version2/functions/cell_surface_expression.rb +80 -0
  87. data/lib/bel_parser/language/version2/functions/complex_abundance.rb +190 -0
  88. data/lib/bel_parser/language/version2/functions/composite_abundance.rb +80 -0
  89. data/lib/bel_parser/language/version2/functions/degradation.rb +80 -0
  90. data/lib/bel_parser/language/version2/functions/fragment.rb +119 -0
  91. data/lib/bel_parser/language/version2/functions/from_location.rb +85 -0
  92. data/lib/bel_parser/language/version2/functions/fusion.rb +227 -0
  93. data/lib/bel_parser/language/version2/functions/gene_abundance.rb +195 -0
  94. data/lib/bel_parser/language/version2/functions/list.rb +115 -0
  95. data/lib/bel_parser/language/version2/functions/location.rb +85 -0
  96. data/lib/bel_parser/language/version2/functions/micro_rna_abundance.rb +165 -0
  97. data/lib/bel_parser/language/version2/functions/molecular_activity.rb +83 -0
  98. data/lib/bel_parser/language/version2/functions/pathology.rb +85 -0
  99. data/lib/bel_parser/language/version2/functions/products.rb +80 -0
  100. data/lib/bel_parser/language/version2/functions/protein_abundance.rb +285 -0
  101. data/lib/bel_parser/language/version2/functions/protein_modification.rb +167 -0
  102. data/lib/bel_parser/language/version2/functions/reactants.rb +80 -0
  103. data/lib/bel_parser/language/version2/functions/reaction.rb +85 -0
  104. data/lib/bel_parser/language/version2/functions/rna_abundance.rb +195 -0
  105. data/lib/bel_parser/language/version2/functions/to_location.rb +85 -0
  106. data/lib/bel_parser/language/version2/functions/translocation.rb +90 -0
  107. data/lib/bel_parser/language/version2/functions/variant.rb +83 -0
  108. data/lib/bel_parser/language/version2/return_types/abundance.rb +20 -0
  109. data/lib/bel_parser/language/version2/return_types/activity.rb +20 -0
  110. data/lib/bel_parser/language/version2/return_types/any.rb +74 -0
  111. data/lib/bel_parser/language/version2/return_types/biological_process.rb +17 -0
  112. data/lib/bel_parser/language/version2/return_types/complex_abundance.rb +17 -0
  113. data/lib/bel_parser/language/version2/return_types/fragment.rb +20 -0
  114. data/lib/bel_parser/language/version2/return_types/from_location.rb +20 -0
  115. data/lib/bel_parser/language/version2/return_types/fusion.rb +17 -0
  116. data/lib/bel_parser/language/version2/return_types/gene_abundance.rb +17 -0
  117. data/lib/bel_parser/language/version2/return_types/list.rb +17 -0
  118. data/lib/bel_parser/language/version2/return_types/location.rb +20 -0
  119. data/lib/bel_parser/language/version2/return_types/micro_rna_abundance.rb +17 -0
  120. data/lib/bel_parser/language/version2/return_types/molecular_activity.rb +20 -0
  121. data/lib/bel_parser/language/version2/return_types/pathology.rb +17 -0
  122. data/lib/bel_parser/language/version2/return_types/products.rb +17 -0
  123. data/lib/bel_parser/language/version2/return_types/protein_abundance.rb +17 -0
  124. data/lib/bel_parser/language/version2/return_types/protein_modification.rb +17 -0
  125. data/lib/bel_parser/language/version2/return_types/reactants.rb +17 -0
  126. data/lib/bel_parser/language/version2/return_types/rna_abundance.rb +17 -0
  127. data/lib/bel_parser/language/version2/return_types/to_location.rb +20 -0
  128. data/lib/bel_parser/language/version2/return_types/variant.rb +20 -0
  129. data/lib/bel_parser/mixin/line_continuator.rb +15 -0
  130. data/lib/bel_parser/mixin/line_mapping.rb +14 -0
  131. data/lib/bel_parser/parser.rb +54 -0
  132. data/lib/bel_parser/parsers/ast/mapped_traversal.rb +36 -0
  133. data/lib/bel_parser/parsers/ast/node.rb +705 -0
  134. data/lib/bel_parser/parsers/ast/sexp.rb +8 -0
  135. data/lib/bel_parser/parsers/ast/traversal.rb +21 -0
  136. data/lib/bel_parser/parsers/bel_script.rb +4 -0
  137. data/lib/bel_parser/parsers/bel_script/define_annotation.rb +5476 -0
  138. data/lib/bel_parser/parsers/bel_script/define_annotation.rl +141 -0
  139. data/lib/bel_parser/parsers/bel_script/define_namespace.rb +1780 -0
  140. data/lib/bel_parser/parsers/bel_script/define_namespace.rl +121 -0
  141. data/lib/bel_parser/parsers/bel_script/set.rb +4556 -0
  142. data/lib/bel_parser/parsers/bel_script/set.rl +116 -0
  143. data/lib/bel_parser/parsers/bel_script/unset.rb +706 -0
  144. data/lib/bel_parser/parsers/bel_script/unset.rl +95 -0
  145. data/lib/bel_parser/parsers/common.rb +5 -0
  146. data/lib/bel_parser/parsers/common/blank_line.rb +211 -0
  147. data/lib/bel_parser/parsers/common/blank_line.rl +81 -0
  148. data/lib/bel_parser/parsers/common/comment_line.rb +245 -0
  149. data/lib/bel_parser/parsers/common/comment_line.rl +97 -0
  150. data/lib/bel_parser/parsers/common/common.rb +7 -0
  151. data/lib/bel_parser/parsers/common/common.rl +13 -0
  152. data/lib/bel_parser/parsers/common/identifier.rb +289 -0
  153. data/lib/bel_parser/parsers/common/identifier.rl +106 -0
  154. data/lib/bel_parser/parsers/common/list.rb +2142 -0
  155. data/lib/bel_parser/parsers/common/list.rl +144 -0
  156. data/lib/bel_parser/parsers/common/string.rb +271 -0
  157. data/lib/bel_parser/parsers/common/string.rl +107 -0
  158. data/lib/bel_parser/parsers/expression.rb +7 -0
  159. data/lib/bel_parser/parsers/expression/comment.rb +239 -0
  160. data/lib/bel_parser/parsers/expression/comment.rl +97 -0
  161. data/lib/bel_parser/parsers/expression/parameter.rb +1506 -0
  162. data/lib/bel_parser/parsers/expression/parameter.rl +97 -0
  163. data/lib/bel_parser/parsers/expression/relationship.rb +254 -0
  164. data/lib/bel_parser/parsers/expression/relationship.rl +98 -0
  165. data/lib/bel_parser/parsers/expression/statement_nested.rb +17802 -0
  166. data/lib/bel_parser/parsers/expression/statement_nested.rl +141 -0
  167. data/lib/bel_parser/parsers/expression/statement_observed_term.rb +7291 -0
  168. data/lib/bel_parser/parsers/expression/statement_observed_term.rl +92 -0
  169. data/lib/bel_parser/parsers/expression/statement_simple.rb +10475 -0
  170. data/lib/bel_parser/parsers/expression/statement_simple.rl +112 -0
  171. data/lib/bel_parser/parsers/expression/term.rb +3989 -0
  172. data/lib/bel_parser/parsers/expression/term.rl +157 -0
  173. data/lib/bel_parser/parsers/line_parser.rb +92 -0
  174. data/lib/bel_parser/parsers/mixin/buffer.rb +10 -0
  175. data/lib/bel_parser/parsers/nonblocking_io_wrapper.rb +50 -0
  176. data/lib/bel_parser/script/parser.rb +49 -0
  177. data/lib/bel_parser/vendor/ast.rb +17 -0
  178. data/lib/bel_parser/vendor/ast/node.rb +254 -0
  179. data/lib/bel_parser/vendor/ast/processor.rb +12 -0
  180. data/lib/bel_parser/vendor/ast/processor/mixin.rb +282 -0
  181. data/lib/bel_parser/vendor/ast/sexp.rb +30 -0
  182. 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 Version1
9
+ module Functions
10
+ # Pathology: Denotes a disease or pathology process
11
+ class Pathology
12
+ extend Function
13
+
14
+ SHORT = :path
15
+ LONG = :pathology
16
+ RETURN_TYPE = BELParser::Language::Version1::ReturnTypes::Pathology
17
+ DESCRIPTION = 'Denotes a disease or pathology process'.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 PathologySignature
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(Pathology))),
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(:Pathology))))))
61
+ end
62
+ private_constant :AST
63
+
64
+ STRING_FORM = 'pathology(E:pathology)pathology'.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,110 @@
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 Version1
9
+ module Functions
10
+ # PeptidaseActivity: Denotes the frequency or abundance of events in which a member acts to cleave a protein
11
+ class PeptidaseActivity
12
+ extend Function
13
+
14
+ SHORT = :pep
15
+ LONG = :peptidaseActivity
16
+ RETURN_TYPE = BELParser::Language::Version1::ReturnTypes::PeptidaseActivity
17
+ DESCRIPTION = 'Denotes the frequency or abundance of events in which a member acts to cleave a protein'.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 PeptidaseActivityOfComplexAbundanceSignature
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(PeptidaseActivity))),
51
+ argument(
52
+ term(
53
+ function(
54
+ identifier(
55
+ return_type_of(BELParser::Language::Version1::ReturnTypes::ComplexAbundance))))))
56
+ end
57
+ private_constant :AST
58
+
59
+ STRING_FORM = 'peptidaseActivity(F:complexAbundance)peptidaseActivity'.freeze
60
+ private_constant :STRING_FORM
61
+
62
+ def self.semantic_ast
63
+ AST
64
+ end
65
+
66
+ def self.string_form
67
+ STRING_FORM
68
+ end
69
+ end
70
+
71
+ class PeptidaseActivityOfProteinAbundanceSignature
72
+ extend BELParser::Language::Signature
73
+
74
+ private_class_method :new
75
+
76
+ AST = BELParser::Language::Semantics::Builder.build do
77
+ term(
78
+ function(
79
+ identifier(
80
+ function_of(PeptidaseActivity))),
81
+ argument(
82
+ term(
83
+ function(
84
+ identifier(
85
+ return_type_of(BELParser::Language::Version1::ReturnTypes::ProteinAbundance))))))
86
+ end
87
+ private_constant :AST
88
+
89
+ STRING_FORM = 'peptidaseActivity(F:proteinAbundance)peptidaseActivity'.freeze
90
+ private_constant :STRING_FORM
91
+
92
+ def self.semantic_ast
93
+ AST
94
+ end
95
+
96
+ def self.string_form
97
+ STRING_FORM
98
+ end
99
+ end
100
+
101
+ end
102
+
103
+ SIGNATURES = Signatures.constants.map do |const|
104
+ Signatures.const_get(const)
105
+ end.freeze
106
+ end
107
+ end
108
+ end
109
+ end
110
+ end
@@ -0,0 +1,110 @@
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 Version1
9
+ module Functions
10
+ # PhosphataseActivity: Denotes the frequency or abundance of events in which a member acts as a phosphatase
11
+ class PhosphataseActivity
12
+ extend Function
13
+
14
+ SHORT = :phos
15
+ LONG = :phosphataseActivity
16
+ RETURN_TYPE = BELParser::Language::Version1::ReturnTypes::PhosphataseActivity
17
+ DESCRIPTION = 'Denotes the frequency or abundance of events in which a member acts as a phosphatase'.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 PhosphataseActivityOfComplexAbundanceSignature
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(PhosphataseActivity))),
51
+ argument(
52
+ term(
53
+ function(
54
+ identifier(
55
+ return_type_of(BELParser::Language::Version1::ReturnTypes::ComplexAbundance))))))
56
+ end
57
+ private_constant :AST
58
+
59
+ STRING_FORM = 'phosphataseActivity(F:complexAbundance)phosphataseActivity'.freeze
60
+ private_constant :STRING_FORM
61
+
62
+ def self.semantic_ast
63
+ AST
64
+ end
65
+
66
+ def self.string_form
67
+ STRING_FORM
68
+ end
69
+ end
70
+
71
+ class PhosphataseActivityOfProteinAbundanceSignature
72
+ extend BELParser::Language::Signature
73
+
74
+ private_class_method :new
75
+
76
+ AST = BELParser::Language::Semantics::Builder.build do
77
+ term(
78
+ function(
79
+ identifier(
80
+ function_of(PhosphataseActivity))),
81
+ argument(
82
+ term(
83
+ function(
84
+ identifier(
85
+ return_type_of(BELParser::Language::Version1::ReturnTypes::ProteinAbundance))))))
86
+ end
87
+ private_constant :AST
88
+
89
+ STRING_FORM = 'phosphataseActivity(F:proteinAbundance)phosphataseActivity'.freeze
90
+ private_constant :STRING_FORM
91
+
92
+ def self.semantic_ast
93
+ AST
94
+ end
95
+
96
+ def self.string_form
97
+ STRING_FORM
98
+ end
99
+ end
100
+
101
+ end
102
+
103
+ SIGNATURES = Signatures.constants.map do |const|
104
+ Signatures.const_get(const)
105
+ end.freeze
106
+ end
107
+ end
108
+ end
109
+ end
110
+ end
@@ -0,0 +1,80 @@
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 Version1
9
+ module Functions
10
+ # Products: Denotes the products of a reaction
11
+ class Products
12
+ extend Function
13
+
14
+ SHORT = :products
15
+ LONG = :products
16
+ RETURN_TYPE = BELParser::Language::Version1::ReturnTypes::Products
17
+ DESCRIPTION = 'Denotes the products of a reaction'.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 ProductsSignature
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(Products))),
51
+ variadic_arguments(
52
+ term(
53
+ function(
54
+ identifier(
55
+ return_type_of(BELParser::Language::Version1::ReturnTypes::Abundance))))))
56
+ end
57
+ private_constant :AST
58
+
59
+ STRING_FORM = 'products(F:abundance...)products'.freeze
60
+ private_constant :STRING_FORM
61
+
62
+ def self.semantic_ast
63
+ AST
64
+ end
65
+
66
+ def self.string_form
67
+ STRING_FORM
68
+ end
69
+ end
70
+
71
+ end
72
+
73
+ SIGNATURES = Signatures.constants.map do |const|
74
+ Signatures.const_get(const)
75
+ end.freeze
76
+ end
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,245 @@
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 Version1
9
+ module Functions
10
+ # ProteinAbundance: Denotes the abundance of a protein
11
+ class ProteinAbundance
12
+ extend Function
13
+
14
+ SHORT = :p
15
+ LONG = :proteinAbundance
16
+ RETURN_TYPE = BELParser::Language::Version1::ReturnTypes::ProteinAbundance
17
+ DESCRIPTION = 'Denotes the abundance of a protein'.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 ProteinAbundanceWithFusionSignature
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(ProteinAbundance))),
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(:ProteinAbundance))))),
61
+ argument(
62
+ term(
63
+ function(
64
+ identifier(
65
+ return_type_of(BELParser::Language::Version1::ReturnTypes::Fusion))))))
66
+ end
67
+ private_constant :AST
68
+
69
+ STRING_FORM = 'proteinAbundance(E:proteinAbundance,F:fusion)proteinAbundance'.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
+ class ProteinAbundanceWithProteinModificationSignature
82
+ extend BELParser::Language::Signature
83
+
84
+ private_class_method :new
85
+
86
+ AST = BELParser::Language::Semantics::Builder.build do
87
+ term(
88
+ function(
89
+ identifier(
90
+ function_of(ProteinAbundance))),
91
+ argument(
92
+ parameter(
93
+ prefix(
94
+ identifier(
95
+ has_namespace,
96
+ namespace_of(:*))),
97
+ value(
98
+ value_type(
99
+ has_encoding,
100
+ encoding_of(:ProteinAbundance))))),
101
+ argument(
102
+ term(
103
+ function(
104
+ identifier(
105
+ return_type_of(BELParser::Language::Version1::ReturnTypes::ProteinModification))))))
106
+ end
107
+ private_constant :AST
108
+
109
+ STRING_FORM = 'proteinAbundance(E:proteinAbundance,F:proteinModification)proteinAbundance'.freeze
110
+ private_constant :STRING_FORM
111
+
112
+ def self.semantic_ast
113
+ AST
114
+ end
115
+
116
+ def self.string_form
117
+ STRING_FORM
118
+ end
119
+ end
120
+
121
+ class ProteinAbundanceWithSubstitutionSignature
122
+ extend BELParser::Language::Signature
123
+
124
+ private_class_method :new
125
+
126
+ AST = BELParser::Language::Semantics::Builder.build do
127
+ term(
128
+ function(
129
+ identifier(
130
+ function_of(ProteinAbundance))),
131
+ argument(
132
+ parameter(
133
+ prefix(
134
+ identifier(
135
+ has_namespace,
136
+ namespace_of(:*))),
137
+ value(
138
+ value_type(
139
+ has_encoding,
140
+ encoding_of(:ProteinAbundance))))),
141
+ argument(
142
+ term(
143
+ function(
144
+ identifier(
145
+ return_type_of(BELParser::Language::Version1::ReturnTypes::Substitution))))))
146
+ end
147
+ private_constant :AST
148
+
149
+ STRING_FORM = 'proteinAbundance(E:proteinAbundance,F:substitution)proteinAbundance'.freeze
150
+ private_constant :STRING_FORM
151
+
152
+ def self.semantic_ast
153
+ AST
154
+ end
155
+
156
+ def self.string_form
157
+ STRING_FORM
158
+ end
159
+ end
160
+
161
+ class ProteinAbundanceWithTruncationSignature
162
+ extend BELParser::Language::Signature
163
+
164
+ private_class_method :new
165
+
166
+ AST = BELParser::Language::Semantics::Builder.build do
167
+ term(
168
+ function(
169
+ identifier(
170
+ function_of(ProteinAbundance))),
171
+ argument(
172
+ parameter(
173
+ prefix(
174
+ identifier(
175
+ has_namespace,
176
+ namespace_of(:*))),
177
+ value(
178
+ value_type(
179
+ has_encoding,
180
+ encoding_of(:ProteinAbundance))))),
181
+ argument(
182
+ term(
183
+ function(
184
+ identifier(
185
+ return_type_of(BELParser::Language::Version1::ReturnTypes::Truncation))))))
186
+ end
187
+ private_constant :AST
188
+
189
+ STRING_FORM = 'proteinAbundance(E:proteinAbundance,F:truncation)proteinAbundance'.freeze
190
+ private_constant :STRING_FORM
191
+
192
+ def self.semantic_ast
193
+ AST
194
+ end
195
+
196
+ def self.string_form
197
+ STRING_FORM
198
+ end
199
+ end
200
+
201
+ class ProteinAbundanceSignature
202
+ extend BELParser::Language::Signature
203
+
204
+ private_class_method :new
205
+
206
+ AST = BELParser::Language::Semantics::Builder.build do
207
+ term(
208
+ function(
209
+ identifier(
210
+ function_of(ProteinAbundance))),
211
+ argument(
212
+ parameter(
213
+ prefix(
214
+ identifier(
215
+ has_namespace,
216
+ namespace_of(:*))),
217
+ value(
218
+ value_type(
219
+ has_encoding,
220
+ encoding_of(:ProteinAbundance))))))
221
+ end
222
+ private_constant :AST
223
+
224
+ STRING_FORM = 'proteinAbundance(E:proteinAbundance)proteinAbundance'.freeze
225
+ private_constant :STRING_FORM
226
+
227
+ def self.semantic_ast
228
+ AST
229
+ end
230
+
231
+ def self.string_form
232
+ STRING_FORM
233
+ end
234
+ end
235
+
236
+ end
237
+
238
+ SIGNATURES = Signatures.constants.map do |const|
239
+ Signatures.const_get(const)
240
+ end.freeze
241
+ end
242
+ end
243
+ end
244
+ end
245
+ end