expressir 0.2.24-arm64-darwin → 1.1.0-arm64-darwin

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 (212) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +7 -6
  3. data/.gitignore +2 -2
  4. data/.yardopts +11 -0
  5. data/Rakefile +3 -0
  6. data/demo.rb +5 -5
  7. data/exe/format +10 -73
  8. data/exe/format-test +81 -0
  9. data/expressir.gemspec +3 -1
  10. data/lib/expressir.rb +0 -1
  11. data/lib/expressir/cli.rb +0 -6
  12. data/lib/expressir/{express_exp → express}/2.4/express_parser.bundle +0 -0
  13. data/lib/expressir/{express_exp → express}/2.5/express_parser.bundle +0 -0
  14. data/lib/expressir/{express_exp → express}/2.6/express_parser.bundle +0 -0
  15. data/lib/expressir/{express_exp → express}/2.7/express_parser.bundle +0 -0
  16. data/lib/expressir/{express_exp → express}/3.0/express_parser.bundle +0 -0
  17. data/lib/expressir/express/cache.rb +51 -0
  18. data/lib/expressir/{express_exp → express}/formatter.rb +306 -239
  19. data/lib/expressir/express/hyperlink_formatter.rb +36 -0
  20. data/lib/expressir/express/model_visitor.rb +24 -0
  21. data/lib/expressir/express/parser.rb +81 -0
  22. data/lib/expressir/express/resolve_references_model_visitor.rb +31 -0
  23. data/lib/expressir/express/schema_head_formatter.rb +23 -0
  24. data/lib/expressir/{express_exp → express}/visitor.rb +318 -270
  25. data/lib/expressir/model.rb +52 -43
  26. data/lib/expressir/model/cache.rb +6 -2
  27. data/lib/expressir/model/data_type.rb +9 -0
  28. data/lib/expressir/model/data_types/aggregate.rb +31 -0
  29. data/lib/expressir/model/data_types/array.rb +31 -0
  30. data/lib/expressir/model/data_types/bag.rb +25 -0
  31. data/lib/expressir/model/data_types/binary.rb +22 -0
  32. data/lib/expressir/model/data_types/boolean.rb +10 -0
  33. data/lib/expressir/model/data_types/enumeration.rb +25 -0
  34. data/lib/expressir/model/data_types/enumeration_item.rb +26 -0
  35. data/lib/expressir/model/data_types/generic.rb +26 -0
  36. data/lib/expressir/model/data_types/generic_entity.rb +26 -0
  37. data/lib/expressir/model/data_types/integer.rb +10 -0
  38. data/lib/expressir/model/data_types/list.rb +28 -0
  39. data/lib/expressir/model/data_types/logical.rb +10 -0
  40. data/lib/expressir/model/data_types/number.rb +10 -0
  41. data/lib/expressir/model/data_types/real.rb +19 -0
  42. data/lib/expressir/model/data_types/select.rb +28 -0
  43. data/lib/expressir/model/data_types/set.rb +25 -0
  44. data/lib/expressir/model/data_types/string.rb +22 -0
  45. data/lib/expressir/model/declaration.rb +9 -0
  46. data/lib/expressir/model/declarations/attribute.rb +47 -0
  47. data/lib/expressir/model/declarations/constant.rb +34 -0
  48. data/lib/expressir/model/declarations/entity.rb +53 -0
  49. data/lib/expressir/model/declarations/function.rb +67 -0
  50. data/lib/expressir/model/declarations/interface.rb +28 -0
  51. data/lib/expressir/model/declarations/interface_item.rb +23 -0
  52. data/lib/expressir/model/declarations/interfaced_item.rb +37 -0
  53. data/lib/expressir/model/declarations/parameter.rb +34 -0
  54. data/lib/expressir/model/declarations/procedure.rb +64 -0
  55. data/lib/expressir/model/declarations/remark_item.rb +21 -0
  56. data/lib/expressir/model/declarations/rule.rb +71 -0
  57. data/lib/expressir/model/declarations/schema.rb +117 -0
  58. data/lib/expressir/model/declarations/schema_version.rb +22 -0
  59. data/lib/expressir/model/declarations/schema_version_item.rb +22 -0
  60. data/lib/expressir/model/declarations/subtype_constraint.rb +40 -0
  61. data/lib/expressir/model/declarations/type.rb +45 -0
  62. data/lib/expressir/model/declarations/unique_rule.rb +31 -0
  63. data/lib/expressir/model/declarations/variable.rb +34 -0
  64. data/lib/expressir/model/declarations/where_rule.rb +31 -0
  65. data/lib/expressir/model/expression.rb +9 -0
  66. data/lib/expressir/model/expressions/aggregate_initializer.rb +7 -3
  67. data/lib/expressir/model/expressions/aggregate_initializer_item.rb +22 -0
  68. data/lib/expressir/model/expressions/binary_expression.rb +16 -5
  69. data/lib/expressir/model/expressions/entity_constructor.rb +9 -4
  70. data/lib/expressir/model/expressions/function_call.rb +22 -0
  71. data/lib/expressir/model/expressions/interval.rb +17 -6
  72. data/lib/expressir/model/expressions/query_expression.rb +11 -7
  73. data/lib/expressir/model/expressions/unary_expression.rb +9 -3
  74. data/lib/expressir/model/identifier.rb +26 -4
  75. data/lib/expressir/model/literal.rb +9 -0
  76. data/lib/expressir/model/literals/binary.rb +6 -2
  77. data/lib/expressir/model/literals/integer.rb +6 -2
  78. data/lib/expressir/model/literals/logical.rb +6 -2
  79. data/lib/expressir/model/literals/real.rb +6 -2
  80. data/lib/expressir/model/literals/string.rb +8 -3
  81. data/lib/expressir/model/model_element.rb +70 -37
  82. data/lib/expressir/model/reference.rb +9 -0
  83. data/lib/expressir/model/references/attribute_reference.rb +22 -0
  84. data/lib/expressir/model/references/group_reference.rb +22 -0
  85. data/lib/expressir/model/references/index_reference.rb +27 -0
  86. data/lib/expressir/model/references/simple_reference.rb +24 -0
  87. data/lib/expressir/model/repository.rb +8 -2
  88. data/lib/expressir/model/statement.rb +9 -0
  89. data/lib/expressir/model/statements/alias.rb +12 -8
  90. data/lib/expressir/model/statements/assignment.rb +8 -3
  91. data/lib/expressir/model/statements/case.rb +11 -5
  92. data/lib/expressir/model/statements/case_action.rb +8 -3
  93. data/lib/expressir/model/statements/compound.rb +7 -3
  94. data/lib/expressir/model/statements/escape.rb +3 -1
  95. data/lib/expressir/model/statements/if.rb +12 -6
  96. data/lib/expressir/model/statements/null.rb +3 -1
  97. data/lib/expressir/model/statements/procedure_call.rb +22 -0
  98. data/lib/expressir/model/statements/repeat.rb +20 -12
  99. data/lib/expressir/model/statements/return.rb +6 -2
  100. data/lib/expressir/model/statements/skip.rb +3 -1
  101. data/lib/expressir/model/supertype_expression.rb +9 -0
  102. data/lib/expressir/model/supertype_expressions/binary_supertype_expression.rb +29 -0
  103. data/lib/expressir/model/supertype_expressions/oneof_supertype_expression.rb +19 -0
  104. data/lib/expressir/version.rb +1 -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 +24 -24
  109. data/spec/expressir/model/model_element_spec.rb +181 -129
  110. data/{original/examples → spec}/syntax/multiple.exp +1 -1
  111. data/spec/syntax/multiple.yaml +198 -0
  112. data/{original/examples → spec}/syntax/multiple_formatted.exp +1 -1
  113. data/{original/examples → spec}/syntax/multiple_hyperlink_formatted.exp +4 -4
  114. data/{original/examples → spec}/syntax/multiple_schema_head_hyperlink_formatted.exp +1 -1
  115. data/{original/examples → spec}/syntax/remark.exp +0 -0
  116. data/{original/examples → spec}/syntax/remark.yaml +87 -73
  117. data/{original/examples → spec}/syntax/remark_formatted.exp +0 -0
  118. data/spec/syntax/single.exp +4 -0
  119. data/spec/syntax/single.yaml +18 -0
  120. data/spec/syntax/single_formatted.exp +10 -0
  121. data/spec/syntax/single_formatted.yaml +36 -0
  122. data/{original/examples → spec}/syntax/syntax.exp +11 -11
  123. data/{original/examples → spec}/syntax/syntax.yaml +1181 -1111
  124. data/{original/examples → spec}/syntax/syntax_formatted.exp +11 -11
  125. data/spec/syntax/syntax_hyperlink_formatted.exp +902 -0
  126. data/{original/examples → spec}/syntax/syntax_schema_head_formatted.exp +1 -1
  127. metadata +124 -114
  128. data/lib/expressir/express.rb +0 -11
  129. data/lib/expressir/express/aggregate_dimension.rb +0 -38
  130. data/lib/expressir/express/attribute.rb +0 -15
  131. data/lib/expressir/express/comment.rb +0 -7
  132. data/lib/expressir/express/defined_type.rb +0 -36
  133. data/lib/expressir/express/derived.rb +0 -65
  134. data/lib/expressir/express/derived_aggregate.rb +0 -43
  135. data/lib/expressir/express/entity.rb +0 -137
  136. data/lib/expressir/express/explicit.rb +0 -70
  137. data/lib/expressir/express/explicit_aggregate.rb +0 -46
  138. data/lib/expressir/express/explicit_or_derived.rb +0 -16
  139. data/lib/expressir/express/global_rule.rb +0 -44
  140. data/lib/expressir/express/interface_specification.rb +0 -51
  141. data/lib/expressir/express/interfaced_item.rb +0 -38
  142. data/lib/expressir/express/inverse.rb +0 -46
  143. data/lib/expressir/express/inverse_aggregate.rb +0 -37
  144. data/lib/expressir/express/model_element.rb +0 -7
  145. data/lib/expressir/express/named_type.rb +0 -19
  146. data/lib/expressir/express/remark.rb +0 -8
  147. data/lib/expressir/express/repository.rb +0 -306
  148. data/lib/expressir/express/schema_definition.rb +0 -96
  149. data/lib/expressir/express/subtype_constraint.rb +0 -14
  150. data/lib/expressir/express/type.rb +0 -26
  151. data/lib/expressir/express/type_aggregate.rb +0 -42
  152. data/lib/expressir/express/type_enum.rb +0 -29
  153. data/lib/expressir/express/type_parser.rb +0 -45
  154. data/lib/expressir/express/type_select.rb +0 -82
  155. data/lib/expressir/express/unique_rule.rb +0 -35
  156. data/lib/expressir/express/where_rule.rb +0 -32
  157. data/lib/expressir/express_exp/cache.rb +0 -48
  158. data/lib/expressir/express_exp/hyperlink_formatter.rb +0 -27
  159. data/lib/expressir/express_exp/parser.rb +0 -64
  160. data/lib/expressir/express_exp/schema_head_formatter.rb +0 -9
  161. data/lib/expressir/express_parser.rb +0 -30
  162. data/lib/expressir/model/attribute.rb +0 -38
  163. data/lib/expressir/model/constant.rb +0 -28
  164. data/lib/expressir/model/entity.rb +0 -42
  165. data/lib/expressir/model/enumeration_item.rb +0 -22
  166. data/lib/expressir/model/expressions/aggregate_item.rb +0 -17
  167. data/lib/expressir/model/expressions/attribute_reference.rb +0 -17
  168. data/lib/expressir/model/expressions/call.rb +0 -17
  169. data/lib/expressir/model/expressions/group_reference.rb +0 -17
  170. data/lib/expressir/model/expressions/index_reference.rb +0 -19
  171. data/lib/expressir/model/expressions/simple_reference.rb +0 -15
  172. data/lib/expressir/model/function.rb +0 -57
  173. data/lib/expressir/model/interface.rb +0 -20
  174. data/lib/expressir/model/interface_item.rb +0 -15
  175. data/lib/expressir/model/interfaced_item.rb +0 -31
  176. data/lib/expressir/model/parameter.rb +0 -28
  177. data/lib/expressir/model/procedure.rb +0 -55
  178. data/lib/expressir/model/remark_item.rb +0 -15
  179. data/lib/expressir/model/rule.rb +0 -60
  180. data/lib/expressir/model/schema.rb +0 -98
  181. data/lib/expressir/model/statements/call.rb +0 -17
  182. data/lib/expressir/model/subtype_constraint.rb +0 -32
  183. data/lib/expressir/model/type.rb +0 -37
  184. data/lib/expressir/model/types/aggregate.rb +0 -28
  185. data/lib/expressir/model/types/array.rb +0 -23
  186. data/lib/expressir/model/types/bag.rb +0 -19
  187. data/lib/expressir/model/types/binary.rb +0 -17
  188. data/lib/expressir/model/types/boolean.rb +0 -8
  189. data/lib/expressir/model/types/enumeration.rb +0 -21
  190. data/lib/expressir/model/types/generic.rb +0 -24
  191. data/lib/expressir/model/types/generic_entity.rb +0 -24
  192. data/lib/expressir/model/types/integer.rb +0 -8
  193. data/lib/expressir/model/types/list.rb +0 -21
  194. data/lib/expressir/model/types/logical.rb +0 -8
  195. data/lib/expressir/model/types/number.rb +0 -8
  196. data/lib/expressir/model/types/real.rb +0 -15
  197. data/lib/expressir/model/types/select.rb +0 -23
  198. data/lib/expressir/model/types/set.rb +0 -19
  199. data/lib/expressir/model/types/string.rb +0 -17
  200. data/lib/expressir/model/unique.rb +0 -26
  201. data/lib/expressir/model/variable.rb +0 -28
  202. data/lib/expressir/model/where.rb +0 -26
  203. data/lib/expressir/parser.rb +0 -6
  204. data/lib/expressir/parser/owl_parser.rb +0 -8
  205. data/original/examples/syntax/multiple.yaml +0 -184
  206. data/original/examples/syntax/single.exp +0 -3
  207. data/original/examples/syntax/single.yaml +0 -9
  208. data/original/examples/syntax/single_formatted.exp +0 -6
  209. data/original/examples/syntax/single_formatted.yaml +0 -19
  210. data/spec/acceptance/express_to_owl_spec.rb +0 -18
  211. data/spec/expressir/express/repository_spec.rb +0 -25
  212. data/spec/expressir/express_exp/formatter_spec.rb +0 -111
@@ -1,70 +1,79 @@
1
1
  require 'expressir/model/model_element'
2
2
 
3
3
  require 'expressir/model/cache'
4
-
4
+ require 'expressir/model/data_type'
5
+ require 'expressir/model/declaration'
6
+ require 'expressir/model/expression'
5
7
  require 'expressir/model/identifier'
6
-
7
- require 'expressir/model/attribute'
8
- require 'expressir/model/constant'
9
- require 'expressir/model/entity'
10
- require 'expressir/model/enumeration_item'
11
- require 'expressir/model/function'
12
- require 'expressir/model/interface'
13
- require 'expressir/model/interface_item'
14
- require 'expressir/model/interfaced_item'
15
- require 'expressir/model/parameter'
16
- require 'expressir/model/procedure'
17
- require 'expressir/model/remark_item'
8
+ require 'expressir/model/literal'
9
+ require 'expressir/model/reference'
18
10
  require 'expressir/model/repository'
19
- require 'expressir/model/rule'
20
- require 'expressir/model/schema'
21
- require 'expressir/model/subtype_constraint'
22
- require 'expressir/model/type'
23
- require 'expressir/model/unique'
24
- require 'expressir/model/variable'
25
- require 'expressir/model/where'
11
+ require 'expressir/model/statement'
12
+ require 'expressir/model/supertype_expression'
13
+ require 'expressir/model/data_types/aggregate'
14
+ require 'expressir/model/data_types/array'
15
+ require 'expressir/model/data_types/bag'
16
+ require 'expressir/model/data_types/binary'
17
+ require 'expressir/model/data_types/boolean'
18
+ require 'expressir/model/data_types/enumeration'
19
+ require 'expressir/model/data_types/enumeration_item'
20
+ require 'expressir/model/data_types/generic_entity'
21
+ require 'expressir/model/data_types/generic'
22
+ require 'expressir/model/data_types/integer'
23
+ require 'expressir/model/data_types/list'
24
+ require 'expressir/model/data_types/logical'
25
+ require 'expressir/model/data_types/number'
26
+ require 'expressir/model/data_types/real'
27
+ require 'expressir/model/data_types/set'
28
+ require 'expressir/model/data_types/select'
29
+ require 'expressir/model/data_types/string'
30
+ require 'expressir/model/declarations/attribute'
31
+ require 'expressir/model/declarations/constant'
32
+ require 'expressir/model/declarations/entity'
33
+ require 'expressir/model/declarations/function'
34
+ require 'expressir/model/declarations/interface'
35
+ require 'expressir/model/declarations/interface_item'
36
+ require 'expressir/model/declarations/interfaced_item'
37
+ require 'expressir/model/declarations/parameter'
38
+ require 'expressir/model/declarations/procedure'
39
+ require 'expressir/model/declarations/remark_item'
40
+ require 'expressir/model/declarations/rule'
41
+ require 'expressir/model/declarations/schema'
42
+ require 'expressir/model/declarations/schema_version'
43
+ require 'expressir/model/declarations/schema_version_item'
44
+ require 'expressir/model/declarations/subtype_constraint'
45
+ require 'expressir/model/declarations/type'
46
+ require 'expressir/model/declarations/unique_rule'
47
+ require 'expressir/model/declarations/variable'
48
+ require 'expressir/model/declarations/where_rule'
26
49
  require 'expressir/model/expressions/aggregate_initializer'
27
- require 'expressir/model/expressions/aggregate_item'
50
+ require 'expressir/model/expressions/aggregate_initializer_item'
28
51
  require 'expressir/model/expressions/binary_expression'
29
- require 'expressir/model/expressions/call'
30
- require 'expressir/model/expressions/attribute_reference'
31
52
  require 'expressir/model/expressions/entity_constructor'
32
- require 'expressir/model/expressions/group_reference'
33
- require 'expressir/model/expressions/index_reference'
53
+ require 'expressir/model/expressions/function_call'
34
54
  require 'expressir/model/expressions/interval'
35
55
  require 'expressir/model/expressions/query_expression'
36
- require 'expressir/model/expressions/simple_reference'
37
56
  require 'expressir/model/expressions/unary_expression'
38
57
  require 'expressir/model/literals/binary'
39
58
  require 'expressir/model/literals/integer'
40
59
  require 'expressir/model/literals/logical'
41
60
  require 'expressir/model/literals/real'
42
61
  require 'expressir/model/literals/string'
62
+ require 'expressir/model/references/attribute_reference'
63
+ require 'expressir/model/references/group_reference'
64
+ require 'expressir/model/references/index_reference'
65
+ require 'expressir/model/references/simple_reference'
43
66
  require 'expressir/model/statements/alias'
44
67
  require 'expressir/model/statements/assignment'
45
- require 'expressir/model/statements/call'
46
68
  require 'expressir/model/statements/case'
47
69
  require 'expressir/model/statements/case_action'
48
70
  require 'expressir/model/statements/compound'
49
71
  require 'expressir/model/statements/escape'
50
72
  require 'expressir/model/statements/if'
51
73
  require 'expressir/model/statements/null'
74
+ require 'expressir/model/statements/procedure_call'
52
75
  require 'expressir/model/statements/repeat'
53
76
  require 'expressir/model/statements/return'
54
77
  require 'expressir/model/statements/skip'
55
- require 'expressir/model/types/aggregate'
56
- require 'expressir/model/types/array'
57
- require 'expressir/model/types/bag'
58
- require 'expressir/model/types/binary'
59
- require 'expressir/model/types/boolean'
60
- require 'expressir/model/types/enumeration'
61
- require 'expressir/model/types/generic_entity'
62
- require 'expressir/model/types/generic'
63
- require 'expressir/model/types/integer'
64
- require 'expressir/model/types/list'
65
- require 'expressir/model/types/logical'
66
- require 'expressir/model/types/number'
67
- require 'expressir/model/types/real'
68
- require 'expressir/model/types/set'
69
- require 'expressir/model/types/select'
70
- require 'expressir/model/types/string'
78
+ require 'expressir/model/supertype_expressions/binary_supertype_expression'
79
+ require 'expressir/model/supertype_expressions/oneof_supertype_expression'
@@ -1,9 +1,13 @@
1
1
  module Expressir
2
2
  module Model
3
+ # Cache content object with Expressir version
3
4
  class Cache < ModelElement
4
- model_attr_accessor :version
5
- model_attr_accessor :content
5
+ model_attr_accessor :version, 'String'
6
+ model_attr_accessor :content, 'ModelElement'
6
7
 
8
+ # @param [Hash] options
9
+ # @option options [String] :version
10
+ # @option options [ModelElement] :content
7
11
  def initialize(options = {})
8
12
  @version = options[:version]
9
13
  @content = options[:content]
@@ -0,0 +1,9 @@
1
+ module Expressir
2
+ module Model
3
+ # Specified in ISO 10303-11:2004
4
+ # - section 8 Data types
5
+ # @abstract
6
+ class DataType < ModelElement
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,31 @@
1
+ module Expressir
2
+ module Model
3
+ module DataTypes
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 9.5.3.1 Aggregate data type
6
+ class Aggregate < DataType
7
+ include Identifier
8
+
9
+ model_attr_accessor :base_type, 'Type'
10
+
11
+ # @param [Hash] options
12
+ # @option (see Identifier#initialize_identifier)
13
+ # @option options [Type] :base_type
14
+ def initialize(options = {})
15
+ initialize_identifier(options)
16
+
17
+ @base_type = options[:base_type]
18
+
19
+ super
20
+ end
21
+
22
+ # @return [Array<Declaration>]
23
+ def children
24
+ [
25
+ *remark_items
26
+ ]
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,31 @@
1
+ module Expressir
2
+ module Model
3
+ module DataTypes
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 8.2.1 Array data type
6
+ class Array < DataType
7
+ model_attr_accessor :bound1, 'Expression'
8
+ model_attr_accessor :bound2, 'Expression'
9
+ model_attr_accessor :optional, '::Boolean'
10
+ model_attr_accessor :unique, '::Boolean'
11
+ model_attr_accessor :base_type, 'DataType'
12
+
13
+ # @param [Hash] options
14
+ # @option options [Expression] :bound1
15
+ # @option options [Expression] :bound2
16
+ # @option options [::Boolean] :optional
17
+ # @option options [::Boolean] :unique
18
+ # @option options [DataType] :base_type
19
+ def initialize(options = {})
20
+ @bound1 = options[:bound1]
21
+ @bound2 = options[:bound2]
22
+ @optional = options[:optional]
23
+ @unique = options[:unique]
24
+ @base_type = options[:base_type]
25
+
26
+ super
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,25 @@
1
+ module Expressir
2
+ module Model
3
+ module DataTypes
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 8.2.3 Bag data type
6
+ class Bag < DataType
7
+ model_attr_accessor :bound1, 'Expression'
8
+ model_attr_accessor :bound2, 'Expression'
9
+ model_attr_accessor :base_type, 'DataType'
10
+
11
+ # @param [Hash] options
12
+ # @option options [Expression] :bound1
13
+ # @option options [Expression] :bound2
14
+ # @option options [DataType] :base_type
15
+ def initialize(options = {})
16
+ @bound1 = options[:bound1]
17
+ @bound2 = options[:bound2]
18
+ @base_type = options[:base_type]
19
+
20
+ super
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,22 @@
1
+ module Expressir
2
+ module Model
3
+ module DataTypes
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 8.1.7 Binary data type
6
+ class Binary < DataType
7
+ model_attr_accessor :width, 'Expression'
8
+ model_attr_accessor :fixed, '::Boolean'
9
+
10
+ # @param [Hash] options
11
+ # @option options [Expression] :width
12
+ # @option options [::Boolean] :fixed
13
+ def initialize(options = {})
14
+ @width = options[:width]
15
+ @fixed = options[:fixed]
16
+
17
+ super
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,10 @@
1
+ module Expressir
2
+ module Model
3
+ module DataTypes
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 8.1.5 Boolean data type
6
+ class Boolean < DataType
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,25 @@
1
+ module Expressir
2
+ module Model
3
+ module DataTypes
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 8.4.1 Enumeration data type
6
+ class Enumeration < DataType
7
+ model_attr_accessor :extensible, '::Boolean'
8
+ model_attr_accessor :based_on, 'Reference'
9
+ model_attr_accessor :items, '::Array<EnumerationItem>'
10
+
11
+ # @param [Hash] options
12
+ # @option options [::Boolean] :extensible
13
+ # @option options [Reference] :based_on
14
+ # @option options [::Array<EnumerationItem>] :items
15
+ def initialize(options = {})
16
+ @extensible = options[:extensible]
17
+ @based_on = options[:based_on]
18
+ @items = options[:items] || []
19
+
20
+ super
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,26 @@
1
+ module Expressir
2
+ module Model
3
+ module DataTypes
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 8.4.1 Enumeration data type
6
+ class EnumerationItem < ModelElement
7
+ include Identifier
8
+
9
+ # @param [Hash] options
10
+ # @option (see Identifier#initialize_identifier)
11
+ def initialize(options = {})
12
+ initialize_identifier(options)
13
+
14
+ super
15
+ end
16
+
17
+ # @return [Array<Declaration>]
18
+ def children
19
+ [
20
+ *remark_items
21
+ ]
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ module Expressir
2
+ module Model
3
+ module DataTypes
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 9.5.3.2 Generic data type
6
+ class Generic < DataType
7
+ include Identifier
8
+
9
+ # @param [Hash] options
10
+ # @option (see Identifier#initialize_identifier)
11
+ def initialize(options = {})
12
+ initialize_identifier(options)
13
+
14
+ super
15
+ end
16
+
17
+ # @return [Array<Declaration>]
18
+ def children
19
+ [
20
+ *remark_items
21
+ ]
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ module Expressir
2
+ module Model
3
+ module DataTypes
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 9.5.3.3 Generic entity data type
6
+ class GenericEntity < DataType
7
+ include Identifier
8
+
9
+ # @param [Hash] options
10
+ # @option (see Identifier#initialize_identifier)
11
+ def initialize(options = {})
12
+ initialize_identifier(options)
13
+
14
+ super
15
+ end
16
+ end
17
+
18
+ # @return [Array<Declaration>]
19
+ def children
20
+ [
21
+ *remark_items
22
+ ]
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,10 @@
1
+ module Expressir
2
+ module Model
3
+ module DataTypes
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 8.1.3 Integer data type
6
+ class Integer < DataType
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,28 @@
1
+ module Expressir
2
+ module Model
3
+ module DataTypes
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 8.2.2 List data type
6
+ class List < DataType
7
+ model_attr_accessor :bound1, 'Expression'
8
+ model_attr_accessor :bound2, 'Expression'
9
+ model_attr_accessor :unique, '::Boolean'
10
+ model_attr_accessor :base_type, 'DataType'
11
+
12
+ # @param [Hash] options
13
+ # @option options [Expression] :bound1
14
+ # @option options [Expression] :bound2
15
+ # @option options [::Boolean] :unique
16
+ # @option options [DataType] :base_type
17
+ def initialize(options = {})
18
+ @bound1 = options[:bound1]
19
+ @bound2 = options[:bound2]
20
+ @unique = options[:unique]
21
+ @base_type = options[:base_type]
22
+
23
+ super
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,10 @@
1
+ module Expressir
2
+ module Model
3
+ module DataTypes
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 8.1.4 Logical data type
6
+ class Logical < DataType
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module Expressir
2
+ module Model
3
+ module DataTypes
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 8.1.1 Number data type
6
+ class Number < DataType
7
+ end
8
+ end
9
+ end
10
+ end