bel_parser 1.0.0.alpha.27-java

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 (332) hide show
  1. checksums.yaml +7 -0
  2. data/.gemspec-java +32 -0
  3. data/CHANGELOG.md +10 -0
  4. data/LICENSE +191 -0
  5. data/README.md +20 -0
  6. data/VERSION +1 -0
  7. data/bin/bel2_validator +62 -0
  8. data/bin/bel_script_reader +132 -0
  9. data/lib/bel/translator/plugins/bel_script.rb +38 -0
  10. data/lib/bel/translator/plugins/bel_script/bel_citation_serialization.rb +125 -0
  11. data/lib/bel/translator/plugins/bel_script/bel_discrete_serialization.rb +109 -0
  12. data/lib/bel/translator/plugins/bel_script/bel_top_down_serialization.rb +100 -0
  13. data/lib/bel/translator/plugins/bel_script/nanopub_serialization.rb +79 -0
  14. data/lib/bel/translator/plugins/bel_script/reader.rb +39 -0
  15. data/lib/bel/translator/plugins/bel_script/translator.rb +37 -0
  16. data/lib/bel/translator/plugins/bel_script/writer.rb +180 -0
  17. data/lib/bel_parser.rb +23 -0
  18. data/lib/bel_parser/ast_filter.rb +44 -0
  19. data/lib/bel_parser/ast_generator.rb +83 -0
  20. data/lib/bel_parser/expression.rb +3 -0
  21. data/lib/bel_parser/expression/filter.rb +31 -0
  22. data/lib/bel_parser/expression/parser.rb +72 -0
  23. data/lib/bel_parser/expression/validator.rb +79 -0
  24. data/lib/bel_parser/language.rb +114 -0
  25. data/lib/bel_parser/language/amino_acid.rb +68 -0
  26. data/lib/bel_parser/language/apply_namespace_encoding.rb +98 -0
  27. data/lib/bel_parser/language/base_specification.rb +82 -0
  28. data/lib/bel_parser/language/covalent_protein_modification.rb +56 -0
  29. data/lib/bel_parser/language/expression_validator.rb +68 -0
  30. data/lib/bel_parser/language/function.rb +67 -0
  31. data/lib/bel_parser/language/relationship.rb +102 -0
  32. data/lib/bel_parser/language/semantics.rb +40 -0
  33. data/lib/bel_parser/language/semantics/deeply_nested_statement.rb +65 -0
  34. data/lib/bel_parser/language/semantics/function_deprecation.rb +43 -0
  35. data/lib/bel_parser/language/semantics/list_function_subject.rb +45 -0
  36. data/lib/bel_parser/language/semantics/multiple_subject_object.rb +55 -0
  37. data/lib/bel_parser/language/semantics/non_causal_nested_statement.rb +50 -0
  38. data/lib/bel_parser/language/semantics/non_object_list.rb +56 -0
  39. data/lib/bel_parser/language/semantics/relationship_deprecation.rb +44 -0
  40. data/lib/bel_parser/language/semantics/relationship_not_listable.rb +60 -0
  41. data/lib/bel_parser/language/semantics/signature_mapping.rb +83 -0
  42. data/lib/bel_parser/language/semantics_ast.rb +784 -0
  43. data/lib/bel_parser/language/semantics_ast_warnings.rb +180 -0
  44. data/lib/bel_parser/language/semantics_function.rb +16 -0
  45. data/lib/bel_parser/language/semantics_match.rb +28 -0
  46. data/lib/bel_parser/language/semantics_result.rb +33 -0
  47. data/lib/bel_parser/language/semantics_type_warning.rb +22 -0
  48. data/lib/bel_parser/language/semantics_warning.rb +27 -0
  49. data/lib/bel_parser/language/signature.rb +39 -0
  50. data/lib/bel_parser/language/specification.rb +118 -0
  51. data/lib/bel_parser/language/syntax.rb +38 -0
  52. data/lib/bel_parser/language/syntax/invalid_function.rb +39 -0
  53. data/lib/bel_parser/language/syntax/invalid_relationship.rb +42 -0
  54. data/lib/bel_parser/language/syntax/undefined_namespace.rb +49 -0
  55. data/lib/bel_parser/language/syntax/undefined_namespace_value.rb +44 -0
  56. data/lib/bel_parser/language/syntax_error.rb +32 -0
  57. data/lib/bel_parser/language/syntax_function.rb +16 -0
  58. data/lib/bel_parser/language/syntax_result.rb +32 -0
  59. data/lib/bel_parser/language/syntax_warning.rb +27 -0
  60. data/lib/bel_parser/language/version1_0.rb +20 -0
  61. data/lib/bel_parser/language/version1_0/functions/abundance.rb +83 -0
  62. data/lib/bel_parser/language/version1_0/functions/biological_process.rb +83 -0
  63. data/lib/bel_parser/language/version1_0/functions/catalytic_activity.rb +114 -0
  64. data/lib/bel_parser/language/version1_0/functions/cell_secretion.rb +83 -0
  65. data/lib/bel_parser/language/version1_0/functions/cell_surface_expression.rb +83 -0
  66. data/lib/bel_parser/language/version1_0/functions/chaperone_activity.rb +114 -0
  67. data/lib/bel_parser/language/version1_0/functions/complex_abundance.rb +115 -0
  68. data/lib/bel_parser/language/version1_0/functions/composite_abundance.rb +81 -0
  69. data/lib/bel_parser/language/version1_0/functions/degradation.rb +83 -0
  70. data/lib/bel_parser/language/version1_0/functions/fusion.rb +287 -0
  71. data/lib/bel_parser/language/version1_0/functions/gene_abundance.rb +122 -0
  72. data/lib/bel_parser/language/version1_0/functions/gtp_bound_activity.rb +113 -0
  73. data/lib/bel_parser/language/version1_0/functions/kinase_activity.rb +114 -0
  74. data/lib/bel_parser/language/version1_0/functions/list.rb +114 -0
  75. data/lib/bel_parser/language/version1_0/functions/micro_rna_abundance.rb +85 -0
  76. data/lib/bel_parser/language/version1_0/functions/molecular_activity.rb +82 -0
  77. data/lib/bel_parser/language/version1_0/functions/pathology.rb +83 -0
  78. data/lib/bel_parser/language/version1_0/functions/peptidase_activity.rb +112 -0
  79. data/lib/bel_parser/language/version1_0/functions/phosphatase_activity.rb +112 -0
  80. data/lib/bel_parser/language/version1_0/functions/products.rb +79 -0
  81. data/lib/bel_parser/language/version1_0/functions/protein_abundance.rb +234 -0
  82. data/lib/bel_parser/language/version1_0/functions/protein_modification.rb +179 -0
  83. data/lib/bel_parser/language/version1_0/functions/reactants.rb +79 -0
  84. data/lib/bel_parser/language/version1_0/functions/reaction.rb +86 -0
  85. data/lib/bel_parser/language/version1_0/functions/ribosylation_activity.rb +114 -0
  86. data/lib/bel_parser/language/version1_0/functions/rna_abundance.rb +122 -0
  87. data/lib/bel_parser/language/version1_0/functions/substitution.rb +93 -0
  88. data/lib/bel_parser/language/version1_0/functions/transcriptional_activity.rb +114 -0
  89. data/lib/bel_parser/language/version1_0/functions/translocation.rb +98 -0
  90. data/lib/bel_parser/language/version1_0/functions/transport_activity.rb +115 -0
  91. data/lib/bel_parser/language/version1_0/functions/truncation.rb +81 -0
  92. data/lib/bel_parser/language/version1_0/relationships/acts_in.rb +61 -0
  93. data/lib/bel_parser/language/version1_0/relationships/analogous.rb +41 -0
  94. data/lib/bel_parser/language/version1_0/relationships/association.rb +42 -0
  95. data/lib/bel_parser/language/version1_0/relationships/biomarker_for.rb +42 -0
  96. data/lib/bel_parser/language/version1_0/relationships/causes_no_change.rb +50 -0
  97. data/lib/bel_parser/language/version1_0/relationships/decreases.rb +63 -0
  98. data/lib/bel_parser/language/version1_0/relationships/directly_decreases.rb +56 -0
  99. data/lib/bel_parser/language/version1_0/relationships/directly_increases.rb +56 -0
  100. data/lib/bel_parser/language/version1_0/relationships/has_component.rb +62 -0
  101. data/lib/bel_parser/language/version1_0/relationships/has_components.rb +61 -0
  102. data/lib/bel_parser/language/version1_0/relationships/has_member.rb +48 -0
  103. data/lib/bel_parser/language/version1_0/relationships/has_members.rb +57 -0
  104. data/lib/bel_parser/language/version1_0/relationships/has_modification.rb +54 -0
  105. data/lib/bel_parser/language/version1_0/relationships/has_product.rb +60 -0
  106. data/lib/bel_parser/language/version1_0/relationships/has_variant.rb +54 -0
  107. data/lib/bel_parser/language/version1_0/relationships/includes.rb +59 -0
  108. data/lib/bel_parser/language/version1_0/relationships/increases.rb +63 -0
  109. data/lib/bel_parser/language/version1_0/relationships/is_a.rb +48 -0
  110. data/lib/bel_parser/language/version1_0/relationships/negative_correlation.rb +50 -0
  111. data/lib/bel_parser/language/version1_0/relationships/orthologous.rb +48 -0
  112. data/lib/bel_parser/language/version1_0/relationships/positive_correlation.rb +46 -0
  113. data/lib/bel_parser/language/version1_0/relationships/prognostic_biomarker_for.rb +44 -0
  114. data/lib/bel_parser/language/version1_0/relationships/rate_limiting_step_of.rb +53 -0
  115. data/lib/bel_parser/language/version1_0/relationships/reactant_in.rb +60 -0
  116. data/lib/bel_parser/language/version1_0/relationships/sub_process_of.rb +55 -0
  117. data/lib/bel_parser/language/version1_0/relationships/transcribed_to.rb +53 -0
  118. data/lib/bel_parser/language/version1_0/relationships/translated_to.rb +54 -0
  119. data/lib/bel_parser/language/version1_0/relationships/translocates.rb +57 -0
  120. data/lib/bel_parser/language/version1_0/return_types/abundance.rb +20 -0
  121. data/lib/bel_parser/language/version1_0/return_types/any.rb +74 -0
  122. data/lib/bel_parser/language/version1_0/return_types/biological_process.rb +17 -0
  123. data/lib/bel_parser/language/version1_0/return_types/catalytic_activity.rb +20 -0
  124. data/lib/bel_parser/language/version1_0/return_types/chaperone_activity.rb +20 -0
  125. data/lib/bel_parser/language/version1_0/return_types/complex_abundance.rb +17 -0
  126. data/lib/bel_parser/language/version1_0/return_types/fusion.rb +17 -0
  127. data/lib/bel_parser/language/version1_0/return_types/gene_abundance.rb +17 -0
  128. data/lib/bel_parser/language/version1_0/return_types/gtp_bound_activity.rb +20 -0
  129. data/lib/bel_parser/language/version1_0/return_types/kinase_activity.rb +20 -0
  130. data/lib/bel_parser/language/version1_0/return_types/list.rb +17 -0
  131. data/lib/bel_parser/language/version1_0/return_types/micro_rna_abundance.rb +17 -0
  132. data/lib/bel_parser/language/version1_0/return_types/molecular_activity.rb +20 -0
  133. data/lib/bel_parser/language/version1_0/return_types/pathology.rb +17 -0
  134. data/lib/bel_parser/language/version1_0/return_types/peptidase_activity.rb +20 -0
  135. data/lib/bel_parser/language/version1_0/return_types/phosphatase_activity.rb +20 -0
  136. data/lib/bel_parser/language/version1_0/return_types/products.rb +17 -0
  137. data/lib/bel_parser/language/version1_0/return_types/protein_abundance.rb +17 -0
  138. data/lib/bel_parser/language/version1_0/return_types/protein_modification.rb +17 -0
  139. data/lib/bel_parser/language/version1_0/return_types/reactants.rb +17 -0
  140. data/lib/bel_parser/language/version1_0/return_types/ribosylation_activity.rb +20 -0
  141. data/lib/bel_parser/language/version1_0/return_types/rna_abundance.rb +17 -0
  142. data/lib/bel_parser/language/version1_0/return_types/substitution.rb +17 -0
  143. data/lib/bel_parser/language/version1_0/return_types/transcriptional_activity.rb +20 -0
  144. data/lib/bel_parser/language/version1_0/return_types/transport_activity.rb +20 -0
  145. data/lib/bel_parser/language/version1_0/return_types/truncation.rb +17 -0
  146. data/lib/bel_parser/language/version1_0/value_encodings/abundance.rb +21 -0
  147. data/lib/bel_parser/language/version1_0/value_encodings/any.rb +74 -0
  148. data/lib/bel_parser/language/version1_0/value_encodings/biological_process.rb +21 -0
  149. data/lib/bel_parser/language/version1_0/value_encodings/complex_abundance.rb +21 -0
  150. data/lib/bel_parser/language/version1_0/value_encodings/gene_abundance.rb +21 -0
  151. data/lib/bel_parser/language/version1_0/value_encodings/micro_rna_abundance.rb +21 -0
  152. data/lib/bel_parser/language/version1_0/value_encodings/pathology.rb +21 -0
  153. data/lib/bel_parser/language/version1_0/value_encodings/protein_abundance.rb +21 -0
  154. data/lib/bel_parser/language/version1_0/value_encodings/rna_abundance.rb +21 -0
  155. data/lib/bel_parser/language/version2_0.rb +20 -0
  156. data/lib/bel_parser/language/version2_0/functions/abundance.rb +161 -0
  157. data/lib/bel_parser/language/version2_0/functions/activity.rb +118 -0
  158. data/lib/bel_parser/language/version2_0/functions/biological_process.rb +84 -0
  159. data/lib/bel_parser/language/version2_0/functions/cell_secretion.rb +83 -0
  160. data/lib/bel_parser/language/version2_0/functions/cell_surface_expression.rb +83 -0
  161. data/lib/bel_parser/language/version2_0/functions/complex_abundance.rb +190 -0
  162. data/lib/bel_parser/language/version2_0/functions/composite_abundance.rb +81 -0
  163. data/lib/bel_parser/language/version2_0/functions/degradation.rb +83 -0
  164. data/lib/bel_parser/language/version2_0/functions/fragment.rb +116 -0
  165. data/lib/bel_parser/language/version2_0/functions/from_location.rb +85 -0
  166. data/lib/bel_parser/language/version2_0/functions/fusion.rb +203 -0
  167. data/lib/bel_parser/language/version2_0/functions/gene_abundance.rb +192 -0
  168. data/lib/bel_parser/language/version2_0/functions/list.rb +114 -0
  169. data/lib/bel_parser/language/version2_0/functions/location.rb +83 -0
  170. data/lib/bel_parser/language/version2_0/functions/micro_rna_abundance.rb +163 -0
  171. data/lib/bel_parser/language/version2_0/functions/molecular_activity.rb +86 -0
  172. data/lib/bel_parser/language/version2_0/functions/pathology.rb +83 -0
  173. data/lib/bel_parser/language/version2_0/functions/products.rb +79 -0
  174. data/lib/bel_parser/language/version2_0/functions/protein_abundance.rb +270 -0
  175. data/lib/bel_parser/language/version2_0/functions/protein_modification.rb +172 -0
  176. data/lib/bel_parser/language/version2_0/functions/reactants.rb +79 -0
  177. data/lib/bel_parser/language/version2_0/functions/reaction.rb +86 -0
  178. data/lib/bel_parser/language/version2_0/functions/rna_abundance.rb +192 -0
  179. data/lib/bel_parser/language/version2_0/functions/to_location.rb +84 -0
  180. data/lib/bel_parser/language/version2_0/functions/translocation.rb +91 -0
  181. data/lib/bel_parser/language/version2_0/functions/variant.rb +80 -0
  182. data/lib/bel_parser/language/version2_0/relationships/acts_in.rb +61 -0
  183. data/lib/bel_parser/language/version2_0/relationships/analogous.rb +45 -0
  184. data/lib/bel_parser/language/version2_0/relationships/association.rb +42 -0
  185. data/lib/bel_parser/language/version2_0/relationships/biomarker_for.rb +46 -0
  186. data/lib/bel_parser/language/version2_0/relationships/causes_no_change.rb +50 -0
  187. data/lib/bel_parser/language/version2_0/relationships/decreases.rb +63 -0
  188. data/lib/bel_parser/language/version2_0/relationships/directly_decreases.rb +56 -0
  189. data/lib/bel_parser/language/version2_0/relationships/directly_increases.rb +56 -0
  190. data/lib/bel_parser/language/version2_0/relationships/has_component.rb +62 -0
  191. data/lib/bel_parser/language/version2_0/relationships/has_components.rb +61 -0
  192. data/lib/bel_parser/language/version2_0/relationships/has_member.rb +48 -0
  193. data/lib/bel_parser/language/version2_0/relationships/has_members.rb +57 -0
  194. data/lib/bel_parser/language/version2_0/relationships/has_modification.rb +54 -0
  195. data/lib/bel_parser/language/version2_0/relationships/has_product.rb +60 -0
  196. data/lib/bel_parser/language/version2_0/relationships/has_variant.rb +54 -0
  197. data/lib/bel_parser/language/version2_0/relationships/includes.rb +59 -0
  198. data/lib/bel_parser/language/version2_0/relationships/increases.rb +63 -0
  199. data/lib/bel_parser/language/version2_0/relationships/is_a.rb +48 -0
  200. data/lib/bel_parser/language/version2_0/relationships/negative_correlation.rb +50 -0
  201. data/lib/bel_parser/language/version2_0/relationships/orthologous.rb +48 -0
  202. data/lib/bel_parser/language/version2_0/relationships/positive_correlation.rb +46 -0
  203. data/lib/bel_parser/language/version2_0/relationships/prognostic_biomarker_for.rb +48 -0
  204. data/lib/bel_parser/language/version2_0/relationships/rate_limiting_step_of.rb +53 -0
  205. data/lib/bel_parser/language/version2_0/relationships/reactant_in.rb +60 -0
  206. data/lib/bel_parser/language/version2_0/relationships/regulates.rb +51 -0
  207. data/lib/bel_parser/language/version2_0/relationships/sub_process_of.rb +55 -0
  208. data/lib/bel_parser/language/version2_0/relationships/transcribed_to.rb +53 -0
  209. data/lib/bel_parser/language/version2_0/relationships/translated_to.rb +54 -0
  210. data/lib/bel_parser/language/version2_0/relationships/translocates.rb +57 -0
  211. data/lib/bel_parser/language/version2_0/return_types/abundance.rb +20 -0
  212. data/lib/bel_parser/language/version2_0/return_types/activity.rb +20 -0
  213. data/lib/bel_parser/language/version2_0/return_types/any.rb +74 -0
  214. data/lib/bel_parser/language/version2_0/return_types/biological_process.rb +17 -0
  215. data/lib/bel_parser/language/version2_0/return_types/complex_abundance.rb +17 -0
  216. data/lib/bel_parser/language/version2_0/return_types/fragment.rb +20 -0
  217. data/lib/bel_parser/language/version2_0/return_types/from_location.rb +20 -0
  218. data/lib/bel_parser/language/version2_0/return_types/fusion.rb +17 -0
  219. data/lib/bel_parser/language/version2_0/return_types/gene_abundance.rb +17 -0
  220. data/lib/bel_parser/language/version2_0/return_types/list.rb +17 -0
  221. data/lib/bel_parser/language/version2_0/return_types/location.rb +20 -0
  222. data/lib/bel_parser/language/version2_0/return_types/micro_rna_abundance.rb +17 -0
  223. data/lib/bel_parser/language/version2_0/return_types/molecular_activity.rb +20 -0
  224. data/lib/bel_parser/language/version2_0/return_types/pathology.rb +17 -0
  225. data/lib/bel_parser/language/version2_0/return_types/products.rb +17 -0
  226. data/lib/bel_parser/language/version2_0/return_types/protein_abundance.rb +17 -0
  227. data/lib/bel_parser/language/version2_0/return_types/protein_modification.rb +17 -0
  228. data/lib/bel_parser/language/version2_0/return_types/reactants.rb +17 -0
  229. data/lib/bel_parser/language/version2_0/return_types/rna_abundance.rb +17 -0
  230. data/lib/bel_parser/language/version2_0/return_types/to_location.rb +20 -0
  231. data/lib/bel_parser/language/version2_0/return_types/variant.rb +20 -0
  232. data/lib/bel_parser/language/version2_0/value_encodings/abundance.rb +21 -0
  233. data/lib/bel_parser/language/version2_0/value_encodings/activity.rb +21 -0
  234. data/lib/bel_parser/language/version2_0/value_encodings/any.rb +74 -0
  235. data/lib/bel_parser/language/version2_0/value_encodings/biological_process.rb +21 -0
  236. data/lib/bel_parser/language/version2_0/value_encodings/complex_abundance.rb +21 -0
  237. data/lib/bel_parser/language/version2_0/value_encodings/gene_abundance.rb +21 -0
  238. data/lib/bel_parser/language/version2_0/value_encodings/location.rb +21 -0
  239. data/lib/bel_parser/language/version2_0/value_encodings/micro_rna_abundance.rb +21 -0
  240. data/lib/bel_parser/language/version2_0/value_encodings/pathology.rb +21 -0
  241. data/lib/bel_parser/language/version2_0/value_encodings/protein_abundance.rb +21 -0
  242. data/lib/bel_parser/language/version2_0/value_encodings/protein_modification.rb +21 -0
  243. data/lib/bel_parser/language/version2_0/value_encodings/rna_abundance.rb +21 -0
  244. data/lib/bel_parser/mixin/line_continuator.rb +15 -0
  245. data/lib/bel_parser/mixin/line_mapping.rb +14 -0
  246. data/lib/bel_parser/parsers/ast/node.rb +987 -0
  247. data/lib/bel_parser/parsers/ast/sexp.rb +8 -0
  248. data/lib/bel_parser/parsers/bel_script.rb +5 -0
  249. data/lib/bel_parser/parsers/bel_script/define_annotation.rb +5920 -0
  250. data/lib/bel_parser/parsers/bel_script/define_annotation.rl +141 -0
  251. data/lib/bel_parser/parsers/bel_script/define_namespace.rb +1780 -0
  252. data/lib/bel_parser/parsers/bel_script/define_namespace.rl +121 -0
  253. data/lib/bel_parser/parsers/bel_script/set.rb +5008 -0
  254. data/lib/bel_parser/parsers/bel_script/set.rl +116 -0
  255. data/lib/bel_parser/parsers/bel_script/set_document.rb +7722 -0
  256. data/lib/bel_parser/parsers/bel_script/set_document.rl +97 -0
  257. data/lib/bel_parser/parsers/bel_script/unset.rb +706 -0
  258. data/lib/bel_parser/parsers/bel_script/unset.rl +95 -0
  259. data/lib/bel_parser/parsers/common.rb +5 -0
  260. data/lib/bel_parser/parsers/common/blank_line.rb +211 -0
  261. data/lib/bel_parser/parsers/common/blank_line.rl +81 -0
  262. data/lib/bel_parser/parsers/common/comment_line.rb +245 -0
  263. data/lib/bel_parser/parsers/common/comment_line.rl +97 -0
  264. data/lib/bel_parser/parsers/common/common.rb +7 -0
  265. data/lib/bel_parser/parsers/common/common.rl +13 -0
  266. data/lib/bel_parser/parsers/common/identifier.rb +289 -0
  267. data/lib/bel_parser/parsers/common/identifier.rl +106 -0
  268. data/lib/bel_parser/parsers/common/list.rb +2388 -0
  269. data/lib/bel_parser/parsers/common/list.rl +146 -0
  270. data/lib/bel_parser/parsers/common/string.rb +271 -0
  271. data/lib/bel_parser/parsers/common/string.rl +107 -0
  272. data/lib/bel_parser/parsers/expression.rb +7 -0
  273. data/lib/bel_parser/parsers/expression/comment.rb +239 -0
  274. data/lib/bel_parser/parsers/expression/comment.rl +97 -0
  275. data/lib/bel_parser/parsers/expression/nested_statement.rb +17802 -0
  276. data/lib/bel_parser/parsers/expression/nested_statement.rl +141 -0
  277. data/lib/bel_parser/parsers/expression/observed_term.rb +7291 -0
  278. data/lib/bel_parser/parsers/expression/observed_term.rl +92 -0
  279. data/lib/bel_parser/parsers/expression/parameter.rb +1506 -0
  280. data/lib/bel_parser/parsers/expression/parameter.rl +97 -0
  281. data/lib/bel_parser/parsers/expression/relationship.rb +254 -0
  282. data/lib/bel_parser/parsers/expression/relationship.rl +98 -0
  283. data/lib/bel_parser/parsers/expression/simple_statement.rb +10475 -0
  284. data/lib/bel_parser/parsers/expression/simple_statement.rl +112 -0
  285. data/lib/bel_parser/parsers/expression/term.rb +3989 -0
  286. data/lib/bel_parser/parsers/expression/term.rl +157 -0
  287. data/lib/bel_parser/parsers/line_parser.rb +92 -0
  288. data/lib/bel_parser/parsers/mixin/buffer.rb +10 -0
  289. data/lib/bel_parser/parsers/nonblocking_io_wrapper.rb +50 -0
  290. data/lib/bel_parser/parsers/serializer.rb +205 -0
  291. data/lib/bel_parser/quoting.rb +177 -0
  292. data/lib/bel_parser/resource/concept.rb +56 -0
  293. data/lib/bel_parser/resource/concept_scheme.rb +35 -0
  294. data/lib/bel_parser/resource/dataset.rb +34 -0
  295. data/lib/bel_parser/resource/eager_reader.rb +89 -0
  296. data/lib/bel_parser/resource/eager_sparql_reader.rb +51 -0
  297. data/lib/bel_parser/resource/file_resource.rb +21 -0
  298. data/lib/bel_parser/resource/file_resource_value.rb +24 -0
  299. data/lib/bel_parser/resource/jena_tdb_reader.rb +246 -0
  300. data/lib/bel_parser/resource/lru_cache.rb +111 -0
  301. data/lib/bel_parser/resource/lru_reader.rb +34 -0
  302. data/lib/bel_parser/resource/reader.rb +18 -0
  303. data/lib/bel_parser/resource/resource_url_reader.rb +181 -0
  304. data/lib/bel_parser/resource/sparql_reader.rb +179 -0
  305. data/lib/bel_parser/resource/value.rb +31 -0
  306. data/lib/bel_parser/script.rb +8 -0
  307. data/lib/bel_parser/script/filter.rb +35 -0
  308. data/lib/bel_parser/script/first_node.rb +21 -0
  309. data/lib/bel_parser/script/keywords.rb +32 -0
  310. data/lib/bel_parser/script/nanopub_mapper.rb +182 -0
  311. data/lib/bel_parser/script/parser.rb +51 -0
  312. data/lib/bel_parser/script/state/annotation_definition.rb +62 -0
  313. data/lib/bel_parser/script/state/bel_version.rb +36 -0
  314. data/lib/bel_parser/script/state/document_property.rb +29 -0
  315. data/lib/bel_parser/script/state/namespace_definition.rb +32 -0
  316. data/lib/bel_parser/script/state/set.rb +82 -0
  317. data/lib/bel_parser/script/state/unset.rb +46 -0
  318. data/lib/bel_parser/script/state_aggregator.rb +49 -0
  319. data/lib/bel_parser/script/state_function.rb +10 -0
  320. data/lib/bel_parser/script/syntax/expression_validation.rb +46 -0
  321. data/lib/bel_parser/script/syntax/invalid_regex_pattern.rb +49 -0
  322. data/lib/bel_parser/script/syntax/undefined_annotation.rb +61 -0
  323. data/lib/bel_parser/script/syntax/undefined_annotation_value.rb +84 -0
  324. data/lib/bel_parser/script/syntax/unresolvable_namespace.rb +54 -0
  325. data/lib/bel_parser/script/syntax/unsupported_bel_version.rb +59 -0
  326. data/lib/bel_parser/script/validator.rb +65 -0
  327. data/lib/bel_parser/vendor/ast.rb +17 -0
  328. data/lib/bel_parser/vendor/ast/node.rb +254 -0
  329. data/lib/bel_parser/vendor/ast/processor.rb +12 -0
  330. data/lib/bel_parser/vendor/ast/processor/mixin.rb +282 -0
  331. data/lib/bel_parser/vendor/ast/sexp.rb +30 -0
  332. metadata +390 -0
@@ -0,0 +1,79 @@
1
+ require_relative '../../version2_0'
2
+ require_relative '../../function'
3
+ require_relative '../../signature'
4
+ require_relative '../../semantics'
5
+
6
+ module BELParser
7
+ module Language
8
+ module Version2_0
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::Version2_0::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
+ # ProductsSignature
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::Version2_0::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
+ end
71
+
72
+ SIGNATURES = Signatures.constants.map do |const|
73
+ Signatures.const_get(const)
74
+ end.freeze
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,270 @@
1
+ require_relative '../../version2_0'
2
+ require_relative '../../function'
3
+ require_relative '../../signature'
4
+ require_relative '../../semantics'
5
+
6
+ module BELParser
7
+ module Language
8
+ module Version2_0
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::Version2_0::ReturnTypes::ProteinAbundance
17
+ P_ENC = Version2_0::ValueEncodings::ProteinAbundance
18
+ DESCRIPTION = 'Denotes the abundance of a protein'.freeze
19
+
20
+ def self.short
21
+ SHORT
22
+ end
23
+
24
+ def self.long
25
+ LONG
26
+ end
27
+
28
+ def self.return_type
29
+ RETURN_TYPE
30
+ end
31
+
32
+ def self.description
33
+ DESCRIPTION
34
+ end
35
+
36
+ def self.signatures
37
+ SIGNATURES
38
+ end
39
+
40
+ module Signatures
41
+ # ProteinAbundanceSignature
42
+ class ProteinAbundanceSignature
43
+ extend BELParser::Language::Signature
44
+
45
+ private_class_method :new
46
+
47
+ AST = BELParser::Language::Semantics::Builder.build do
48
+ term(
49
+ function(
50
+ identifier(
51
+ function_of(ProteinAbundance))),
52
+ argument(
53
+ parameter(
54
+ prefix(
55
+ has_namespace,
56
+ namespace_of(:*)),
57
+ value(
58
+ has_encoding,
59
+ encoding_of(P_ENC)))))
60
+ end
61
+ private_constant :AST
62
+
63
+ STRING_FORM = 'proteinAbundance(E:proteinAbundance)proteinAbundance'.freeze
64
+ private_constant :STRING_FORM
65
+
66
+ def self.semantic_ast
67
+ AST
68
+ end
69
+
70
+ def self.string_form
71
+ STRING_FORM
72
+ end
73
+ end
74
+
75
+ # ProteinAbundanceWithFragmentSignature
76
+ class ProteinAbundanceWithFragmentSignature
77
+ extend BELParser::Language::Signature
78
+
79
+ private_class_method :new
80
+
81
+ AST = BELParser::Language::Semantics::Builder.build do
82
+ term(
83
+ function(
84
+ identifier(
85
+ function_of(ProteinAbundance))),
86
+ argument(
87
+ parameter(
88
+ prefix(
89
+ has_namespace,
90
+ namespace_of(:*)),
91
+ value(
92
+ has_encoding,
93
+ encoding_of(P_ENC)))),
94
+ argument(
95
+ term(
96
+ function(
97
+ identifier(
98
+ return_type_of(BELParser::Language::Version2_0::ReturnTypes::Fragment))))))
99
+ end
100
+ private_constant :AST
101
+
102
+ STRING_FORM = 'proteinAbundance(E:proteinAbundance,F:fragment)proteinAbundance'.freeze
103
+ private_constant :STRING_FORM
104
+
105
+ def self.semantic_ast
106
+ AST
107
+ end
108
+
109
+ def self.string_form
110
+ STRING_FORM
111
+ end
112
+ end
113
+
114
+ # ProteinAbundanceWithFusionSignature
115
+ class ProteinAbundanceWithFusionSignature
116
+ extend BELParser::Language::Signature
117
+
118
+ private_class_method :new
119
+
120
+ AST = BELParser::Language::Semantics::Builder.build do
121
+ term(
122
+ function(
123
+ identifier(
124
+ function_of(ProteinAbundance))),
125
+ argument(
126
+ term(
127
+ function(
128
+ identifier(
129
+ return_type_of(BELParser::Language::Version2_0::ReturnTypes::Fusion))))))
130
+ end
131
+ private_constant :AST
132
+
133
+ STRING_FORM = 'proteinAbundance(F:fusion)proteinAbundance'.freeze
134
+ private_constant :STRING_FORM
135
+
136
+ def self.semantic_ast
137
+ AST
138
+ end
139
+
140
+ def self.string_form
141
+ STRING_FORM
142
+ end
143
+ end
144
+
145
+ # ProteinAbundanceWithLocationSignature
146
+ class ProteinAbundanceWithLocationSignature
147
+ extend BELParser::Language::Signature
148
+
149
+ private_class_method :new
150
+
151
+ AST = BELParser::Language::Semantics::Builder.build do
152
+ term(
153
+ function(
154
+ identifier(
155
+ function_of(ProteinAbundance))),
156
+ argument(
157
+ parameter(
158
+ prefix(
159
+ has_namespace,
160
+ namespace_of(:*)),
161
+ value(
162
+ has_encoding,
163
+ encoding_of(P_ENC)))),
164
+ argument(
165
+ term(
166
+ function(
167
+ identifier(
168
+ return_type_of(BELParser::Language::Version2_0::ReturnTypes::Location))))))
169
+ end
170
+ private_constant :AST
171
+
172
+ STRING_FORM = 'proteinAbundance(E:proteinAbundance,F:location)proteinAbundance'.freeze
173
+ private_constant :STRING_FORM
174
+
175
+ def self.semantic_ast
176
+ AST
177
+ end
178
+
179
+ def self.string_form
180
+ STRING_FORM
181
+ end
182
+ end
183
+
184
+ # ProteinAbundanceWithProteinModificationSignature
185
+ class ProteinAbundanceWithProteinModificationSignature
186
+ extend BELParser::Language::Signature
187
+
188
+ private_class_method :new
189
+
190
+ AST = BELParser::Language::Semantics::Builder.build do
191
+ term(
192
+ function(
193
+ identifier(
194
+ function_of(ProteinAbundance))),
195
+ argument(
196
+ parameter(
197
+ prefix(
198
+ has_namespace,
199
+ namespace_of(:*)),
200
+ value(
201
+ has_encoding,
202
+ encoding_of(P_ENC)))),
203
+ variadic_arguments(
204
+ term(
205
+ function(
206
+ identifier(
207
+ return_type_of(BELParser::Language::Version2_0::ReturnTypes::ProteinModification))))))
208
+ end
209
+ private_constant :AST
210
+
211
+ STRING_FORM = 'proteinAbundance(E:proteinAbundance,F:proteinModification...)proteinAbundance'.freeze
212
+ private_constant :STRING_FORM
213
+
214
+ def self.semantic_ast
215
+ AST
216
+ end
217
+
218
+ def self.string_form
219
+ STRING_FORM
220
+ end
221
+ end
222
+
223
+ # ProteinAbundanceWithVariantSignature
224
+ class ProteinAbundanceWithVariantSignature
225
+ extend BELParser::Language::Signature
226
+
227
+ private_class_method :new
228
+
229
+ AST = BELParser::Language::Semantics::Builder.build do
230
+ term(
231
+ function(
232
+ identifier(
233
+ function_of(ProteinAbundance))),
234
+ argument(
235
+ parameter(
236
+ prefix(
237
+ has_namespace,
238
+ namespace_of(:*)),
239
+ value(
240
+ has_encoding,
241
+ encoding_of(P_ENC)))),
242
+ argument(
243
+ term(
244
+ function(
245
+ identifier(
246
+ return_type_of(BELParser::Language::Version2_0::ReturnTypes::Variant))))))
247
+ end
248
+ private_constant :AST
249
+
250
+ STRING_FORM = 'proteinAbundance(E:proteinAbundance,F:variant)proteinAbundance'.freeze
251
+ private_constant :STRING_FORM
252
+
253
+ def self.semantic_ast
254
+ AST
255
+ end
256
+
257
+ def self.string_form
258
+ STRING_FORM
259
+ end
260
+ end
261
+ end
262
+
263
+ SIGNATURES = Signatures.constants.map do |const|
264
+ Signatures.const_get(const)
265
+ end.freeze
266
+ end
267
+ end
268
+ end
269
+ end
270
+ end
@@ -0,0 +1,172 @@
1
+ require_relative '../../version2_0'
2
+ require_relative '../../function'
3
+ require_relative '../../signature'
4
+ require_relative '../../amino_acid'
5
+ require_relative '../../semantics'
6
+
7
+ module BELParser
8
+ module Language
9
+ module Version2_0
10
+ module Functions
11
+ # ProteinModification: Denotes a covalently modified protein
12
+ # abundance
13
+ class ProteinModification
14
+ extend Function
15
+
16
+ SHORT = :pmod
17
+ LONG = :proteinModification
18
+ RETURN_TYPE = Version2_0::ReturnTypes::ProteinModification
19
+ E_ENC = Version2_0::ValueEncodings::ProteinModification
20
+ DESCRIPTION = 'Denotes a covalently modified protein
21
+ bundance'.freeze
22
+
23
+ def self.short
24
+ SHORT
25
+ end
26
+
27
+ def self.long
28
+ LONG
29
+ end
30
+
31
+ def self.return_type
32
+ RETURN_TYPE
33
+ end
34
+
35
+ def self.description
36
+ DESCRIPTION
37
+ end
38
+
39
+ def self.signatures
40
+ SIGNATURES
41
+ end
42
+
43
+ module Signatures
44
+ # ProteinModificationWithTypeSignature
45
+ class ProteinModificationWithTypeSignature
46
+ extend BELParser::Language::Signature
47
+
48
+ private_class_method :new
49
+
50
+ # TODO: More strict prefix validation for modification type?
51
+ AST = BELParser::Language::Semantics::Builder.build do
52
+ term(
53
+ function(
54
+ identifier(
55
+ function_of(ProteinModification))),
56
+ argument(
57
+ parameter(
58
+ prefix(any),
59
+ value(
60
+ has_encoding,
61
+ encoding_of(E_ENC)))))
62
+ end
63
+ private_constant :AST
64
+
65
+ STRING_FORM =
66
+ 'proteinModification(E:modificationType)proteinModification'
67
+ .freeze
68
+ private_constant :STRING_FORM
69
+
70
+ def self.semantic_ast
71
+ AST
72
+ end
73
+
74
+ def self.string_form
75
+ STRING_FORM
76
+ end
77
+ end
78
+
79
+ # ProteinModificationWithTypeAminoSignature
80
+ class ProteinModificationWithTypeAminoSignature
81
+ extend BELParser::Language::Signature
82
+
83
+ private_class_method :new
84
+
85
+ # TODO: More strict prefix validation for modification type?
86
+ AST = BELParser::Language::Semantics::Builder.build do
87
+ term(
88
+ function(
89
+ identifier(
90
+ function_of(ProteinModification))),
91
+ argument(
92
+ parameter(
93
+ prefix(any),
94
+ value(
95
+ has_encoding,
96
+ encoding_of(E_ENC)))),
97
+ argument(
98
+ parameter(
99
+ prefix(any),
100
+ value(
101
+ amino_acid_of(*AminoAcid.values)))))
102
+ end
103
+ private_constant :AST
104
+
105
+ STRING_FORM =
106
+ 'proteinModification(E:modificationType,T:AminoAcid)proteinModification'
107
+ .freeze
108
+ private_constant :STRING_FORM
109
+
110
+ def self.semantic_ast
111
+ AST
112
+ end
113
+
114
+ def self.string_form
115
+ STRING_FORM
116
+ end
117
+ end
118
+
119
+ # ProteinModificationWithTypeAminoPositionSignature
120
+ class ProteinModificationWithTypeAminoPositionSignature
121
+ extend BELParser::Language::Signature
122
+
123
+ private_class_method :new
124
+
125
+ # TODO: More strict prefix validation for modification type?
126
+ AST = BELParser::Language::Semantics::Builder.build do
127
+ term(
128
+ function(
129
+ identifier(
130
+ function_of(ProteinModification))),
131
+ argument(
132
+ parameter(
133
+ prefix(any),
134
+ value(
135
+ has_encoding,
136
+ encoding_of(E_ENC)))),
137
+ argument(
138
+ parameter(
139
+ prefix(any),
140
+ value(
141
+ amino_acid_of(*AminoAcid.values)))),
142
+ argument(
143
+ parameter(
144
+ prefix(any),
145
+ value(
146
+ is_sequence_position))))
147
+ end
148
+ private_constant :AST
149
+
150
+ STRING_FORM =
151
+ 'proteinModification(E:modificationType,T:AminoAcid,E:*)proteinModification'
152
+ .freeze
153
+ private_constant :STRING_FORM
154
+
155
+ def self.semantic_ast
156
+ AST
157
+ end
158
+
159
+ def self.string_form
160
+ STRING_FORM
161
+ end
162
+ end
163
+ end
164
+
165
+ SIGNATURES = Signatures.constants.map do |const|
166
+ Signatures.const_get(const)
167
+ end.freeze
168
+ end
169
+ end
170
+ end
171
+ end
172
+ end