expressir 0.2.26 → 1.2.0

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 (207) 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/ext/express-parser/express_parser.cpp +4358 -2954
  14. data/ext/express-parser/extconf.rb +6 -4
  15. data/lib/expressir/cli.rb +0 -6
  16. data/lib/expressir/express/cache.rb +51 -0
  17. data/lib/expressir/{express_exp → express}/formatter.rb +304 -237
  18. data/lib/expressir/{express_exp → express}/hyperlink_formatter.rb +16 -2
  19. data/lib/expressir/{express_exp → express}/model_visitor.rb +2 -1
  20. data/lib/expressir/{express_exp → express}/parser.rb +19 -13
  21. data/lib/expressir/{express_exp → express}/resolve_references_model_visitor.rb +9 -7
  22. data/lib/expressir/express/schema_head_formatter.rb +23 -0
  23. data/lib/expressir/{express_exp → express}/visitor.rb +318 -270
  24. data/lib/expressir/model/cache.rb +6 -2
  25. data/lib/expressir/model/data_type.rb +9 -0
  26. data/lib/expressir/model/data_types/aggregate.rb +31 -0
  27. data/lib/expressir/model/data_types/array.rb +31 -0
  28. data/lib/expressir/model/data_types/bag.rb +25 -0
  29. data/lib/expressir/model/data_types/binary.rb +22 -0
  30. data/lib/expressir/model/data_types/boolean.rb +10 -0
  31. data/lib/expressir/model/data_types/enumeration.rb +25 -0
  32. data/lib/expressir/model/data_types/enumeration_item.rb +26 -0
  33. data/lib/expressir/model/data_types/generic.rb +26 -0
  34. data/lib/expressir/model/data_types/generic_entity.rb +26 -0
  35. data/lib/expressir/model/data_types/integer.rb +10 -0
  36. data/lib/expressir/model/data_types/list.rb +28 -0
  37. data/lib/expressir/model/data_types/logical.rb +10 -0
  38. data/lib/expressir/model/data_types/number.rb +10 -0
  39. data/lib/expressir/model/data_types/real.rb +19 -0
  40. data/lib/expressir/model/data_types/select.rb +28 -0
  41. data/lib/expressir/model/data_types/set.rb +25 -0
  42. data/lib/expressir/model/data_types/string.rb +22 -0
  43. data/lib/expressir/model/declaration.rb +9 -0
  44. data/lib/expressir/model/declarations/attribute.rb +47 -0
  45. data/lib/expressir/model/declarations/constant.rb +34 -0
  46. data/lib/expressir/model/declarations/entity.rb +53 -0
  47. data/lib/expressir/model/declarations/function.rb +67 -0
  48. data/lib/expressir/model/declarations/interface.rb +28 -0
  49. data/lib/expressir/model/declarations/interface_item.rb +23 -0
  50. data/lib/expressir/model/declarations/interfaced_item.rb +37 -0
  51. data/lib/expressir/model/declarations/parameter.rb +34 -0
  52. data/lib/expressir/model/declarations/procedure.rb +64 -0
  53. data/lib/expressir/model/declarations/remark_item.rb +21 -0
  54. data/lib/expressir/model/declarations/rule.rb +71 -0
  55. data/lib/expressir/model/declarations/schema.rb +117 -0
  56. data/lib/expressir/model/declarations/schema_version.rb +22 -0
  57. data/lib/expressir/model/declarations/schema_version_item.rb +22 -0
  58. data/lib/expressir/model/declarations/subtype_constraint.rb +40 -0
  59. data/lib/expressir/model/declarations/type.rb +45 -0
  60. data/lib/expressir/model/declarations/unique_rule.rb +31 -0
  61. data/lib/expressir/model/declarations/variable.rb +34 -0
  62. data/lib/expressir/model/declarations/where_rule.rb +31 -0
  63. data/lib/expressir/model/expression.rb +9 -0
  64. data/lib/expressir/model/expressions/aggregate_initializer.rb +7 -3
  65. data/lib/expressir/model/expressions/aggregate_initializer_item.rb +22 -0
  66. data/lib/expressir/model/expressions/binary_expression.rb +16 -5
  67. data/lib/expressir/model/expressions/entity_constructor.rb +9 -4
  68. data/lib/expressir/model/expressions/function_call.rb +22 -0
  69. data/lib/expressir/model/expressions/interval.rb +17 -6
  70. data/lib/expressir/model/expressions/query_expression.rb +11 -7
  71. data/lib/expressir/model/expressions/unary_expression.rb +9 -3
  72. data/lib/expressir/model/identifier.rb +26 -4
  73. data/lib/expressir/model/literal.rb +9 -0
  74. data/lib/expressir/model/literals/binary.rb +6 -2
  75. data/lib/expressir/model/literals/integer.rb +6 -2
  76. data/lib/expressir/model/literals/logical.rb +6 -2
  77. data/lib/expressir/model/literals/real.rb +6 -2
  78. data/lib/expressir/model/literals/string.rb +8 -3
  79. data/lib/expressir/model/model_element.rb +63 -37
  80. data/lib/expressir/model/reference.rb +9 -0
  81. data/lib/expressir/model/references/attribute_reference.rb +22 -0
  82. data/lib/expressir/model/references/group_reference.rb +22 -0
  83. data/lib/expressir/model/references/index_reference.rb +27 -0
  84. data/lib/expressir/model/references/simple_reference.rb +24 -0
  85. data/lib/expressir/model/repository.rb +6 -2
  86. data/lib/expressir/model/statement.rb +9 -0
  87. data/lib/expressir/model/statements/alias.rb +12 -8
  88. data/lib/expressir/model/statements/assignment.rb +8 -3
  89. data/lib/expressir/model/statements/case.rb +11 -5
  90. data/lib/expressir/model/statements/case_action.rb +8 -3
  91. data/lib/expressir/model/statements/compound.rb +7 -3
  92. data/lib/expressir/model/statements/escape.rb +3 -1
  93. data/lib/expressir/model/statements/if.rb +12 -6
  94. data/lib/expressir/model/statements/null.rb +3 -1
  95. data/lib/expressir/model/statements/procedure_call.rb +22 -0
  96. data/lib/expressir/model/statements/repeat.rb +20 -12
  97. data/lib/expressir/model/statements/return.rb +6 -2
  98. data/lib/expressir/model/statements/skip.rb +3 -1
  99. data/lib/expressir/model/supertype_expression.rb +9 -0
  100. data/lib/expressir/model/supertype_expressions/binary_supertype_expression.rb +29 -0
  101. data/lib/expressir/model/supertype_expressions/oneof_supertype_expression.rb +19 -0
  102. data/lib/expressir/model.rb +52 -43
  103. data/lib/expressir/version.rb +1 -1
  104. data/lib/expressir.rb +0 -1
  105. data/rakelib/cross-ruby.rake +1 -1
  106. data/spec/expressir/{express_exp → express}/cache_spec.rb +9 -9
  107. data/spec/expressir/express/formatter_spec.rb +127 -0
  108. data/spec/expressir/{express_exp → express}/parser_spec.rb +23 -23
  109. data/spec/expressir/model/model_element_spec.rb +153 -153
  110. data/{original/examples → spec}/syntax/multiple.exp +0 -0
  111. data/spec/syntax/multiple.yaml +198 -0
  112. data/{original/examples → spec}/syntax/multiple_formatted.exp +0 -0
  113. data/{original/examples → spec}/syntax/multiple_hyperlink_formatted.exp +0 -0
  114. data/{original/examples → spec}/syntax/multiple_schema_head_hyperlink_formatted.exp +0 -0
  115. data/{original/examples → spec}/syntax/remark.exp +0 -0
  116. data/{original/examples → spec}/syntax/remark.yaml +73 -73
  117. data/{original/examples → spec}/syntax/remark_formatted.exp +0 -0
  118. data/{original/examples → spec}/syntax/single.exp +1 -1
  119. data/spec/syntax/single.yaml +18 -0
  120. data/{original/examples → spec}/syntax/single_formatted.exp +1 -1
  121. data/{original/examples → spec}/syntax/single_formatted.yaml +9 -6
  122. data/{original/examples → spec}/syntax/syntax.exp +11 -11
  123. data/{original/examples → spec}/syntax/syntax.yaml +1100 -1111
  124. data/{original/examples → spec}/syntax/syntax_formatted.exp +11 -11
  125. data/{original/examples → spec}/syntax/syntax_hyperlink_formatted.exp +11 -11
  126. data/{original/examples → spec}/syntax/syntax_schema_head_formatted.exp +1 -1
  127. metadata +123 -116
  128. data/lib/expressir/express/aggregate_dimension.rb +0 -38
  129. data/lib/expressir/express/attribute.rb +0 -15
  130. data/lib/expressir/express/comment.rb +0 -7
  131. data/lib/expressir/express/defined_type.rb +0 -36
  132. data/lib/expressir/express/derived.rb +0 -65
  133. data/lib/expressir/express/derived_aggregate.rb +0 -43
  134. data/lib/expressir/express/entity.rb +0 -137
  135. data/lib/expressir/express/explicit.rb +0 -70
  136. data/lib/expressir/express/explicit_aggregate.rb +0 -46
  137. data/lib/expressir/express/explicit_or_derived.rb +0 -16
  138. data/lib/expressir/express/global_rule.rb +0 -44
  139. data/lib/expressir/express/interface_specification.rb +0 -51
  140. data/lib/expressir/express/interfaced_item.rb +0 -38
  141. data/lib/expressir/express/inverse.rb +0 -46
  142. data/lib/expressir/express/inverse_aggregate.rb +0 -37
  143. data/lib/expressir/express/model_element.rb +0 -7
  144. data/lib/expressir/express/named_type.rb +0 -19
  145. data/lib/expressir/express/remark.rb +0 -8
  146. data/lib/expressir/express/repository.rb +0 -306
  147. data/lib/expressir/express/schema_definition.rb +0 -96
  148. data/lib/expressir/express/subtype_constraint.rb +0 -14
  149. data/lib/expressir/express/type.rb +0 -26
  150. data/lib/expressir/express/type_aggregate.rb +0 -42
  151. data/lib/expressir/express/type_enum.rb +0 -29
  152. data/lib/expressir/express/type_parser.rb +0 -45
  153. data/lib/expressir/express/type_select.rb +0 -82
  154. data/lib/expressir/express/unique_rule.rb +0 -35
  155. data/lib/expressir/express/where_rule.rb +0 -32
  156. data/lib/expressir/express.rb +0 -11
  157. data/lib/expressir/express_exp/cache.rb +0 -48
  158. data/lib/expressir/express_exp/schema_head_formatter.rb +0 -9
  159. data/lib/expressir/express_parser.rb +0 -30
  160. data/lib/expressir/model/attribute.rb +0 -38
  161. data/lib/expressir/model/constant.rb +0 -28
  162. data/lib/expressir/model/entity.rb +0 -42
  163. data/lib/expressir/model/enumeration_item.rb +0 -22
  164. data/lib/expressir/model/expressions/aggregate_item.rb +0 -17
  165. data/lib/expressir/model/expressions/attribute_reference.rb +0 -17
  166. data/lib/expressir/model/expressions/call.rb +0 -17
  167. data/lib/expressir/model/expressions/group_reference.rb +0 -17
  168. data/lib/expressir/model/expressions/index_reference.rb +0 -19
  169. data/lib/expressir/model/expressions/simple_reference.rb +0 -19
  170. data/lib/expressir/model/function.rb +0 -57
  171. data/lib/expressir/model/interface.rb +0 -20
  172. data/lib/expressir/model/interface_item.rb +0 -15
  173. data/lib/expressir/model/interfaced_item.rb +0 -27
  174. data/lib/expressir/model/parameter.rb +0 -28
  175. data/lib/expressir/model/procedure.rb +0 -55
  176. data/lib/expressir/model/remark_item.rb +0 -15
  177. data/lib/expressir/model/rule.rb +0 -60
  178. data/lib/expressir/model/schema.rb +0 -100
  179. data/lib/expressir/model/statements/call.rb +0 -17
  180. data/lib/expressir/model/subtype_constraint.rb +0 -32
  181. data/lib/expressir/model/type.rb +0 -37
  182. data/lib/expressir/model/types/aggregate.rb +0 -28
  183. data/lib/expressir/model/types/array.rb +0 -23
  184. data/lib/expressir/model/types/bag.rb +0 -19
  185. data/lib/expressir/model/types/binary.rb +0 -17
  186. data/lib/expressir/model/types/boolean.rb +0 -8
  187. data/lib/expressir/model/types/enumeration.rb +0 -21
  188. data/lib/expressir/model/types/generic.rb +0 -24
  189. data/lib/expressir/model/types/generic_entity.rb +0 -24
  190. data/lib/expressir/model/types/integer.rb +0 -8
  191. data/lib/expressir/model/types/list.rb +0 -21
  192. data/lib/expressir/model/types/logical.rb +0 -8
  193. data/lib/expressir/model/types/number.rb +0 -8
  194. data/lib/expressir/model/types/real.rb +0 -15
  195. data/lib/expressir/model/types/select.rb +0 -23
  196. data/lib/expressir/model/types/set.rb +0 -19
  197. data/lib/expressir/model/types/string.rb +0 -17
  198. data/lib/expressir/model/unique.rb +0 -26
  199. data/lib/expressir/model/variable.rb +0 -28
  200. data/lib/expressir/model/where.rb +0 -26
  201. data/lib/expressir/parser/owl_parser.rb +0 -8
  202. data/lib/expressir/parser.rb +0 -6
  203. data/original/examples/syntax/multiple.yaml +0 -198
  204. data/original/examples/syntax/single.yaml +0 -15
  205. data/spec/acceptance/express_to_owl_spec.rb +0 -18
  206. data/spec/expressir/express/repository_spec.rb +0 -25
  207. 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,57 +1,57 @@
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: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
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: rice
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.0'
33
+ version: 4.0.3
34
34
  type: :runtime
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: 4.0.3
41
41
  - !ruby/object:Gem::Dependency
42
- name: rice
42
+ name: asciidoctor
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3'
48
- type: :runtime
47
+ version: 2.0.13
48
+ type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '3'
54
+ version: 2.0.13
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: antlr4-native
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -164,6 +164,34 @@ dependencies:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
166
  version: '3.0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: yard
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: 0.9.26
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: 0.9.26
181
+ - !ruby/object:Gem::Dependency
182
+ name: webrick
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: 1.7.0
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: 1.7.0
167
195
  description: ISO EXPRESS parser in Ruby, tools for accessing EXPRESS data models.
168
196
  email:
169
197
  - open.source@ribose.com'
@@ -178,8 +206,10 @@ files:
178
206
  - ".github/workflows/release.yml"
179
207
  - ".gitignore"
180
208
  - ".gitmodules"
209
+ - ".hound.yml"
181
210
  - ".rspec"
182
211
  - ".rubocop.yml"
212
+ - ".yardopts"
183
213
  - Gemfile
184
214
  - README.adoc
185
215
  - Rakefile
@@ -540,114 +570,93 @@ files:
540
570
  - lib/expressir/cli.rb
541
571
  - lib/expressir/cli/ui.rb
542
572
  - lib/expressir/config.rb
543
- - lib/expressir/express.rb
544
- - lib/expressir/express/aggregate_dimension.rb
545
- - lib/expressir/express/attribute.rb
546
- - lib/expressir/express/comment.rb
547
- - lib/expressir/express/defined_type.rb
548
- - lib/expressir/express/derived.rb
549
- - lib/expressir/express/derived_aggregate.rb
550
- - lib/expressir/express/entity.rb
551
- - lib/expressir/express/explicit.rb
552
- - lib/expressir/express/explicit_aggregate.rb
553
- - lib/expressir/express/explicit_or_derived.rb
554
- - lib/expressir/express/global_rule.rb
555
- - lib/expressir/express/interface_specification.rb
556
- - lib/expressir/express/interfaced_item.rb
557
- - lib/expressir/express/inverse.rb
558
- - lib/expressir/express/inverse_aggregate.rb
559
- - lib/expressir/express/model_element.rb
560
- - lib/expressir/express/named_type.rb
561
- - lib/expressir/express/remark.rb
562
- - lib/expressir/express/repository.rb
563
- - lib/expressir/express/schema_definition.rb
564
- - lib/expressir/express/subtype_constraint.rb
565
- - lib/expressir/express/type.rb
566
- - lib/expressir/express/type_aggregate.rb
567
- - lib/expressir/express/type_enum.rb
568
- - lib/expressir/express/type_parser.rb
569
- - lib/expressir/express/type_select.rb
570
- - lib/expressir/express/unique_rule.rb
571
- - lib/expressir/express/where_rule.rb
572
- - lib/expressir/express_exp/cache.rb
573
- - lib/expressir/express_exp/formatter.rb
574
- - lib/expressir/express_exp/hyperlink_formatter.rb
575
- - lib/expressir/express_exp/model_visitor.rb
576
- - lib/expressir/express_exp/parser.rb
577
- - lib/expressir/express_exp/resolve_references_model_visitor.rb
578
- - lib/expressir/express_exp/schema_head_formatter.rb
579
- - lib/expressir/express_exp/visitor.rb
580
- - lib/expressir/express_parser.rb
573
+ - lib/expressir/express/cache.rb
574
+ - lib/expressir/express/formatter.rb
575
+ - lib/expressir/express/hyperlink_formatter.rb
576
+ - lib/expressir/express/model_visitor.rb
577
+ - lib/expressir/express/parser.rb
578
+ - lib/expressir/express/resolve_references_model_visitor.rb
579
+ - lib/expressir/express/schema_head_formatter.rb
580
+ - lib/expressir/express/visitor.rb
581
581
  - lib/expressir/model.rb
582
- - lib/expressir/model/attribute.rb
583
582
  - lib/expressir/model/cache.rb
584
- - lib/expressir/model/constant.rb
585
- - lib/expressir/model/entity.rb
586
- - lib/expressir/model/enumeration_item.rb
583
+ - lib/expressir/model/data_type.rb
584
+ - lib/expressir/model/data_types/aggregate.rb
585
+ - lib/expressir/model/data_types/array.rb
586
+ - lib/expressir/model/data_types/bag.rb
587
+ - lib/expressir/model/data_types/binary.rb
588
+ - lib/expressir/model/data_types/boolean.rb
589
+ - lib/expressir/model/data_types/enumeration.rb
590
+ - lib/expressir/model/data_types/enumeration_item.rb
591
+ - lib/expressir/model/data_types/generic.rb
592
+ - lib/expressir/model/data_types/generic_entity.rb
593
+ - lib/expressir/model/data_types/integer.rb
594
+ - lib/expressir/model/data_types/list.rb
595
+ - lib/expressir/model/data_types/logical.rb
596
+ - lib/expressir/model/data_types/number.rb
597
+ - lib/expressir/model/data_types/real.rb
598
+ - lib/expressir/model/data_types/select.rb
599
+ - lib/expressir/model/data_types/set.rb
600
+ - lib/expressir/model/data_types/string.rb
601
+ - lib/expressir/model/declaration.rb
602
+ - lib/expressir/model/declarations/attribute.rb
603
+ - lib/expressir/model/declarations/constant.rb
604
+ - lib/expressir/model/declarations/entity.rb
605
+ - lib/expressir/model/declarations/function.rb
606
+ - lib/expressir/model/declarations/interface.rb
607
+ - lib/expressir/model/declarations/interface_item.rb
608
+ - lib/expressir/model/declarations/interfaced_item.rb
609
+ - lib/expressir/model/declarations/parameter.rb
610
+ - lib/expressir/model/declarations/procedure.rb
611
+ - lib/expressir/model/declarations/remark_item.rb
612
+ - lib/expressir/model/declarations/rule.rb
613
+ - lib/expressir/model/declarations/schema.rb
614
+ - lib/expressir/model/declarations/schema_version.rb
615
+ - lib/expressir/model/declarations/schema_version_item.rb
616
+ - lib/expressir/model/declarations/subtype_constraint.rb
617
+ - lib/expressir/model/declarations/type.rb
618
+ - lib/expressir/model/declarations/unique_rule.rb
619
+ - lib/expressir/model/declarations/variable.rb
620
+ - lib/expressir/model/declarations/where_rule.rb
621
+ - lib/expressir/model/expression.rb
587
622
  - lib/expressir/model/expressions/aggregate_initializer.rb
588
- - lib/expressir/model/expressions/aggregate_item.rb
589
- - lib/expressir/model/expressions/attribute_reference.rb
623
+ - lib/expressir/model/expressions/aggregate_initializer_item.rb
590
624
  - lib/expressir/model/expressions/binary_expression.rb
591
- - lib/expressir/model/expressions/call.rb
592
625
  - lib/expressir/model/expressions/entity_constructor.rb
593
- - lib/expressir/model/expressions/group_reference.rb
594
- - lib/expressir/model/expressions/index_reference.rb
626
+ - lib/expressir/model/expressions/function_call.rb
595
627
  - lib/expressir/model/expressions/interval.rb
596
628
  - lib/expressir/model/expressions/query_expression.rb
597
- - lib/expressir/model/expressions/simple_reference.rb
598
629
  - lib/expressir/model/expressions/unary_expression.rb
599
- - lib/expressir/model/function.rb
600
630
  - lib/expressir/model/identifier.rb
601
- - lib/expressir/model/interface.rb
602
- - lib/expressir/model/interface_item.rb
603
- - lib/expressir/model/interfaced_item.rb
631
+ - lib/expressir/model/literal.rb
604
632
  - lib/expressir/model/literals/binary.rb
605
633
  - lib/expressir/model/literals/integer.rb
606
634
  - lib/expressir/model/literals/logical.rb
607
635
  - lib/expressir/model/literals/real.rb
608
636
  - lib/expressir/model/literals/string.rb
609
637
  - lib/expressir/model/model_element.rb
610
- - lib/expressir/model/parameter.rb
611
- - lib/expressir/model/procedure.rb
612
- - lib/expressir/model/remark_item.rb
638
+ - lib/expressir/model/reference.rb
639
+ - lib/expressir/model/references/attribute_reference.rb
640
+ - lib/expressir/model/references/group_reference.rb
641
+ - lib/expressir/model/references/index_reference.rb
642
+ - lib/expressir/model/references/simple_reference.rb
613
643
  - lib/expressir/model/repository.rb
614
- - lib/expressir/model/rule.rb
615
- - lib/expressir/model/schema.rb
644
+ - lib/expressir/model/statement.rb
616
645
  - lib/expressir/model/statements/alias.rb
617
646
  - lib/expressir/model/statements/assignment.rb
618
- - lib/expressir/model/statements/call.rb
619
647
  - lib/expressir/model/statements/case.rb
620
648
  - lib/expressir/model/statements/case_action.rb
621
649
  - lib/expressir/model/statements/compound.rb
622
650
  - lib/expressir/model/statements/escape.rb
623
651
  - lib/expressir/model/statements/if.rb
624
652
  - lib/expressir/model/statements/null.rb
653
+ - lib/expressir/model/statements/procedure_call.rb
625
654
  - lib/expressir/model/statements/repeat.rb
626
655
  - lib/expressir/model/statements/return.rb
627
656
  - lib/expressir/model/statements/skip.rb
628
- - lib/expressir/model/subtype_constraint.rb
629
- - lib/expressir/model/type.rb
630
- - lib/expressir/model/types/aggregate.rb
631
- - lib/expressir/model/types/array.rb
632
- - lib/expressir/model/types/bag.rb
633
- - lib/expressir/model/types/binary.rb
634
- - lib/expressir/model/types/boolean.rb
635
- - lib/expressir/model/types/enumeration.rb
636
- - lib/expressir/model/types/generic.rb
637
- - lib/expressir/model/types/generic_entity.rb
638
- - lib/expressir/model/types/integer.rb
639
- - lib/expressir/model/types/list.rb
640
- - lib/expressir/model/types/logical.rb
641
- - lib/expressir/model/types/number.rb
642
- - lib/expressir/model/types/real.rb
643
- - lib/expressir/model/types/select.rb
644
- - lib/expressir/model/types/set.rb
645
- - lib/expressir/model/types/string.rb
646
- - lib/expressir/model/unique.rb
647
- - lib/expressir/model/variable.rb
648
- - lib/expressir/model/where.rb
649
- - lib/expressir/parser.rb
650
- - lib/expressir/parser/owl_parser.rb
657
+ - lib/expressir/model/supertype_expression.rb
658
+ - lib/expressir/model/supertype_expressions/binary_supertype_expression.rb
659
+ - lib/expressir/model/supertype_expressions/oneof_supertype_expression.rb
651
660
  - lib/expressir/version.rb
652
661
  - original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.exp
653
662
  - original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.owl
@@ -678,23 +687,6 @@ files:
678
687
  - original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.owl
679
688
  - original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.xmi
680
689
  - original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.xml
681
- - original/examples/syntax/multiple.exp
682
- - original/examples/syntax/multiple.yaml
683
- - original/examples/syntax/multiple_formatted.exp
684
- - original/examples/syntax/multiple_hyperlink_formatted.exp
685
- - original/examples/syntax/multiple_schema_head_hyperlink_formatted.exp
686
- - original/examples/syntax/remark.exp
687
- - original/examples/syntax/remark.yaml
688
- - original/examples/syntax/remark_formatted.exp
689
- - original/examples/syntax/single.exp
690
- - original/examples/syntax/single.yaml
691
- - original/examples/syntax/single_formatted.exp
692
- - original/examples/syntax/single_formatted.yaml
693
- - original/examples/syntax/syntax.exp
694
- - original/examples/syntax/syntax.yaml
695
- - original/examples/syntax/syntax_formatted.exp
696
- - original/examples/syntax/syntax_hyperlink_formatted.exp
697
- - original/examples/syntax/syntax_schema_head_formatted.exp
698
690
  - original/exp2ruby.rb
699
691
  - original/expsm.rb
700
692
  - original/mapping_owl.rb
@@ -703,16 +695,31 @@ files:
703
695
  - original/mapping_uml2_eclipse.rb
704
696
  - original/reeper.rb
705
697
  - rakelib/cross-ruby.rake
706
- - spec/acceptance/express_to_owl_spec.rb
707
698
  - spec/acceptance/version_spec.rb
708
- - spec/expressir/express/repository_spec.rb
709
- - spec/expressir/express_exp/cache_spec.rb
710
- - spec/expressir/express_exp/formatter_spec.rb
711
- - spec/expressir/express_exp/parser_spec.rb
699
+ - spec/expressir/express/cache_spec.rb
700
+ - spec/expressir/express/formatter_spec.rb
701
+ - spec/expressir/express/parser_spec.rb
712
702
  - spec/expressir/model/model_element_spec.rb
713
703
  - spec/expressr_spec.rb
714
704
  - spec/spec_helper.rb
715
705
  - spec/support/console_helper.rb
706
+ - spec/syntax/multiple.exp
707
+ - spec/syntax/multiple.yaml
708
+ - spec/syntax/multiple_formatted.exp
709
+ - spec/syntax/multiple_hyperlink_formatted.exp
710
+ - spec/syntax/multiple_schema_head_hyperlink_formatted.exp
711
+ - spec/syntax/remark.exp
712
+ - spec/syntax/remark.yaml
713
+ - spec/syntax/remark_formatted.exp
714
+ - spec/syntax/single.exp
715
+ - spec/syntax/single.yaml
716
+ - spec/syntax/single_formatted.exp
717
+ - spec/syntax/single_formatted.yaml
718
+ - spec/syntax/syntax.exp
719
+ - spec/syntax/syntax.yaml
720
+ - spec/syntax/syntax_formatted.exp
721
+ - spec/syntax/syntax_hyperlink_formatted.exp
722
+ - spec/syntax/syntax_schema_head_formatted.exp
716
723
  homepage: https://github.com/lutaml/expressir
717
724
  licenses:
718
725
  - MIT
@@ -735,7 +742,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
735
742
  - !ruby/object:Gem::Version
736
743
  version: '0'
737
744
  requirements: []
738
- rubygems_version: 3.0.3
745
+ rubygems_version: 3.0.3.1
739
746
  signing_key:
740
747
  specification_version: 4
741
748
  summary: ISO EXPRESS parser in Ruby, tools for accessing EXPRESS data models.
@@ -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