expressir 0.2.26-x86_64-linux → 1.2.0-x86_64-linux

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 (214) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +50 -5
  3. data/.github/workflows/release.yml +8 -0
  4. data/.gitignore +2 -2
  5. data/.hound.yml +3 -0
  6. data/.rubocop.yml +6 -506
  7. data/.yardopts +11 -0
  8. data/Rakefile +3 -0
  9. data/demo.rb +5 -5
  10. data/exe/format +8 -8
  11. data/exe/format-test +11 -11
  12. data/expressir.gemspec +4 -2
  13. data/lib/expressir/cli.rb +0 -6
  14. data/lib/expressir/express/2.4/express_parser.so +0 -0
  15. data/lib/expressir/express/2.5/express_parser.so +0 -0
  16. data/lib/expressir/express/2.6/express_parser.so +0 -0
  17. data/lib/expressir/express/2.7/express_parser.so +0 -0
  18. data/lib/expressir/{express_exp → express}/3.0/express_parser.so +0 -0
  19. data/lib/expressir/express/cache.rb +51 -0
  20. data/lib/expressir/{express_exp → express}/formatter.rb +304 -237
  21. data/lib/expressir/{express_exp → express}/hyperlink_formatter.rb +16 -2
  22. data/lib/expressir/{express_exp → express}/model_visitor.rb +2 -1
  23. data/lib/expressir/{express_exp → express}/parser.rb +19 -13
  24. data/lib/expressir/{express_exp → express}/resolve_references_model_visitor.rb +9 -7
  25. data/lib/expressir/express/schema_head_formatter.rb +23 -0
  26. data/lib/expressir/{express_exp → express}/visitor.rb +318 -270
  27. data/lib/expressir/model/cache.rb +6 -2
  28. data/lib/expressir/model/data_type.rb +9 -0
  29. data/lib/expressir/model/data_types/aggregate.rb +31 -0
  30. data/lib/expressir/model/data_types/array.rb +31 -0
  31. data/lib/expressir/model/data_types/bag.rb +25 -0
  32. data/lib/expressir/model/data_types/binary.rb +22 -0
  33. data/lib/expressir/model/data_types/boolean.rb +10 -0
  34. data/lib/expressir/model/data_types/enumeration.rb +25 -0
  35. data/lib/expressir/model/data_types/enumeration_item.rb +26 -0
  36. data/lib/expressir/model/data_types/generic.rb +26 -0
  37. data/lib/expressir/model/data_types/generic_entity.rb +26 -0
  38. data/lib/expressir/model/data_types/integer.rb +10 -0
  39. data/lib/expressir/model/data_types/list.rb +28 -0
  40. data/lib/expressir/model/data_types/logical.rb +10 -0
  41. data/lib/expressir/model/data_types/number.rb +10 -0
  42. data/lib/expressir/model/data_types/real.rb +19 -0
  43. data/lib/expressir/model/data_types/select.rb +28 -0
  44. data/lib/expressir/model/data_types/set.rb +25 -0
  45. data/lib/expressir/model/data_types/string.rb +22 -0
  46. data/lib/expressir/model/declaration.rb +9 -0
  47. data/lib/expressir/model/declarations/attribute.rb +47 -0
  48. data/lib/expressir/model/declarations/constant.rb +34 -0
  49. data/lib/expressir/model/declarations/entity.rb +53 -0
  50. data/lib/expressir/model/declarations/function.rb +67 -0
  51. data/lib/expressir/model/declarations/interface.rb +28 -0
  52. data/lib/expressir/model/declarations/interface_item.rb +23 -0
  53. data/lib/expressir/model/declarations/interfaced_item.rb +37 -0
  54. data/lib/expressir/model/declarations/parameter.rb +34 -0
  55. data/lib/expressir/model/declarations/procedure.rb +64 -0
  56. data/lib/expressir/model/declarations/remark_item.rb +21 -0
  57. data/lib/expressir/model/declarations/rule.rb +71 -0
  58. data/lib/expressir/model/declarations/schema.rb +117 -0
  59. data/lib/expressir/model/declarations/schema_version.rb +22 -0
  60. data/lib/expressir/model/declarations/schema_version_item.rb +22 -0
  61. data/lib/expressir/model/declarations/subtype_constraint.rb +40 -0
  62. data/lib/expressir/model/declarations/type.rb +45 -0
  63. data/lib/expressir/model/declarations/unique_rule.rb +31 -0
  64. data/lib/expressir/model/declarations/variable.rb +34 -0
  65. data/lib/expressir/model/declarations/where_rule.rb +31 -0
  66. data/lib/expressir/model/expression.rb +9 -0
  67. data/lib/expressir/model/expressions/aggregate_initializer.rb +7 -3
  68. data/lib/expressir/model/expressions/aggregate_initializer_item.rb +22 -0
  69. data/lib/expressir/model/expressions/binary_expression.rb +16 -5
  70. data/lib/expressir/model/expressions/entity_constructor.rb +9 -4
  71. data/lib/expressir/model/expressions/function_call.rb +22 -0
  72. data/lib/expressir/model/expressions/interval.rb +17 -6
  73. data/lib/expressir/model/expressions/query_expression.rb +11 -7
  74. data/lib/expressir/model/expressions/unary_expression.rb +9 -3
  75. data/lib/expressir/model/identifier.rb +26 -4
  76. data/lib/expressir/model/literal.rb +9 -0
  77. data/lib/expressir/model/literals/binary.rb +6 -2
  78. data/lib/expressir/model/literals/integer.rb +6 -2
  79. data/lib/expressir/model/literals/logical.rb +6 -2
  80. data/lib/expressir/model/literals/real.rb +6 -2
  81. data/lib/expressir/model/literals/string.rb +8 -3
  82. data/lib/expressir/model/model_element.rb +63 -37
  83. data/lib/expressir/model/reference.rb +9 -0
  84. data/lib/expressir/model/references/attribute_reference.rb +22 -0
  85. data/lib/expressir/model/references/group_reference.rb +22 -0
  86. data/lib/expressir/model/references/index_reference.rb +27 -0
  87. data/lib/expressir/model/references/simple_reference.rb +24 -0
  88. data/lib/expressir/model/repository.rb +6 -2
  89. data/lib/expressir/model/statement.rb +9 -0
  90. data/lib/expressir/model/statements/alias.rb +12 -8
  91. data/lib/expressir/model/statements/assignment.rb +8 -3
  92. data/lib/expressir/model/statements/case.rb +11 -5
  93. data/lib/expressir/model/statements/case_action.rb +8 -3
  94. data/lib/expressir/model/statements/compound.rb +7 -3
  95. data/lib/expressir/model/statements/escape.rb +3 -1
  96. data/lib/expressir/model/statements/if.rb +12 -6
  97. data/lib/expressir/model/statements/null.rb +3 -1
  98. data/lib/expressir/model/statements/procedure_call.rb +22 -0
  99. data/lib/expressir/model/statements/repeat.rb +20 -12
  100. data/lib/expressir/model/statements/return.rb +6 -2
  101. data/lib/expressir/model/statements/skip.rb +3 -1
  102. data/lib/expressir/model/supertype_expression.rb +9 -0
  103. data/lib/expressir/model/supertype_expressions/binary_supertype_expression.rb +29 -0
  104. data/lib/expressir/model/supertype_expressions/oneof_supertype_expression.rb +19 -0
  105. data/lib/expressir/model.rb +52 -43
  106. data/lib/expressir/version.rb +1 -1
  107. data/lib/expressir.rb +0 -1
  108. data/rakelib/cross-ruby.rake +1 -1
  109. data/spec/expressir/{express_exp → express}/cache_spec.rb +9 -9
  110. data/spec/expressir/express/formatter_spec.rb +127 -0
  111. data/spec/expressir/{express_exp → express}/parser_spec.rb +23 -23
  112. data/spec/expressir/model/model_element_spec.rb +153 -153
  113. data/{original/examples → spec}/syntax/multiple.exp +0 -0
  114. data/spec/syntax/multiple.yaml +198 -0
  115. data/{original/examples → spec}/syntax/multiple_formatted.exp +0 -0
  116. data/{original/examples → spec}/syntax/multiple_hyperlink_formatted.exp +0 -0
  117. data/{original/examples → spec}/syntax/multiple_schema_head_hyperlink_formatted.exp +0 -0
  118. data/{original/examples → spec}/syntax/remark.exp +0 -0
  119. data/{original/examples → spec}/syntax/remark.yaml +73 -73
  120. data/{original/examples → spec}/syntax/remark_formatted.exp +0 -0
  121. data/{original/examples → spec}/syntax/single.exp +1 -1
  122. data/spec/syntax/single.yaml +18 -0
  123. data/{original/examples → spec}/syntax/single_formatted.exp +1 -1
  124. data/{original/examples → spec}/syntax/single_formatted.yaml +9 -6
  125. data/{original/examples → spec}/syntax/syntax.exp +11 -11
  126. data/{original/examples → spec}/syntax/syntax.yaml +1100 -1111
  127. data/{original/examples → spec}/syntax/syntax_formatted.exp +11 -11
  128. data/{original/examples → spec}/syntax/syntax_hyperlink_formatted.exp +11 -11
  129. data/{original/examples → spec}/syntax/syntax_schema_head_formatted.exp +1 -1
  130. metadata +128 -121
  131. data/lib/expressir/express/aggregate_dimension.rb +0 -38
  132. data/lib/expressir/express/attribute.rb +0 -15
  133. data/lib/expressir/express/comment.rb +0 -7
  134. data/lib/expressir/express/defined_type.rb +0 -36
  135. data/lib/expressir/express/derived.rb +0 -65
  136. data/lib/expressir/express/derived_aggregate.rb +0 -43
  137. data/lib/expressir/express/entity.rb +0 -137
  138. data/lib/expressir/express/explicit.rb +0 -70
  139. data/lib/expressir/express/explicit_aggregate.rb +0 -46
  140. data/lib/expressir/express/explicit_or_derived.rb +0 -16
  141. data/lib/expressir/express/global_rule.rb +0 -44
  142. data/lib/expressir/express/interface_specification.rb +0 -51
  143. data/lib/expressir/express/interfaced_item.rb +0 -38
  144. data/lib/expressir/express/inverse.rb +0 -46
  145. data/lib/expressir/express/inverse_aggregate.rb +0 -37
  146. data/lib/expressir/express/model_element.rb +0 -7
  147. data/lib/expressir/express/named_type.rb +0 -19
  148. data/lib/expressir/express/remark.rb +0 -8
  149. data/lib/expressir/express/repository.rb +0 -306
  150. data/lib/expressir/express/schema_definition.rb +0 -96
  151. data/lib/expressir/express/subtype_constraint.rb +0 -14
  152. data/lib/expressir/express/type.rb +0 -26
  153. data/lib/expressir/express/type_aggregate.rb +0 -42
  154. data/lib/expressir/express/type_enum.rb +0 -29
  155. data/lib/expressir/express/type_parser.rb +0 -45
  156. data/lib/expressir/express/type_select.rb +0 -82
  157. data/lib/expressir/express/unique_rule.rb +0 -35
  158. data/lib/expressir/express/where_rule.rb +0 -32
  159. data/lib/expressir/express.rb +0 -11
  160. data/lib/expressir/express_exp/2.4/express_parser.so +0 -0
  161. data/lib/expressir/express_exp/2.5/express_parser.so +0 -0
  162. data/lib/expressir/express_exp/2.6/express_parser.so +0 -0
  163. data/lib/expressir/express_exp/2.7/express_parser.so +0 -0
  164. data/lib/expressir/express_exp/cache.rb +0 -48
  165. data/lib/expressir/express_exp/schema_head_formatter.rb +0 -9
  166. data/lib/expressir/express_parser.rb +0 -30
  167. data/lib/expressir/model/attribute.rb +0 -38
  168. data/lib/expressir/model/constant.rb +0 -28
  169. data/lib/expressir/model/entity.rb +0 -42
  170. data/lib/expressir/model/enumeration_item.rb +0 -22
  171. data/lib/expressir/model/expressions/aggregate_item.rb +0 -17
  172. data/lib/expressir/model/expressions/attribute_reference.rb +0 -17
  173. data/lib/expressir/model/expressions/call.rb +0 -17
  174. data/lib/expressir/model/expressions/group_reference.rb +0 -17
  175. data/lib/expressir/model/expressions/index_reference.rb +0 -19
  176. data/lib/expressir/model/expressions/simple_reference.rb +0 -19
  177. data/lib/expressir/model/function.rb +0 -57
  178. data/lib/expressir/model/interface.rb +0 -20
  179. data/lib/expressir/model/interface_item.rb +0 -15
  180. data/lib/expressir/model/interfaced_item.rb +0 -27
  181. data/lib/expressir/model/parameter.rb +0 -28
  182. data/lib/expressir/model/procedure.rb +0 -55
  183. data/lib/expressir/model/remark_item.rb +0 -15
  184. data/lib/expressir/model/rule.rb +0 -60
  185. data/lib/expressir/model/schema.rb +0 -100
  186. data/lib/expressir/model/statements/call.rb +0 -17
  187. data/lib/expressir/model/subtype_constraint.rb +0 -32
  188. data/lib/expressir/model/type.rb +0 -37
  189. data/lib/expressir/model/types/aggregate.rb +0 -28
  190. data/lib/expressir/model/types/array.rb +0 -23
  191. data/lib/expressir/model/types/bag.rb +0 -19
  192. data/lib/expressir/model/types/binary.rb +0 -17
  193. data/lib/expressir/model/types/boolean.rb +0 -8
  194. data/lib/expressir/model/types/enumeration.rb +0 -21
  195. data/lib/expressir/model/types/generic.rb +0 -24
  196. data/lib/expressir/model/types/generic_entity.rb +0 -24
  197. data/lib/expressir/model/types/integer.rb +0 -8
  198. data/lib/expressir/model/types/list.rb +0 -21
  199. data/lib/expressir/model/types/logical.rb +0 -8
  200. data/lib/expressir/model/types/number.rb +0 -8
  201. data/lib/expressir/model/types/real.rb +0 -15
  202. data/lib/expressir/model/types/select.rb +0 -23
  203. data/lib/expressir/model/types/set.rb +0 -19
  204. data/lib/expressir/model/types/string.rb +0 -17
  205. data/lib/expressir/model/unique.rb +0 -26
  206. data/lib/expressir/model/variable.rb +0 -28
  207. data/lib/expressir/model/where.rb +0 -26
  208. data/lib/expressir/parser/owl_parser.rb +0 -8
  209. data/lib/expressir/parser.rb +0 -6
  210. data/original/examples/syntax/multiple.yaml +0 -198
  211. data/original/examples/syntax/single.yaml +0 -15
  212. data/spec/acceptance/express_to_owl_spec.rb +0 -18
  213. data/spec/expressir/express/repository_spec.rb +0 -25
  214. data/spec/expressir/express_exp/formatter_spec.rb +0 -127
@@ -1,4 +1,4 @@
1
- SCHEMA syntax_schema 'version';
1
+ SCHEMA syntax_schema '{ISO standard 10303 part(41) object(1) version(8)}';
2
2
 
3
3
  USE FROM contract_schema;
4
4
  USE FROM contract_schema
@@ -747,19 +747,19 @@ PROCEDURE types;
747
747
  END_TYPE;
748
748
  TYPE select_extensible_generic_entity_type = EXTENSIBLE GENERIC_ENTITY SELECT;
749
749
  END_TYPE;
750
- TYPE select_list_type = SELECT
750
+ TYPE select_item_type = SELECT
751
751
  (empty_type);
752
752
  END_TYPE;
753
- TYPE select_list_multiple_type = SELECT
753
+ TYPE select_multiple_item_type = SELECT
754
754
  (empty_type,
755
755
  empty_type);
756
756
  END_TYPE;
757
- TYPE select_extension_type_ref_type = SELECT BASED_ON select_type;
757
+ TYPE select_based_on_type = SELECT BASED_ON select_type;
758
758
  END_TYPE;
759
- TYPE select_extension_type_ref_list_type = SELECT BASED_ON select_type WITH
759
+ TYPE select_based_on_item_type = SELECT BASED_ON select_type WITH
760
760
  (empty_type);
761
761
  END_TYPE;
762
- TYPE select_extension_type_ref_list_multiple_type = SELECT BASED_ON select_type WITH
762
+ TYPE select_based_on_multiple_item_type = SELECT BASED_ON select_type WITH
763
763
  (empty_type,
764
764
  empty_type);
765
765
  END_TYPE;
@@ -767,19 +767,19 @@ PROCEDURE types;
767
767
  END_TYPE;
768
768
  TYPE enumeration_extensible_type = EXTENSIBLE ENUMERATION;
769
769
  END_TYPE;
770
- TYPE enumeration_list_type = ENUMERATION OF
770
+ TYPE enumeration_item_type = ENUMERATION OF
771
771
  (test);
772
772
  END_TYPE;
773
- TYPE enumeration_list_multiple_type = ENUMERATION OF
773
+ TYPE enumeration_multiple_item_type = ENUMERATION OF
774
774
  (test,
775
775
  test2);
776
776
  END_TYPE;
777
- TYPE enumeration_extension_type_ref_type = ENUMERATION BASED_ON enumeration_type;
777
+ TYPE enumeration_based_on_type = ENUMERATION BASED_ON enumeration_type;
778
778
  END_TYPE;
779
- TYPE enumeration_extension_type_ref_list_type = ENUMERATION BASED_ON enumeration_type WITH
779
+ TYPE enumeration_based_on_item_type = ENUMERATION BASED_ON enumeration_type WITH
780
780
  (test);
781
781
  END_TYPE;
782
- TYPE enumeration_extension_type_ref_list_multiple_type = ENUMERATION BASED_ON enumeration_type WITH
782
+ TYPE enumeration_based_on_multiple_item_type = ENUMERATION BASED_ON enumeration_type WITH
783
783
  (test,
784
784
  test2);
785
785
  END_TYPE;
@@ -1,4 +1,4 @@
1
- SCHEMA syntax_schema 'version';
1
+ SCHEMA syntax_schema '{ISO standard 10303 part(41) object(1) version(8)}';
2
2
 
3
3
  USE FROM contract_schema;
4
4
  USE FROM contract_schema
@@ -747,19 +747,19 @@ PROCEDURE types;
747
747
  END_TYPE;
748
748
  TYPE select_extensible_generic_entity_type = EXTENSIBLE GENERIC_ENTITY SELECT;
749
749
  END_TYPE;
750
- TYPE select_list_type = SELECT
750
+ TYPE select_item_type = SELECT
751
751
  ({{{<<express:syntax_schema.empty_type,empty_type>>}}});
752
752
  END_TYPE;
753
- TYPE select_list_multiple_type = SELECT
753
+ TYPE select_multiple_item_type = SELECT
754
754
  ({{{<<express:syntax_schema.empty_type,empty_type>>}}},
755
755
  {{{<<express:syntax_schema.empty_type,empty_type>>}}});
756
756
  END_TYPE;
757
- TYPE select_extension_type_ref_type = SELECT BASED_ON select_type;
757
+ TYPE select_based_on_type = SELECT BASED_ON select_type;
758
758
  END_TYPE;
759
- TYPE select_extension_type_ref_list_type = SELECT BASED_ON select_type WITH
759
+ TYPE select_based_on_item_type = SELECT BASED_ON select_type WITH
760
760
  ({{{<<express:syntax_schema.empty_type,empty_type>>}}});
761
761
  END_TYPE;
762
- TYPE select_extension_type_ref_list_multiple_type = SELECT BASED_ON select_type WITH
762
+ TYPE select_based_on_multiple_item_type = SELECT BASED_ON select_type WITH
763
763
  ({{{<<express:syntax_schema.empty_type,empty_type>>}}},
764
764
  {{{<<express:syntax_schema.empty_type,empty_type>>}}});
765
765
  END_TYPE;
@@ -767,19 +767,19 @@ PROCEDURE types;
767
767
  END_TYPE;
768
768
  TYPE enumeration_extensible_type = EXTENSIBLE ENUMERATION;
769
769
  END_TYPE;
770
- TYPE enumeration_list_type = ENUMERATION OF
770
+ TYPE enumeration_item_type = ENUMERATION OF
771
771
  (test);
772
772
  END_TYPE;
773
- TYPE enumeration_list_multiple_type = ENUMERATION OF
773
+ TYPE enumeration_multiple_item_type = ENUMERATION OF
774
774
  (test,
775
775
  test2);
776
776
  END_TYPE;
777
- TYPE enumeration_extension_type_ref_type = ENUMERATION BASED_ON enumeration_type;
777
+ TYPE enumeration_based_on_type = ENUMERATION BASED_ON enumeration_type;
778
778
  END_TYPE;
779
- TYPE enumeration_extension_type_ref_list_type = ENUMERATION BASED_ON enumeration_type WITH
779
+ TYPE enumeration_based_on_item_type = ENUMERATION BASED_ON enumeration_type WITH
780
780
  (test);
781
781
  END_TYPE;
782
- TYPE enumeration_extension_type_ref_list_multiple_type = ENUMERATION BASED_ON enumeration_type WITH
782
+ TYPE enumeration_based_on_multiple_item_type = ENUMERATION BASED_ON enumeration_type WITH
783
783
  (test,
784
784
  test2);
785
785
  END_TYPE;
@@ -1,4 +1,4 @@
1
- SCHEMA syntax_schema 'version';
1
+ SCHEMA syntax_schema '{ISO standard 10303 part(41) object(1) version(8)}';
2
2
 
3
3
  USE FROM contract_schema;
4
4
  USE FROM contract_schema
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: expressir
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.26
4
+ version: 1.2.0
5
5
  platform: x86_64-linux
6
6
  authors:
7
7
  - Ribose Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-03-29 00:00:00.000000000 Z
11
+ date: 2022-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: nokogiri
14
+ name: thor
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.10'
19
+ version: '1.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.10'
26
+ version: '1.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: thor
28
+ name: asciidoctor
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.0'
34
- type: :runtime
33
+ version: 2.0.13
34
+ type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.0'
40
+ version: 2.0.13
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: antlr4-native
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -150,6 +150,34 @@ dependencies:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
152
  version: '3.0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: yard
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: 0.9.26
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: 0.9.26
167
+ - !ruby/object:Gem::Dependency
168
+ name: webrick
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: 1.7.0
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: 1.7.0
153
181
  description: ISO EXPRESS parser in Ruby, tools for accessing EXPRESS data models.
154
182
  email:
155
183
  - open.source@ribose.com'
@@ -163,8 +191,10 @@ files:
163
191
  - ".github/workflows/release.yml"
164
192
  - ".gitignore"
165
193
  - ".gitmodules"
194
+ - ".hound.yml"
166
195
  - ".rspec"
167
196
  - ".rubocop.yml"
197
+ - ".yardopts"
168
198
  - Gemfile
169
199
  - README.adoc
170
200
  - Rakefile
@@ -182,119 +212,98 @@ files:
182
212
  - lib/expressir/cli.rb
183
213
  - lib/expressir/cli/ui.rb
184
214
  - lib/expressir/config.rb
185
- - lib/expressir/express.rb
186
- - lib/expressir/express/aggregate_dimension.rb
187
- - lib/expressir/express/attribute.rb
188
- - lib/expressir/express/comment.rb
189
- - lib/expressir/express/defined_type.rb
190
- - lib/expressir/express/derived.rb
191
- - lib/expressir/express/derived_aggregate.rb
192
- - lib/expressir/express/entity.rb
193
- - lib/expressir/express/explicit.rb
194
- - lib/expressir/express/explicit_aggregate.rb
195
- - lib/expressir/express/explicit_or_derived.rb
196
- - lib/expressir/express/global_rule.rb
197
- - lib/expressir/express/interface_specification.rb
198
- - lib/expressir/express/interfaced_item.rb
199
- - lib/expressir/express/inverse.rb
200
- - lib/expressir/express/inverse_aggregate.rb
201
- - lib/expressir/express/model_element.rb
202
- - lib/expressir/express/named_type.rb
203
- - lib/expressir/express/remark.rb
204
- - lib/expressir/express/repository.rb
205
- - lib/expressir/express/schema_definition.rb
206
- - lib/expressir/express/subtype_constraint.rb
207
- - lib/expressir/express/type.rb
208
- - lib/expressir/express/type_aggregate.rb
209
- - lib/expressir/express/type_enum.rb
210
- - lib/expressir/express/type_parser.rb
211
- - lib/expressir/express/type_select.rb
212
- - lib/expressir/express/unique_rule.rb
213
- - lib/expressir/express/where_rule.rb
214
- - lib/expressir/express_exp/2.4/express_parser.so
215
- - lib/expressir/express_exp/2.5/express_parser.so
216
- - lib/expressir/express_exp/2.6/express_parser.so
217
- - lib/expressir/express_exp/2.7/express_parser.so
218
- - lib/expressir/express_exp/3.0/express_parser.so
219
- - lib/expressir/express_exp/cache.rb
220
- - lib/expressir/express_exp/formatter.rb
221
- - lib/expressir/express_exp/hyperlink_formatter.rb
222
- - lib/expressir/express_exp/model_visitor.rb
223
- - lib/expressir/express_exp/parser.rb
224
- - lib/expressir/express_exp/resolve_references_model_visitor.rb
225
- - lib/expressir/express_exp/schema_head_formatter.rb
226
- - lib/expressir/express_exp/visitor.rb
227
- - lib/expressir/express_parser.rb
215
+ - lib/expressir/express/2.4/express_parser.so
216
+ - lib/expressir/express/2.5/express_parser.so
217
+ - lib/expressir/express/2.6/express_parser.so
218
+ - lib/expressir/express/2.7/express_parser.so
219
+ - lib/expressir/express/3.0/express_parser.so
220
+ - lib/expressir/express/cache.rb
221
+ - lib/expressir/express/formatter.rb
222
+ - lib/expressir/express/hyperlink_formatter.rb
223
+ - lib/expressir/express/model_visitor.rb
224
+ - lib/expressir/express/parser.rb
225
+ - lib/expressir/express/resolve_references_model_visitor.rb
226
+ - lib/expressir/express/schema_head_formatter.rb
227
+ - lib/expressir/express/visitor.rb
228
228
  - lib/expressir/model.rb
229
- - lib/expressir/model/attribute.rb
230
229
  - lib/expressir/model/cache.rb
231
- - lib/expressir/model/constant.rb
232
- - lib/expressir/model/entity.rb
233
- - lib/expressir/model/enumeration_item.rb
230
+ - lib/expressir/model/data_type.rb
231
+ - lib/expressir/model/data_types/aggregate.rb
232
+ - lib/expressir/model/data_types/array.rb
233
+ - lib/expressir/model/data_types/bag.rb
234
+ - lib/expressir/model/data_types/binary.rb
235
+ - lib/expressir/model/data_types/boolean.rb
236
+ - lib/expressir/model/data_types/enumeration.rb
237
+ - lib/expressir/model/data_types/enumeration_item.rb
238
+ - lib/expressir/model/data_types/generic.rb
239
+ - lib/expressir/model/data_types/generic_entity.rb
240
+ - lib/expressir/model/data_types/integer.rb
241
+ - lib/expressir/model/data_types/list.rb
242
+ - lib/expressir/model/data_types/logical.rb
243
+ - lib/expressir/model/data_types/number.rb
244
+ - lib/expressir/model/data_types/real.rb
245
+ - lib/expressir/model/data_types/select.rb
246
+ - lib/expressir/model/data_types/set.rb
247
+ - lib/expressir/model/data_types/string.rb
248
+ - lib/expressir/model/declaration.rb
249
+ - lib/expressir/model/declarations/attribute.rb
250
+ - lib/expressir/model/declarations/constant.rb
251
+ - lib/expressir/model/declarations/entity.rb
252
+ - lib/expressir/model/declarations/function.rb
253
+ - lib/expressir/model/declarations/interface.rb
254
+ - lib/expressir/model/declarations/interface_item.rb
255
+ - lib/expressir/model/declarations/interfaced_item.rb
256
+ - lib/expressir/model/declarations/parameter.rb
257
+ - lib/expressir/model/declarations/procedure.rb
258
+ - lib/expressir/model/declarations/remark_item.rb
259
+ - lib/expressir/model/declarations/rule.rb
260
+ - lib/expressir/model/declarations/schema.rb
261
+ - lib/expressir/model/declarations/schema_version.rb
262
+ - lib/expressir/model/declarations/schema_version_item.rb
263
+ - lib/expressir/model/declarations/subtype_constraint.rb
264
+ - lib/expressir/model/declarations/type.rb
265
+ - lib/expressir/model/declarations/unique_rule.rb
266
+ - lib/expressir/model/declarations/variable.rb
267
+ - lib/expressir/model/declarations/where_rule.rb
268
+ - lib/expressir/model/expression.rb
234
269
  - lib/expressir/model/expressions/aggregate_initializer.rb
235
- - lib/expressir/model/expressions/aggregate_item.rb
236
- - lib/expressir/model/expressions/attribute_reference.rb
270
+ - lib/expressir/model/expressions/aggregate_initializer_item.rb
237
271
  - lib/expressir/model/expressions/binary_expression.rb
238
- - lib/expressir/model/expressions/call.rb
239
272
  - lib/expressir/model/expressions/entity_constructor.rb
240
- - lib/expressir/model/expressions/group_reference.rb
241
- - lib/expressir/model/expressions/index_reference.rb
273
+ - lib/expressir/model/expressions/function_call.rb
242
274
  - lib/expressir/model/expressions/interval.rb
243
275
  - lib/expressir/model/expressions/query_expression.rb
244
- - lib/expressir/model/expressions/simple_reference.rb
245
276
  - lib/expressir/model/expressions/unary_expression.rb
246
- - lib/expressir/model/function.rb
247
277
  - lib/expressir/model/identifier.rb
248
- - lib/expressir/model/interface.rb
249
- - lib/expressir/model/interface_item.rb
250
- - lib/expressir/model/interfaced_item.rb
278
+ - lib/expressir/model/literal.rb
251
279
  - lib/expressir/model/literals/binary.rb
252
280
  - lib/expressir/model/literals/integer.rb
253
281
  - lib/expressir/model/literals/logical.rb
254
282
  - lib/expressir/model/literals/real.rb
255
283
  - lib/expressir/model/literals/string.rb
256
284
  - lib/expressir/model/model_element.rb
257
- - lib/expressir/model/parameter.rb
258
- - lib/expressir/model/procedure.rb
259
- - lib/expressir/model/remark_item.rb
285
+ - lib/expressir/model/reference.rb
286
+ - lib/expressir/model/references/attribute_reference.rb
287
+ - lib/expressir/model/references/group_reference.rb
288
+ - lib/expressir/model/references/index_reference.rb
289
+ - lib/expressir/model/references/simple_reference.rb
260
290
  - lib/expressir/model/repository.rb
261
- - lib/expressir/model/rule.rb
262
- - lib/expressir/model/schema.rb
291
+ - lib/expressir/model/statement.rb
263
292
  - lib/expressir/model/statements/alias.rb
264
293
  - lib/expressir/model/statements/assignment.rb
265
- - lib/expressir/model/statements/call.rb
266
294
  - lib/expressir/model/statements/case.rb
267
295
  - lib/expressir/model/statements/case_action.rb
268
296
  - lib/expressir/model/statements/compound.rb
269
297
  - lib/expressir/model/statements/escape.rb
270
298
  - lib/expressir/model/statements/if.rb
271
299
  - lib/expressir/model/statements/null.rb
300
+ - lib/expressir/model/statements/procedure_call.rb
272
301
  - lib/expressir/model/statements/repeat.rb
273
302
  - lib/expressir/model/statements/return.rb
274
303
  - lib/expressir/model/statements/skip.rb
275
- - lib/expressir/model/subtype_constraint.rb
276
- - lib/expressir/model/type.rb
277
- - lib/expressir/model/types/aggregate.rb
278
- - lib/expressir/model/types/array.rb
279
- - lib/expressir/model/types/bag.rb
280
- - lib/expressir/model/types/binary.rb
281
- - lib/expressir/model/types/boolean.rb
282
- - lib/expressir/model/types/enumeration.rb
283
- - lib/expressir/model/types/generic.rb
284
- - lib/expressir/model/types/generic_entity.rb
285
- - lib/expressir/model/types/integer.rb
286
- - lib/expressir/model/types/list.rb
287
- - lib/expressir/model/types/logical.rb
288
- - lib/expressir/model/types/number.rb
289
- - lib/expressir/model/types/real.rb
290
- - lib/expressir/model/types/select.rb
291
- - lib/expressir/model/types/set.rb
292
- - lib/expressir/model/types/string.rb
293
- - lib/expressir/model/unique.rb
294
- - lib/expressir/model/variable.rb
295
- - lib/expressir/model/where.rb
296
- - lib/expressir/parser.rb
297
- - lib/expressir/parser/owl_parser.rb
304
+ - lib/expressir/model/supertype_expression.rb
305
+ - lib/expressir/model/supertype_expressions/binary_supertype_expression.rb
306
+ - lib/expressir/model/supertype_expressions/oneof_supertype_expression.rb
298
307
  - lib/expressir/version.rb
299
308
  - original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.exp
300
309
  - original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.owl
@@ -325,23 +334,6 @@ files:
325
334
  - original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.owl
326
335
  - original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.xmi
327
336
  - original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.xml
328
- - original/examples/syntax/multiple.exp
329
- - original/examples/syntax/multiple.yaml
330
- - original/examples/syntax/multiple_formatted.exp
331
- - original/examples/syntax/multiple_hyperlink_formatted.exp
332
- - original/examples/syntax/multiple_schema_head_hyperlink_formatted.exp
333
- - original/examples/syntax/remark.exp
334
- - original/examples/syntax/remark.yaml
335
- - original/examples/syntax/remark_formatted.exp
336
- - original/examples/syntax/single.exp
337
- - original/examples/syntax/single.yaml
338
- - original/examples/syntax/single_formatted.exp
339
- - original/examples/syntax/single_formatted.yaml
340
- - original/examples/syntax/syntax.exp
341
- - original/examples/syntax/syntax.yaml
342
- - original/examples/syntax/syntax_formatted.exp
343
- - original/examples/syntax/syntax_hyperlink_formatted.exp
344
- - original/examples/syntax/syntax_schema_head_formatted.exp
345
337
  - original/exp2ruby.rb
346
338
  - original/expsm.rb
347
339
  - original/mapping_owl.rb
@@ -350,16 +342,31 @@ files:
350
342
  - original/mapping_uml2_eclipse.rb
351
343
  - original/reeper.rb
352
344
  - rakelib/cross-ruby.rake
353
- - spec/acceptance/express_to_owl_spec.rb
354
345
  - spec/acceptance/version_spec.rb
355
- - spec/expressir/express/repository_spec.rb
356
- - spec/expressir/express_exp/cache_spec.rb
357
- - spec/expressir/express_exp/formatter_spec.rb
358
- - spec/expressir/express_exp/parser_spec.rb
346
+ - spec/expressir/express/cache_spec.rb
347
+ - spec/expressir/express/formatter_spec.rb
348
+ - spec/expressir/express/parser_spec.rb
359
349
  - spec/expressir/model/model_element_spec.rb
360
350
  - spec/expressr_spec.rb
361
351
  - spec/spec_helper.rb
362
352
  - spec/support/console_helper.rb
353
+ - spec/syntax/multiple.exp
354
+ - spec/syntax/multiple.yaml
355
+ - spec/syntax/multiple_formatted.exp
356
+ - spec/syntax/multiple_hyperlink_formatted.exp
357
+ - spec/syntax/multiple_schema_head_hyperlink_formatted.exp
358
+ - spec/syntax/remark.exp
359
+ - spec/syntax/remark.yaml
360
+ - spec/syntax/remark_formatted.exp
361
+ - spec/syntax/single.exp
362
+ - spec/syntax/single.yaml
363
+ - spec/syntax/single_formatted.exp
364
+ - spec/syntax/single_formatted.yaml
365
+ - spec/syntax/syntax.exp
366
+ - spec/syntax/syntax.yaml
367
+ - spec/syntax/syntax_formatted.exp
368
+ - spec/syntax/syntax_hyperlink_formatted.exp
369
+ - spec/syntax/syntax_schema_head_formatted.exp
363
370
  homepage: https://github.com/lutaml/expressir
364
371
  licenses:
365
372
  - MIT
@@ -367,7 +374,7 @@ metadata:
367
374
  homepage_uri: https://github.com/lutaml/expressir
368
375
  source_code_uri: https://github.com/lutaml/expressir
369
376
  changelog_uri: https://github.com/lutaml/expressir/releases
370
- post_install_message:
377
+ post_install_message:
371
378
  rdoc_options: []
372
379
  require_paths:
373
380
  - lib
@@ -385,8 +392,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
385
392
  - !ruby/object:Gem::Version
386
393
  version: '0'
387
394
  requirements: []
388
- rubygems_version: 3.2.3
389
- signing_key:
395
+ rubygems_version: 3.3.4
396
+ signing_key:
390
397
  specification_version: 4
391
398
  summary: ISO EXPRESS parser in Ruby, tools for accessing EXPRESS data models.
392
399
  test_files: []
@@ -1,38 +0,0 @@
1
- module Expressir
2
- module Express
3
- class AggregateDimension
4
- attr_accessor :aggrtype, :lower, :upper, :isUnique, :isOptionalArray
5
-
6
- def initialize(options = {})
7
- @aggrtype = "SET"
8
- @lower = "0"
9
- @upper = "?"
10
- @isUnique = false
11
- @isOptionalArray = false
12
-
13
- @options = options
14
- end
15
-
16
- def parse
17
- document = @options.fetch(:document, nil)
18
- extract_attributes(document) if document
19
-
20
- self
21
- end
22
-
23
- def self.parse(document)
24
- new(document: document).parse
25
- end
26
-
27
- private
28
-
29
- def extract_attributes(document)
30
- @aggrtype = document.attributes["type"]
31
- @lower = document.attributes["lower"]
32
- @upper = document.attributes["upper"]
33
- @isUnique = document.attributes["unique"] == "YES"
34
- @isOptionalArray = document.attributes["optional"] == "YES"
35
- end
36
- end
37
- end
38
- end
@@ -1,15 +0,0 @@
1
- require "expressir/express/model_element"
2
-
3
- module Expressir
4
- module Express
5
- class Attribute < ModelElement
6
- attr_accessor :name, :entity, :domain, :redeclare_entity,
7
- :redeclare_oldname
8
-
9
- def initialize
10
- @redeclare_entity = nil
11
- @redeclare_oldname = nil
12
- end
13
- end
14
- end
15
- end
@@ -1,7 +0,0 @@
1
- module Expressir
2
- module Express
3
- class Comment
4
- attr_accessor :comment, :ModelElement
5
- end
6
- end
7
- end
@@ -1,36 +0,0 @@
1
- require "expressir/express/named_type"
2
-
3
- module Expressir
4
- module Express
5
- class DefinedType < NamedType
6
- def initialize(options = {})
7
- @options = options
8
- @schema = options.fetch(:schema)
9
- end
10
-
11
- def parse
12
- document = @options.fetch(:document)
13
- extract_type_attributes(document)
14
-
15
- self
16
- end
17
-
18
- def self.parse(document, schema)
19
- new(document: document, schema: schema).parse
20
- end
21
-
22
- private
23
-
24
- def extract_type_attributes(document)
25
- @name = document.attributes["name"].to_s
26
- @wheres = extract_where_rules(document)
27
- end
28
-
29
- def extract_where_rules(document)
30
- document.xpath("where").map do |where|
31
- Express::WhereRule.parse(where)
32
- end
33
- end
34
- end
35
- end
36
- end
@@ -1,65 +0,0 @@
1
- module Expressir
2
- module Express
3
- class Derived < ExplicitOrDerived
4
- attr_accessor :expression
5
-
6
- def initialize(options = {})
7
- @options = options
8
- @entity = options.fetch(:entity, nil)
9
- end
10
-
11
- def parse
12
- document = @options.fetch(:document, nil)
13
- extract_common_attributes(document)
14
- extract_type_specific_attributes(document)
15
-
16
- self
17
- end
18
-
19
- def self.parse(document, entity)
20
- new(document: document, entity: entity).parse
21
- end
22
-
23
- private
24
-
25
- def extract_type_specific_attributes(document); end
26
-
27
- def extract_common_attributes(document)
28
- @name = document.attributes["name"].to_s
29
- @expression = document.attributes["expression"].to_s
30
- @domain = extract_domain_name(document.xpath("typename"))
31
-
32
- extract_builtintype_attributes(document)
33
- extract_redeclaration_attributes(document)
34
- end
35
-
36
- def extract_domain_name(typename)
37
- unless typename.empty?
38
- typename.first.attributes["name"].to_s
39
- end
40
- end
41
-
42
- def extract_redeclaration_attributes(document)
43
- redeclaration = document.xpath("redeclaration").first
44
-
45
- if redeclaration
46
- @redeclare_entity = redeclaration.attributes["entity-ref"].to_s
47
- old_name = redeclaration.attributes["old_name"]
48
- @redeclare_oldname = old_name.to_s if old_name
49
- end
50
- end
51
-
52
- def extract_builtintype_attributes(document)
53
- builtin_type = document.xpath("builtintype").first
54
-
55
- if builtin_type
56
- @isBuiltin = true
57
- @domain = builtin_type.attributes["type"].to_s
58
- @width = builtin_type.attributes["width"].to_s
59
- @fixed = builtin_type.attributes["fixed"] == "YES"
60
- @precision = builtin_type.attributes["precision"].to_s
61
- end
62
- end
63
- end
64
- end
65
- end