expressir 0.2.24-x86-mingw32 → 1.1.0-x86-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 (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.so +0 -0
  13. data/lib/expressir/{express_exp → express}/2.5/express_parser.so +0 -0
  14. data/lib/expressir/{express_exp → express}/2.6/express_parser.so +0 -0
  15. data/lib/expressir/{express_exp → express}/2.7/express_parser.so +0 -0
  16. data/lib/expressir/{express_exp → express}/3.0/express_parser.so +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,27 +0,0 @@
1
- module Expressir
2
- module ExpressExp
3
- module HyperlinkFormatter
4
- def format_expressions_simple_reference(node)
5
- return node.id if node.parent.is_a? Model::Expressions::AttributeReference
6
-
7
- # skip hyperlink if target node can't be found
8
- target_node = if node.parent.is_a? Model::InterfaceItem
9
- node.find("#{node.parent.parent.schema.id}.#{node.parent.ref.id}")
10
- else
11
- node.find(node.id)
12
- end
13
- return node.id unless target_node
14
-
15
- # skip hyperlink for implicit scopes
16
- return node.id if target_node.is_a? Model::Statements::Alias or target_node.is_a? Model::Statements::Repeat or target_node.is_a? Model::Expressions::QueryExpression
17
-
18
- # skip hyperlink if this node and target node are in the same main item
19
- node_path_parts = node.path.split(".")
20
- target_node_path_parts = target_node.path.split(".")
21
- return node.id if node_path_parts[0..1] == target_node_path_parts[0..1]
22
-
23
- "{{{<<express:#{target_node.path},#{node.id}>>}}}"
24
- end
25
- end
26
- end
27
- end
@@ -1,64 +0,0 @@
1
- begin
2
- RUBY_VERSION =~ /(\d+\.\d+)/
3
- require_relative "#{$1}/express_parser"
4
- rescue LoadError
5
- require_relative "express_parser"
6
- end
7
- require 'expressir/express_exp/visitor'
8
-
9
- =begin
10
- char_stream = Antlr4::Runtime::CharStreams.from_string(input, 'String')
11
- lexer = ::ExpressParser::Lexer.new(char_stream)
12
- token_stream = Antlr4::Runtime::CommonTokenStream.new(lexer)
13
- parser = ::ExpressParser::Parser.new(token_stream)
14
-
15
- # don't attempt to recover from any parsing error
16
- parser.instance_variable_set(:@_err_handler, Antlr4::Runtime::BailErrorStrategy.new)
17
-
18
- parse_tree = parser.syntax()
19
-
20
- visitor = Visitor.new(token_stream)
21
- repo = visitor.visit(parse_tree)
22
- =end
23
-
24
- module Expressir
25
- module ExpressExp
26
- class Parser
27
- def self.from_file(file, options = {})
28
- input = File.read(file)
29
-
30
- parser = ::ExpressParser::Parser.parse(input)
31
-
32
- parse_tree = parser.syntax()
33
-
34
- visitor = Visitor.new(parser.tokens, options)
35
- repository = visitor.visit(parse_tree)
36
-
37
- repository.schemas.each do |schema|
38
- schema.file = file.to_s
39
- end
40
-
41
- repository
42
- end
43
-
44
- def self.from_files(files, options = {})
45
- schemas = files.each_with_index.map do |file, i|
46
- # start = Time.now
47
- repository = self.from_file(file, options)
48
- # STDERR.puts "#{i+1}/#{files.length} #{file} #{Time.now - start}"
49
- repository.schemas
50
- end.flatten
51
-
52
- repository = Model::Repository.new({
53
- schemas: schemas
54
- })
55
-
56
- repository.schemas.each do |schema|
57
- schema.parent = repository
58
- end
59
-
60
- repository
61
- end
62
- end
63
- end
64
- 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,15 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Expressions
4
- class SimpleReference < ModelElement
5
- model_attr_accessor :id
6
-
7
- def initialize(options = {})
8
- @id = options[:id]
9
-
10
- super
11
- end
12
- end
13
- end
14
- end
15
- 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