expressir 0.2.26-x64-mingw32 → 1.2.0-x64-mingw32

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 (215) 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/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/3.0/express_parser.so +0 -0
  165. data/lib/expressir/express_exp/cache.rb +0 -48
  166. data/lib/expressir/express_exp/schema_head_formatter.rb +0 -9
  167. data/lib/expressir/express_parser.rb +0 -30
  168. data/lib/expressir/model/attribute.rb +0 -38
  169. data/lib/expressir/model/constant.rb +0 -28
  170. data/lib/expressir/model/entity.rb +0 -42
  171. data/lib/expressir/model/enumeration_item.rb +0 -22
  172. data/lib/expressir/model/expressions/aggregate_item.rb +0 -17
  173. data/lib/expressir/model/expressions/attribute_reference.rb +0 -17
  174. data/lib/expressir/model/expressions/call.rb +0 -17
  175. data/lib/expressir/model/expressions/group_reference.rb +0 -17
  176. data/lib/expressir/model/expressions/index_reference.rb +0 -19
  177. data/lib/expressir/model/expressions/simple_reference.rb +0 -19
  178. data/lib/expressir/model/function.rb +0 -57
  179. data/lib/expressir/model/interface.rb +0 -20
  180. data/lib/expressir/model/interface_item.rb +0 -15
  181. data/lib/expressir/model/interfaced_item.rb +0 -27
  182. data/lib/expressir/model/parameter.rb +0 -28
  183. data/lib/expressir/model/procedure.rb +0 -55
  184. data/lib/expressir/model/remark_item.rb +0 -15
  185. data/lib/expressir/model/rule.rb +0 -60
  186. data/lib/expressir/model/schema.rb +0 -100
  187. data/lib/expressir/model/statements/call.rb +0 -17
  188. data/lib/expressir/model/subtype_constraint.rb +0 -32
  189. data/lib/expressir/model/type.rb +0 -37
  190. data/lib/expressir/model/types/aggregate.rb +0 -28
  191. data/lib/expressir/model/types/array.rb +0 -23
  192. data/lib/expressir/model/types/bag.rb +0 -19
  193. data/lib/expressir/model/types/binary.rb +0 -17
  194. data/lib/expressir/model/types/boolean.rb +0 -8
  195. data/lib/expressir/model/types/enumeration.rb +0 -21
  196. data/lib/expressir/model/types/generic.rb +0 -24
  197. data/lib/expressir/model/types/generic_entity.rb +0 -24
  198. data/lib/expressir/model/types/integer.rb +0 -8
  199. data/lib/expressir/model/types/list.rb +0 -21
  200. data/lib/expressir/model/types/logical.rb +0 -8
  201. data/lib/expressir/model/types/number.rb +0 -8
  202. data/lib/expressir/model/types/real.rb +0 -15
  203. data/lib/expressir/model/types/select.rb +0 -23
  204. data/lib/expressir/model/types/set.rb +0 -19
  205. data/lib/expressir/model/types/string.rb +0 -17
  206. data/lib/expressir/model/unique.rb +0 -26
  207. data/lib/expressir/model/variable.rb +0 -28
  208. data/lib/expressir/model/where.rb +0 -26
  209. data/lib/expressir/parser/owl_parser.rb +0 -8
  210. data/lib/expressir/parser.rb +0 -6
  211. data/original/examples/syntax/multiple.yaml +0 -198
  212. data/original/examples/syntax/single.yaml +0 -15
  213. data/spec/acceptance/express_to_owl_spec.rb +0 -18
  214. data/spec/expressir/express/repository_spec.rb +0 -25
  215. data/spec/expressir/express_exp/formatter_spec.rb +0 -127
@@ -1,32 +0,0 @@
1
- require "expressir/express/model_element"
2
-
3
- module Expressir
4
- module Express
5
- class WhereRule < ModelElement
6
- attr_accessor :name, :expression
7
-
8
- def initialize(options = {})
9
- @name = nil
10
- @options = options
11
- end
12
-
13
- def parse
14
- document = @options.fetch(:where, nil)
15
- extract_where_attributes(document) if document
16
-
17
- self
18
- end
19
-
20
- def self.parse(document)
21
- new(document: document).parse
22
- end
23
-
24
- private
25
-
26
- def extract_where_attributes(document)
27
- @name = document.attributes["label"].to_s
28
- @expression = document.attributes["expression"]
29
- end
30
- end
31
- end
32
- end
@@ -1,11 +0,0 @@
1
- require "nokogiri"
2
- require "expressir/express/repository"
3
- require "expressir/express/schema_definition"
4
-
5
- module Expressir
6
- module Express
7
- def self.from_xml(file)
8
- Expressir::Express::Repository.from_xml(file)
9
- end
10
- end
11
- end
@@ -1,48 +0,0 @@
1
- require 'yaml'
2
- require 'zlib'
3
- require 'expressir/model'
4
-
5
- module Expressir
6
- module ExpressExp
7
- class Cache
8
- def self.to_file(file, content, options = {})
9
- root_path = options[:root_path]
10
- test_overwrite_version = options[:test_overwrite_version] # don't use, only for tests
11
-
12
- version = test_overwrite_version || VERSION
13
-
14
- cache = Model::Cache.new({
15
- version: version,
16
- content: content
17
- })
18
-
19
- hash = cache.to_hash(root_path: root_path, skip_empty: true)
20
- yaml = YAML.dump(hash)
21
- yaml_compressed = Zlib::Deflate.deflate(yaml)
22
-
23
- File.binwrite(file, yaml_compressed)
24
- end
25
-
26
- def self.from_file(file, options = {})
27
- root_path = options[:root_path]
28
- test_overwrite_version = options[:test_overwrite_version] # don't use, only for tests
29
-
30
- version = test_overwrite_version || VERSION
31
-
32
- yaml_compressed = File.binread(file)
33
- yaml = Zlib::Inflate.inflate(yaml_compressed)
34
- hash = YAML.load(yaml)
35
- cache = Model::ModelElement.from_hash(hash, root_path: root_path)
36
-
37
- if cache.version != version
38
- raise CacheLoadError.new("Cache version mismatch, cache version is #{cache.version}, Expressir version is #{version}")
39
- end
40
-
41
- cache.content
42
- end
43
- end
44
-
45
- class CacheLoadError < StandardError
46
- end
47
- end
48
- end
@@ -1,9 +0,0 @@
1
- module Expressir
2
- module ExpressExp
3
- module SchemaHeadFormatter
4
- def format_schema(node)
5
- format_schema_head(node)
6
- end
7
- end
8
- end
9
- end
@@ -1,30 +0,0 @@
1
- require "expressir/parser"
2
-
3
- module Expressir
4
- class ExpressParser
5
- def initialize(file, options)
6
- @file = file
7
- @options = options
8
- end
9
-
10
- def to_owl
11
- owl_parser.parse(express_xml, options)
12
- end
13
-
14
- def self.to_owl(file, **options)
15
- new(file, options).to_owl
16
- end
17
-
18
- private
19
-
20
- attr_reader :file, :options
21
-
22
- def owl_parser
23
- Expressir::Parser::OwlParser
24
- end
25
-
26
- def express_xml
27
- Expressir::Express.from_xml(file)
28
- end
29
- end
30
- end
@@ -1,38 +0,0 @@
1
- module Expressir
2
- module Model
3
- class Attribute < ModelElement
4
- include Identifier
5
-
6
- EXPLICIT = :EXPLICIT
7
- DERIVED = :DERIVED
8
- INVERSE = :INVERSE
9
-
10
- model_attr_accessor :kind
11
- model_attr_accessor :supertype_attribute
12
- model_attr_accessor :optional
13
- model_attr_accessor :type
14
- model_attr_accessor :expression
15
-
16
- def initialize(options = {})
17
- @id = options[:id]
18
- @remarks = options.fetch(:remarks, [])
19
- @remark_items = options.fetch(:remark_items, [])
20
- @source = options[:source]
21
-
22
- @kind = options[:kind]
23
- @supertype_attribute = options[:supertype_attribute]
24
- @optional = options[:optional]
25
- @type = options[:type]
26
- @expression = options[:expression]
27
-
28
- super
29
- end
30
-
31
- def children
32
- [
33
- *remark_items
34
- ]
35
- end
36
- end
37
- end
38
- end
@@ -1,28 +0,0 @@
1
- module Expressir
2
- module Model
3
- class Constant < ModelElement
4
- include Identifier
5
-
6
- model_attr_accessor :type
7
- model_attr_accessor :expression
8
-
9
- def initialize(options = {})
10
- @id = options[:id]
11
- @remarks = options.fetch(:remarks, [])
12
- @remark_items = options.fetch(:remark_items, [])
13
- @source = options[:source]
14
-
15
- @type = options[:type]
16
- @expression = options[:expression]
17
-
18
- super
19
- end
20
-
21
- def children
22
- [
23
- *remark_items
24
- ]
25
- end
26
- end
27
- end
28
- end
@@ -1,42 +0,0 @@
1
- module Expressir
2
- module Model
3
- class Entity < ModelElement
4
- include Identifier
5
-
6
- model_attr_accessor :abstract
7
- model_attr_accessor :supertype_expression
8
- model_attr_accessor :subtype_of
9
- model_attr_accessor :attributes
10
- model_attr_accessor :unique
11
- model_attr_accessor :where
12
- model_attr_accessor :informal_propositions
13
-
14
- def initialize(options = {})
15
- @id = options[:id]
16
- @remarks = options.fetch(:remarks, [])
17
- @remark_items = options.fetch(:remark_items, [])
18
- @source = options[:source]
19
-
20
- @abstract = options[:abstract]
21
- @supertype_expression = options[:supertype_expression]
22
- @subtype_of = options.fetch(:subtype_of, [])
23
- @attributes = options.fetch(:attributes, [])
24
- @unique = options.fetch(:unique, [])
25
- @where = options.fetch(:where, [])
26
- @informal_propositions = options.fetch(:informal_propositions, [])
27
-
28
- super
29
- end
30
-
31
- def children
32
- [
33
- *attributes,
34
- *unique,
35
- *where,
36
- *informal_propositions,
37
- *remark_items
38
- ]
39
- end
40
- end
41
- end
42
- end
@@ -1,22 +0,0 @@
1
- module Expressir
2
- module Model
3
- class EnumerationItem < ModelElement
4
- include Identifier
5
-
6
- def initialize(options = {})
7
- @id = options[:id]
8
- @remarks = options.fetch(:remarks, [])
9
- @remark_items = options.fetch(:remark_items, [])
10
- @source = options[:source]
11
-
12
- super
13
- end
14
-
15
- def children
16
- [
17
- *remark_items
18
- ]
19
- end
20
- end
21
- end
22
- end
@@ -1,17 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Expressions
4
- class AggregateItem < ModelElement
5
- model_attr_accessor :expression
6
- model_attr_accessor :repetition
7
-
8
- def initialize(options = {})
9
- @expression = options[:expression]
10
- @repetition = options[:repetition]
11
-
12
- super
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Expressions
4
- class AttributeReference < ModelElement
5
- model_attr_accessor :ref
6
- model_attr_accessor :attribute
7
-
8
- def initialize(options = {})
9
- @ref = options[:ref]
10
- @attribute = options[:attribute]
11
-
12
- super
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Expressions
4
- class Call < ModelElement
5
- model_attr_accessor :ref
6
- model_attr_accessor :parameters
7
-
8
- def initialize(options = {})
9
- @ref = options[:ref]
10
- @parameters = options.fetch(:parameters, [])
11
-
12
- super
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Expressions
4
- class GroupReference < ModelElement
5
- model_attr_accessor :ref
6
- model_attr_accessor :entity
7
-
8
- def initialize(options = {})
9
- @ref = options[:ref]
10
- @entity = options[:entity]
11
-
12
- super
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,19 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Expressions
4
- class IndexReference < ModelElement
5
- model_attr_accessor :ref
6
- model_attr_accessor :index1
7
- model_attr_accessor :index2
8
-
9
- def initialize(options = {})
10
- @ref = options[:ref]
11
- @index1 = options[:index1]
12
- @index2 = options[:index2]
13
-
14
- super
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,19 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Expressions
4
- class SimpleReference < ModelElement
5
- model_attr_accessor :id
6
-
7
- model_attr_accessor :base_path
8
-
9
- def initialize(options = {})
10
- @id = options[:id]
11
-
12
- @base_path = options[:base_path]
13
-
14
- super
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,57 +0,0 @@
1
- module Expressir
2
- module Model
3
- class Function < ModelElement
4
- include Identifier
5
-
6
- model_attr_accessor :parameters
7
- model_attr_accessor :return_type
8
- model_attr_accessor :types
9
- model_attr_accessor :entities
10
- model_attr_accessor :subtype_constraints
11
- model_attr_accessor :functions
12
- model_attr_accessor :procedures
13
- model_attr_accessor :constants
14
- model_attr_accessor :variables
15
- model_attr_accessor :statements
16
-
17
- def initialize(options = {})
18
- @id = options[:id]
19
- @remarks = options.fetch(:remarks, [])
20
- @remark_items = options.fetch(:remark_items, [])
21
- @source = options[:source]
22
-
23
- @parameters = options.fetch(:parameters, [])
24
- @return_type = options[:return_type]
25
- @types = options.fetch(:types, [])
26
- @entities = options.fetch(:entities, [])
27
- @subtype_constraints = options.fetch(:subtype_constraints, [])
28
- @functions = options.fetch(:functions, [])
29
- @procedures = options.fetch(:procedures, [])
30
- @constants = options.fetch(:constants, [])
31
- @variables = options.fetch(:variables, [])
32
- @statements = options.fetch(:statements, [])
33
-
34
- super
35
- end
36
-
37
- def enumeration_items
38
- types.flat_map{|x| x.enumeration_items}
39
- end
40
-
41
- def children
42
- [
43
- *parameters,
44
- *types,
45
- *enumeration_items,
46
- *entities,
47
- *subtype_constraints,
48
- *functions,
49
- *procedures,
50
- *constants,
51
- *variables,
52
- *remark_items
53
- ]
54
- end
55
- end
56
- end
57
- end
@@ -1,20 +0,0 @@
1
- module Expressir
2
- module Model
3
- class Interface < ModelElement
4
- USE = :USE
5
- REFERENCE = :REFERENCE
6
-
7
- model_attr_accessor :kind
8
- model_attr_accessor :schema
9
- model_attr_accessor :items
10
-
11
- def initialize(options = {})
12
- @kind = options[:kind]
13
- @schema = options[:schema]
14
- @items = options.fetch(:items, [])
15
-
16
- super
17
- end
18
- end
19
- end
20
- end
@@ -1,15 +0,0 @@
1
- module Expressir
2
- module Model
3
- class InterfaceItem < ModelElement
4
- model_attr_accessor :ref
5
- model_attr_accessor :id
6
-
7
- def initialize(options = {})
8
- @ref = options[:ref]
9
- @id = options[:id]
10
-
11
- super
12
- end
13
- end
14
- end
15
- end
@@ -1,27 +0,0 @@
1
- module Expressir
2
- module Model
3
- class InterfacedItem < ModelElement
4
- model_attr_accessor :id
5
- model_attr_accessor :remarks
6
- model_attr_accessor :remark_items
7
-
8
- model_attr_accessor :base_item
9
-
10
- def initialize(options = {})
11
- @id = options[:id]
12
- @remarks = options.fetch(:remarks, [])
13
- @remark_items = options.fetch(:remark_items, [])
14
-
15
- @base_item = options[:base_item]
16
-
17
- super
18
- end
19
-
20
- def children
21
- [
22
- *remark_items
23
- ]
24
- end
25
- end
26
- end
27
- end
@@ -1,28 +0,0 @@
1
- module Expressir
2
- module Model
3
- class Parameter < ModelElement
4
- include Identifier
5
-
6
- model_attr_accessor :var
7
- model_attr_accessor :type
8
-
9
- def initialize(options = {})
10
- @id = options[:id]
11
- @remarks = options.fetch(:remarks, [])
12
- @remark_items = options.fetch(:remark_items, [])
13
- @source = options[:source]
14
-
15
- @var = options[:var]
16
- @type = options[:type]
17
-
18
- super
19
- end
20
-
21
- def children
22
- [
23
- *remark_items
24
- ]
25
- end
26
- end
27
- end
28
- end
@@ -1,55 +0,0 @@
1
- module Expressir
2
- module Model
3
- class Procedure < ModelElement
4
- include Identifier
5
-
6
- model_attr_accessor :parameters
7
- model_attr_accessor :types
8
- model_attr_accessor :entities
9
- model_attr_accessor :subtype_constraints
10
- model_attr_accessor :functions
11
- model_attr_accessor :procedures
12
- model_attr_accessor :constants
13
- model_attr_accessor :variables
14
- model_attr_accessor :statements
15
-
16
- def initialize(options = {})
17
- @id = options[:id]
18
- @remarks = options.fetch(:remarks, [])
19
- @remark_items = options.fetch(:remark_items, [])
20
- @source = options[:source]
21
-
22
- @parameters = options.fetch(:parameters, [])
23
- @types = options.fetch(:types, [])
24
- @entities = options.fetch(:entities, [])
25
- @subtype_constraints = options.fetch(:subtype_constraints, [])
26
- @functions = options.fetch(:functions, [])
27
- @procedures = options.fetch(:procedures, [])
28
- @constants = options.fetch(:constants, [])
29
- @variables = options.fetch(:variables, [])
30
- @statements = options.fetch(:statements, [])
31
-
32
- super
33
- end
34
-
35
- def enumeration_items
36
- types.flat_map{|x| x.enumeration_items}
37
- end
38
-
39
- def children
40
- [
41
- *parameters,
42
- *types,
43
- *enumeration_items,
44
- *entities,
45
- *subtype_constraints,
46
- *functions,
47
- *procedures,
48
- *constants,
49
- *variables,
50
- *remark_items
51
- ]
52
- end
53
- end
54
- end
55
- end
@@ -1,15 +0,0 @@
1
- module Expressir
2
- module Model
3
- class RemarkItem < ModelElement
4
- model_attr_accessor :id
5
- model_attr_accessor :remarks
6
-
7
- def initialize(options = {})
8
- @id = options[:id]
9
- @remarks = options.fetch(:remarks, [])
10
-
11
- super
12
- end
13
- end
14
- end
15
- end
@@ -1,60 +0,0 @@
1
- module Expressir
2
- module Model
3
- class Rule < ModelElement
4
- include Identifier
5
-
6
- model_attr_accessor :applies_to
7
- model_attr_accessor :types
8
- model_attr_accessor :entities
9
- model_attr_accessor :subtype_constraints
10
- model_attr_accessor :functions
11
- model_attr_accessor :procedures
12
- model_attr_accessor :constants
13
- model_attr_accessor :variables
14
- model_attr_accessor :statements
15
- model_attr_accessor :where
16
- model_attr_accessor :informal_propositions
17
-
18
- def initialize(options = {})
19
- @id = options[:id]
20
- @remarks = options.fetch(:remarks, [])
21
- @remark_items = options.fetch(:remark_items, [])
22
- @source = options[:source]
23
-
24
- @applies_to = options.fetch(:applies_to, [])
25
- @types = options.fetch(:types, [])
26
- @entities = options.fetch(:entities, [])
27
- @subtype_constraints = options.fetch(:subtype_constraints, [])
28
- @functions = options.fetch(:functions, [])
29
- @procedures = options.fetch(:procedures, [])
30
- @constants = options.fetch(:constants, [])
31
- @variables = options.fetch(:variables, [])
32
- @statements = options.fetch(:statements, [])
33
- @where = options.fetch(:where, [])
34
- @informal_propositions = options.fetch(:informal_propositions, [])
35
-
36
- super
37
- end
38
-
39
- def enumeration_items
40
- types.flat_map{|x| x.enumeration_items}
41
- end
42
-
43
- def children
44
- [
45
- *types,
46
- *enumeration_items,
47
- *entities,
48
- *subtype_constraints,
49
- *functions,
50
- *procedures,
51
- *constants,
52
- *variables,
53
- *where,
54
- *informal_propositions,
55
- *remark_items
56
- ]
57
- end
58
- end
59
- end
60
- end