expressir 0.2.26-x86-linux → 1.2.0-x86-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,24 +1,28 @@
1
1
  module Expressir
2
2
  module Model
3
3
  module Statements
4
- class Alias < ModelElement
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 13.2 Alias statement
6
+ class Alias < Statement
5
7
  include Identifier
6
8
 
7
- model_attr_accessor :expression
8
- model_attr_accessor :statements
9
+ model_attr_accessor :expression, 'Expression'
10
+ model_attr_accessor :statements, 'Array<Statement>'
9
11
 
12
+ # @param [Hash] options
13
+ # @option (see Identifier#initialize_identifier)
14
+ # @option options [Expression] :expression
15
+ # @option options [Array<Statement>] :statements
10
16
  def initialize(options = {})
11
- @id = options[:id]
12
- @remarks = options.fetch(:remarks, [])
13
- @remark_items = options.fetch(:remark_items, [])
14
- @source = options[:source]
17
+ initialize_identifier(options)
15
18
 
16
19
  @expression = options[:expression]
17
- @statements = options.fetch(:statements, [])
20
+ @statements = options[:statements] || []
18
21
 
19
22
  super
20
23
  end
21
24
 
25
+ # @return [Array<Declaration>]
22
26
  def children
23
27
  [
24
28
  self,
@@ -1,10 +1,15 @@
1
1
  module Expressir
2
2
  module Model
3
3
  module Statements
4
- class Assignment < ModelElement
5
- model_attr_accessor :ref
6
- model_attr_accessor :expression
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 13.3 Assignment
6
+ class Assignment < Statement
7
+ model_attr_accessor :ref, 'Reference'
8
+ model_attr_accessor :expression, 'Expression'
7
9
 
10
+ # @param [Hash] options
11
+ # @option options [Reference] :ref
12
+ # @option options [Expression] :expression
8
13
  def initialize(options = {})
9
14
  @ref = options[:ref]
10
15
  @expression = options[:expression]
@@ -1,14 +1,20 @@
1
1
  module Expressir
2
2
  module Model
3
3
  module Statements
4
- class Case < ModelElement
5
- model_attr_accessor :expression
6
- model_attr_accessor :actions
7
- model_attr_accessor :otherwise_statement
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 13.4 Case statement
6
+ class Case < Statement
7
+ model_attr_accessor :expression, 'Expression'
8
+ model_attr_accessor :actions, 'Array<CaseAction>'
9
+ model_attr_accessor :otherwise_statement, 'Statement'
8
10
 
11
+ # @param [Hash] options
12
+ # @option options [Expression] :expression
13
+ # @option options [Array<CaseAction>] :statements
14
+ # @option options [Statement] :otherwise_statement
9
15
  def initialize(options = {})
10
16
  @expression = options[:expression]
11
- @actions = options.fetch(:actions, [])
17
+ @actions = options[:actions] || []
12
18
  @otherwise_statement = options[:otherwise_statement]
13
19
 
14
20
  super
@@ -1,12 +1,17 @@
1
1
  module Expressir
2
2
  module Model
3
3
  module Statements
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 13.4 Case statement
4
6
  class CaseAction < ModelElement
5
- model_attr_accessor :labels
6
- model_attr_accessor :statement
7
+ model_attr_accessor :labels, 'Array<Expression>'
8
+ model_attr_accessor :statement, 'Statement'
7
9
 
10
+ # @param [Hash] options
11
+ # @option options [Array<Expression>] :labels
12
+ # @option options [Statement] :statement
8
13
  def initialize(options = {})
9
- @labels = options.fetch(:labels, [])
14
+ @labels = options[:labels] || []
10
15
  @statement = options[:statement]
11
16
 
12
17
  super
@@ -1,11 +1,15 @@
1
1
  module Expressir
2
2
  module Model
3
3
  module Statements
4
- class Compound < ModelElement
5
- model_attr_accessor :statements
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 13.5 Compound statement
6
+ class Compound < Statement
7
+ model_attr_accessor :statements, 'Array<Statement>'
6
8
 
9
+ # @param [Hash] options
10
+ # @option options [Array<Statement>] :statements
7
11
  def initialize(options = {})
8
- @statements = options.fetch(:statements, [])
12
+ @statements = options[:statements] || []
9
13
 
10
14
  super
11
15
  end
@@ -1,7 +1,9 @@
1
1
  module Expressir
2
2
  module Model
3
3
  module Statements
4
- class Escape < ModelElement
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 13.6 Escape statement
6
+ class Escape < Statement
5
7
  end
6
8
  end
7
9
  end
@@ -1,15 +1,21 @@
1
1
  module Expressir
2
2
  module Model
3
3
  module Statements
4
- class If < ModelElement
5
- model_attr_accessor :expression
6
- model_attr_accessor :statements
7
- model_attr_accessor :else_statements
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 13.7 If ... Then ... Else statement
6
+ class If < Statement
7
+ model_attr_accessor :expression, 'Expression'
8
+ model_attr_accessor :statements, 'Array<Statement>'
9
+ model_attr_accessor :else_statements, 'Array<Statement>'
8
10
 
11
+ # @param [Hash] options
12
+ # @option options [Expression] :expression
13
+ # @option options [Array<Statement>] :statements
14
+ # @option options [Array<Statement>] :else_statements
9
15
  def initialize(options = {})
10
16
  @expression = options[:expression]
11
- @statements = options.fetch(:statements, [])
12
- @else_statements = options.fetch(:else_statements, [])
17
+ @statements = options[:statements] || []
18
+ @else_statements = options[:else_statements] || []
13
19
 
14
20
  super
15
21
  end
@@ -1,7 +1,9 @@
1
1
  module Expressir
2
2
  module Model
3
3
  module Statements
4
- class Null < ModelElement
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 13.1 Null (statement)
6
+ class Null < Statement
5
7
  end
6
8
  end
7
9
  end
@@ -0,0 +1,22 @@
1
+ module Expressir
2
+ module Model
3
+ module Statements
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 13.8 Procedure call statement
6
+ class ProcedureCall < Statement
7
+ model_attr_accessor :procedure, 'Reference'
8
+ model_attr_accessor :parameters, 'Array<Expression>'
9
+
10
+ # @param [Hash] options
11
+ # @option options [Reference] :procedure
12
+ # @option options [Array<Expression>] :parameters
13
+ def initialize(options = {})
14
+ @procedure = options[:procedure]
15
+ @parameters = options[:parameters] || []
16
+
17
+ super
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -1,32 +1,40 @@
1
1
  module Expressir
2
2
  module Model
3
3
  module Statements
4
- class Repeat < ModelElement
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 13.9 Repeat statement
6
+ class Repeat < Statement
5
7
  include Identifier
6
8
 
7
- model_attr_accessor :bound1
8
- model_attr_accessor :bound2
9
- model_attr_accessor :increment
10
- model_attr_accessor :while_expression
11
- model_attr_accessor :until_expression
12
- model_attr_accessor :statements
9
+ model_attr_accessor :bound1, 'Expression'
10
+ model_attr_accessor :bound2, 'Expression'
11
+ model_attr_accessor :increment, 'Expression'
12
+ model_attr_accessor :while_expression, 'Expression'
13
+ model_attr_accessor :until_expression, 'Expression'
14
+ model_attr_accessor :statements, 'Array<Statement>'
13
15
 
16
+ # @param [Hash] options
17
+ # @option (see Identifier#initialize_identifier)
18
+ # @option options [Expression] :bound1
19
+ # @option options [Expression] :bound2
20
+ # @option options [Expression] :increment
21
+ # @option options [Expression] :while_expression
22
+ # @option options [Expression] :until_expression
23
+ # @option options [Array<Statement>] :statements
14
24
  def initialize(options = {})
15
- @id = options[:id]
16
- @remarks = options.fetch(:remarks, [])
17
- @remark_items = options.fetch(:remark_items, [])
18
- @source = options[:source]
25
+ initialize_identifier(options)
19
26
 
20
27
  @bound1 = options[:bound1]
21
28
  @bound2 = options[:bound2]
22
29
  @increment = options[:increment]
23
30
  @while_expression = options[:while_expression]
24
31
  @until_expression = options[:until_expression]
25
- @statements = options.fetch(:statements, [])
32
+ @statements = options[:statements] || []
26
33
 
27
34
  super
28
35
  end
29
36
 
37
+ # @return [Array<Declaration>]
30
38
  def children
31
39
  [
32
40
  self,
@@ -1,9 +1,13 @@
1
1
  module Expressir
2
2
  module Model
3
3
  module Statements
4
- class Return < ModelElement
5
- model_attr_accessor :expression
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 13.10 Return statement
6
+ class Return < Statement
7
+ model_attr_accessor :expression, 'Expression'
6
8
 
9
+ # @param [Hash] options
10
+ # @option options [Expression] :expression
7
11
  def initialize(options = {})
8
12
  @expression = options[:expression]
9
13
 
@@ -1,7 +1,9 @@
1
1
  module Expressir
2
2
  module Model
3
3
  module Statements
4
- class Skip < ModelElement
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 13.11 Skip statement
6
+ class Skip < Statement
5
7
  end
6
8
  end
7
9
  end
@@ -0,0 +1,9 @@
1
+ module Expressir
2
+ module Model
3
+ # Specified in ISO 10303-11:2004
4
+ # - section 9.2.5 Subtype/supertype constraints
5
+ # @abstract
6
+ class SupertypeExpression < ModelElement
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,29 @@
1
+ module Expressir
2
+ module Model
3
+ module SupertypeExpressions
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 9.2.5.3 ANDOR
6
+ # - section 9.2.5.4 AND
7
+ class BinarySupertypeExpression < SupertypeExpression
8
+ AND = :AND
9
+ ANDOR = :ANDOR
10
+
11
+ model_attr_accessor :operator, ':AND, :ANDOR'
12
+ model_attr_accessor :operand1, 'SupertypeExpression'
13
+ model_attr_accessor :operand2, 'SupertypeExpression'
14
+
15
+ # @param [Hash] options
16
+ # @option options [:AND, :ANDOR] :operator
17
+ # @option options [SupertypeExpression] :operand1
18
+ # @option options [SupertypeExpression] :operand2
19
+ def initialize(options = {})
20
+ @operator = options[:operator]
21
+ @operand1 = options[:operand1]
22
+ @operand2 = options[:operand2]
23
+
24
+ super
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,19 @@
1
+ module Expressir
2
+ module Model
3
+ module SupertypeExpressions
4
+ # Specified in ISO 10303-11:2004
5
+ # - section 9.2.5.2 ONEOF
6
+ class OneofSupertypeExpression < SupertypeExpression
7
+ model_attr_accessor :operands, 'Array<SupertypeExpression>'
8
+
9
+ # @param [Hash] options
10
+ # @option options [Array<SupertypeExpression>] :operands
11
+ def initialize(options = {})
12
+ @operands = options[:operands]
13
+
14
+ super
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -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,3 +1,3 @@
1
1
  module Expressir
2
- VERSION = "0.2.26".freeze
2
+ VERSION = "1.2.0".freeze
3
3
  end
data/lib/expressir.rb CHANGED
@@ -2,7 +2,6 @@ require "expressir/version"
2
2
 
3
3
  require "expressir/cli"
4
4
  require "expressir/config"
5
- require "expressir/express"
6
5
 
7
6
  module Expressir
8
7
  class Error < StandardError; end
@@ -296,7 +296,7 @@ require "rake/extensiontask"
296
296
 
297
297
  Rake::ExtensionTask.new("express_parser", GEMSPEC) do |ext|
298
298
  ext.ext_dir = "ext/express-parser"
299
- ext.lib_dir = File.join(*['lib', 'expressir', 'express_exp', ENV['FAT_DIR']].compact)
299
+ ext.lib_dir = File.join(*['lib', 'expressir', 'express', ENV['FAT_DIR']].compact)
300
300
  ext.config_options << ENV['EXTOPTS']
301
301
  ext.cross_compile = true
302
302
  ext.cross_platform = CROSS_RUBIES.map(&:platform).uniq
@@ -1,10 +1,10 @@
1
1
  require "yaml"
2
2
  require "tempfile"
3
3
  require "spec_helper"
4
- require "expressir/express_exp/parser"
5
- require "expressir/express_exp/cache"
4
+ require "expressir/express/parser"
5
+ require "expressir/express/cache"
6
6
 
7
- RSpec.describe Expressir::ExpressExp::Cache do
7
+ RSpec.describe Expressir::Express::Cache do
8
8
  TEST_VERSION = "0.0.0"
9
9
 
10
10
  describe ".to_file" do
@@ -14,7 +14,7 @@ RSpec.describe Expressir::ExpressExp::Cache do
14
14
  repository = Expressir::Model::Repository.new
15
15
 
16
16
  begin
17
- Expressir::ExpressExp::Cache.to_file(temp_file, repository, test_overwrite_version: TEST_VERSION)
17
+ Expressir::Express::Cache.to_file(temp_file, repository, test_overwrite_version: TEST_VERSION)
18
18
 
19
19
  size = File.size(temp_file)
20
20
 
@@ -33,9 +33,9 @@ RSpec.describe Expressir::ExpressExp::Cache do
33
33
  repository = Expressir::Model::Repository.new
34
34
 
35
35
  begin
36
- Expressir::ExpressExp::Cache.to_file(temp_file, repository, test_overwrite_version: TEST_VERSION)
36
+ Expressir::Express::Cache.to_file(temp_file, repository, test_overwrite_version: TEST_VERSION)
37
37
 
38
- result = Expressir::ExpressExp::Cache.from_file(temp_file, test_overwrite_version: TEST_VERSION)
38
+ result = Expressir::Express::Cache.from_file(temp_file, test_overwrite_version: TEST_VERSION)
39
39
 
40
40
  expect(result).to be_instance_of(Expressir::Model::Repository)
41
41
  ensure
@@ -50,11 +50,11 @@ RSpec.describe Expressir::ExpressExp::Cache do
50
50
  repository = Expressir::Model::Repository.new
51
51
 
52
52
  begin
53
- Expressir::ExpressExp::Cache.to_file(temp_file, repository, test_overwrite_version: TEST_VERSION)
53
+ Expressir::Express::Cache.to_file(temp_file, repository, test_overwrite_version: TEST_VERSION)
54
54
 
55
55
  expect do
56
- Expressir::ExpressExp::Cache.from_file(temp_file)
57
- end.to raise_error(Expressir::ExpressExp::CacheLoadError)
56
+ Expressir::Express::Cache.from_file(temp_file)
57
+ end.to raise_error(Expressir::Error)
58
58
  ensure
59
59
  temp_file.close
60
60
  temp_file.unlink