expressir 1.0.0 → 1.2.1

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 (149) hide show
  1. checksums.yaml +4 -4
  2. data/.cross_rubies +6 -18
  3. data/.github/workflows/rake.yml +50 -5
  4. data/.github/workflows/release.yml +11 -3
  5. data/.hound.yml +3 -0
  6. data/.rubocop.yml +6 -506
  7. data/.yardopts +11 -0
  8. data/Rakefile +3 -0
  9. data/expressir.gemspec +4 -1
  10. data/ext/express-parser/express_parser.cpp +4358 -2954
  11. data/ext/express-parser/extconf.rb +5 -3
  12. data/lib/expressir/express/cache.rb +16 -10
  13. data/lib/expressir/express/formatter.rb +231 -180
  14. data/lib/expressir/express/hyperlink_formatter.rb +15 -1
  15. data/lib/expressir/express/model_visitor.rb +1 -0
  16. data/lib/expressir/express/parser.rb +16 -10
  17. data/lib/expressir/express/resolve_references_model_visitor.rb +7 -5
  18. data/lib/expressir/express/schema_head_formatter.rb +16 -2
  19. data/lib/expressir/express/visitor.rb +280 -254
  20. data/lib/expressir/model/cache.rb +6 -2
  21. data/lib/expressir/model/data_type.rb +9 -0
  22. data/lib/expressir/model/data_types/aggregate.rb +31 -0
  23. data/lib/expressir/model/data_types/array.rb +31 -0
  24. data/lib/expressir/model/data_types/bag.rb +25 -0
  25. data/lib/expressir/model/data_types/binary.rb +22 -0
  26. data/lib/expressir/model/data_types/boolean.rb +10 -0
  27. data/lib/expressir/model/data_types/enumeration.rb +25 -0
  28. data/lib/expressir/model/data_types/enumeration_item.rb +26 -0
  29. data/lib/expressir/model/data_types/generic.rb +26 -0
  30. data/lib/expressir/model/data_types/generic_entity.rb +26 -0
  31. data/lib/expressir/model/data_types/integer.rb +10 -0
  32. data/lib/expressir/model/data_types/list.rb +28 -0
  33. data/lib/expressir/model/data_types/logical.rb +10 -0
  34. data/lib/expressir/model/data_types/number.rb +10 -0
  35. data/lib/expressir/model/data_types/real.rb +19 -0
  36. data/lib/expressir/model/data_types/select.rb +28 -0
  37. data/lib/expressir/model/data_types/set.rb +25 -0
  38. data/lib/expressir/model/data_types/string.rb +22 -0
  39. data/lib/expressir/model/declaration.rb +9 -0
  40. data/lib/expressir/model/declarations/attribute.rb +47 -0
  41. data/lib/expressir/model/declarations/constant.rb +34 -0
  42. data/lib/expressir/model/declarations/entity.rb +53 -0
  43. data/lib/expressir/model/declarations/function.rb +67 -0
  44. data/lib/expressir/model/declarations/interface.rb +28 -0
  45. data/lib/expressir/model/declarations/interface_item.rb +23 -0
  46. data/lib/expressir/model/declarations/interfaced_item.rb +37 -0
  47. data/lib/expressir/model/declarations/parameter.rb +34 -0
  48. data/lib/expressir/model/declarations/procedure.rb +64 -0
  49. data/lib/expressir/model/declarations/remark_item.rb +21 -0
  50. data/lib/expressir/model/declarations/rule.rb +71 -0
  51. data/lib/expressir/model/declarations/schema.rb +117 -0
  52. data/lib/expressir/model/declarations/schema_version.rb +22 -0
  53. data/lib/expressir/model/declarations/schema_version_item.rb +22 -0
  54. data/lib/expressir/model/declarations/subtype_constraint.rb +40 -0
  55. data/lib/expressir/model/declarations/type.rb +45 -0
  56. data/lib/expressir/model/declarations/unique_rule.rb +31 -0
  57. data/lib/expressir/model/declarations/variable.rb +34 -0
  58. data/lib/expressir/model/declarations/where_rule.rb +31 -0
  59. data/lib/expressir/model/expression.rb +9 -0
  60. data/lib/expressir/model/expressions/aggregate_initializer.rb +6 -2
  61. data/lib/expressir/model/expressions/aggregate_initializer_item.rb +22 -0
  62. data/lib/expressir/model/expressions/binary_expression.rb +16 -5
  63. data/lib/expressir/model/expressions/entity_constructor.rb +8 -3
  64. data/lib/expressir/model/expressions/function_call.rb +22 -0
  65. data/lib/expressir/model/expressions/interval.rb +17 -6
  66. data/lib/expressir/model/expressions/query_expression.rb +11 -7
  67. data/lib/expressir/model/expressions/unary_expression.rb +9 -3
  68. data/lib/expressir/model/identifier.rb +26 -4
  69. data/lib/expressir/model/literal.rb +9 -0
  70. data/lib/expressir/model/literals/binary.rb +6 -2
  71. data/lib/expressir/model/literals/integer.rb +6 -2
  72. data/lib/expressir/model/literals/logical.rb +6 -2
  73. data/lib/expressir/model/literals/real.rb +6 -2
  74. data/lib/expressir/model/literals/string.rb +8 -3
  75. data/lib/expressir/model/model_element.rb +63 -37
  76. data/lib/expressir/model/reference.rb +9 -0
  77. data/lib/expressir/model/references/attribute_reference.rb +22 -0
  78. data/lib/expressir/model/references/group_reference.rb +22 -0
  79. data/lib/expressir/model/references/index_reference.rb +27 -0
  80. data/lib/expressir/model/references/simple_reference.rb +24 -0
  81. data/lib/expressir/model/repository.rb +5 -1
  82. data/lib/expressir/model/statement.rb +9 -0
  83. data/lib/expressir/model/statements/alias.rb +11 -7
  84. data/lib/expressir/model/statements/assignment.rb +8 -3
  85. data/lib/expressir/model/statements/case.rb +10 -4
  86. data/lib/expressir/model/statements/case_action.rb +7 -2
  87. data/lib/expressir/model/statements/compound.rb +6 -2
  88. data/lib/expressir/model/statements/escape.rb +3 -1
  89. data/lib/expressir/model/statements/if.rb +10 -4
  90. data/lib/expressir/model/statements/null.rb +3 -1
  91. data/lib/expressir/model/statements/procedure_call.rb +22 -0
  92. data/lib/expressir/model/statements/repeat.rb +19 -11
  93. data/lib/expressir/model/statements/return.rb +6 -2
  94. data/lib/expressir/model/statements/skip.rb +3 -1
  95. data/lib/expressir/model/supertype_expression.rb +9 -0
  96. data/lib/expressir/model/supertype_expressions/binary_supertype_expression.rb +29 -0
  97. data/lib/expressir/model/supertype_expressions/oneof_supertype_expression.rb +19 -0
  98. data/lib/expressir/model.rb +52 -45
  99. data/lib/expressir/version.rb +1 -1
  100. data/spec/expressir/model/model_element_spec.rb +131 -131
  101. data/spec/syntax/multiple.yaml +68 -68
  102. data/spec/syntax/remark.yaml +64 -64
  103. data/spec/syntax/single.yaml +5 -5
  104. data/spec/syntax/single_formatted.yaml +5 -5
  105. data/spec/syntax/syntax.yaml +1003 -1030
  106. metadata +101 -48
  107. data/lib/expressir/model/attribute.rb +0 -38
  108. data/lib/expressir/model/constant.rb +0 -28
  109. data/lib/expressir/model/entity.rb +0 -42
  110. data/lib/expressir/model/enumeration_item.rb +0 -22
  111. data/lib/expressir/model/expressions/aggregate_item.rb +0 -17
  112. data/lib/expressir/model/expressions/attribute_reference.rb +0 -17
  113. data/lib/expressir/model/expressions/call.rb +0 -17
  114. data/lib/expressir/model/expressions/group_reference.rb +0 -17
  115. data/lib/expressir/model/expressions/index_reference.rb +0 -19
  116. data/lib/expressir/model/expressions/simple_reference.rb +0 -19
  117. data/lib/expressir/model/function.rb +0 -57
  118. data/lib/expressir/model/interface.rb +0 -20
  119. data/lib/expressir/model/interface_item.rb +0 -15
  120. data/lib/expressir/model/interfaced_item.rb +0 -27
  121. data/lib/expressir/model/parameter.rb +0 -28
  122. data/lib/expressir/model/procedure.rb +0 -55
  123. data/lib/expressir/model/remark_item.rb +0 -15
  124. data/lib/expressir/model/rule.rb +0 -60
  125. data/lib/expressir/model/schema.rb +0 -100
  126. data/lib/expressir/model/schema_version.rb +0 -15
  127. data/lib/expressir/model/schema_version_item.rb +0 -15
  128. data/lib/expressir/model/statements/call.rb +0 -17
  129. data/lib/expressir/model/subtype_constraint.rb +0 -32
  130. data/lib/expressir/model/type.rb +0 -37
  131. data/lib/expressir/model/types/aggregate.rb +0 -28
  132. data/lib/expressir/model/types/array.rb +0 -23
  133. data/lib/expressir/model/types/bag.rb +0 -19
  134. data/lib/expressir/model/types/binary.rb +0 -17
  135. data/lib/expressir/model/types/boolean.rb +0 -8
  136. data/lib/expressir/model/types/enumeration.rb +0 -19
  137. data/lib/expressir/model/types/generic.rb +0 -24
  138. data/lib/expressir/model/types/generic_entity.rb +0 -24
  139. data/lib/expressir/model/types/integer.rb +0 -8
  140. data/lib/expressir/model/types/list.rb +0 -21
  141. data/lib/expressir/model/types/logical.rb +0 -8
  142. data/lib/expressir/model/types/number.rb +0 -8
  143. data/lib/expressir/model/types/real.rb +0 -15
  144. data/lib/expressir/model/types/select.rb +0 -21
  145. data/lib/expressir/model/types/set.rb +0 -19
  146. data/lib/expressir/model/types/string.rb +0 -17
  147. data/lib/expressir/model/unique_rule.rb +0 -26
  148. data/lib/expressir/model/variable.rb +0 -28
  149. data/lib/expressir/model/where_rule.rb +0 -26
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: expressir
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-04-18 00:00:00.000000000 Z
11
+ date: 2022-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -30,14 +30,28 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '3'
33
+ version: 4.0.3
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '3'
40
+ version: 4.0.3
41
+ - !ruby/object:Gem::Dependency
42
+ name: asciidoctor
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 2.0.13
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 2.0.13
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: antlr4-native
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -150,6 +164,34 @@ dependencies:
150
164
  - - "~>"
151
165
  - !ruby/object:Gem::Version
152
166
  version: '3.0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: yard
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: 0.9.26
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: 0.9.26
181
+ - !ruby/object:Gem::Dependency
182
+ name: webrick
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: 1.7.0
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: 1.7.0
153
195
  description: ISO EXPRESS parser in Ruby, tools for accessing EXPRESS data models.
154
196
  email:
155
197
  - open.source@ribose.com'
@@ -164,8 +206,10 @@ files:
164
206
  - ".github/workflows/release.yml"
165
207
  - ".gitignore"
166
208
  - ".gitmodules"
209
+ - ".hound.yml"
167
210
  - ".rspec"
168
211
  - ".rubocop.yml"
212
+ - ".yardopts"
169
213
  - Gemfile
170
214
  - README.adoc
171
215
  - Rakefile
@@ -535,75 +579,84 @@ files:
535
579
  - lib/expressir/express/schema_head_formatter.rb
536
580
  - lib/expressir/express/visitor.rb
537
581
  - lib/expressir/model.rb
538
- - lib/expressir/model/attribute.rb
539
582
  - lib/expressir/model/cache.rb
540
- - lib/expressir/model/constant.rb
541
- - lib/expressir/model/entity.rb
542
- - lib/expressir/model/enumeration_item.rb
583
+ - lib/expressir/model/data_type.rb
584
+ - lib/expressir/model/data_types/aggregate.rb
585
+ - lib/expressir/model/data_types/array.rb
586
+ - lib/expressir/model/data_types/bag.rb
587
+ - lib/expressir/model/data_types/binary.rb
588
+ - lib/expressir/model/data_types/boolean.rb
589
+ - lib/expressir/model/data_types/enumeration.rb
590
+ - lib/expressir/model/data_types/enumeration_item.rb
591
+ - lib/expressir/model/data_types/generic.rb
592
+ - lib/expressir/model/data_types/generic_entity.rb
593
+ - lib/expressir/model/data_types/integer.rb
594
+ - lib/expressir/model/data_types/list.rb
595
+ - lib/expressir/model/data_types/logical.rb
596
+ - lib/expressir/model/data_types/number.rb
597
+ - lib/expressir/model/data_types/real.rb
598
+ - lib/expressir/model/data_types/select.rb
599
+ - lib/expressir/model/data_types/set.rb
600
+ - lib/expressir/model/data_types/string.rb
601
+ - lib/expressir/model/declaration.rb
602
+ - lib/expressir/model/declarations/attribute.rb
603
+ - lib/expressir/model/declarations/constant.rb
604
+ - lib/expressir/model/declarations/entity.rb
605
+ - lib/expressir/model/declarations/function.rb
606
+ - lib/expressir/model/declarations/interface.rb
607
+ - lib/expressir/model/declarations/interface_item.rb
608
+ - lib/expressir/model/declarations/interfaced_item.rb
609
+ - lib/expressir/model/declarations/parameter.rb
610
+ - lib/expressir/model/declarations/procedure.rb
611
+ - lib/expressir/model/declarations/remark_item.rb
612
+ - lib/expressir/model/declarations/rule.rb
613
+ - lib/expressir/model/declarations/schema.rb
614
+ - lib/expressir/model/declarations/schema_version.rb
615
+ - lib/expressir/model/declarations/schema_version_item.rb
616
+ - lib/expressir/model/declarations/subtype_constraint.rb
617
+ - lib/expressir/model/declarations/type.rb
618
+ - lib/expressir/model/declarations/unique_rule.rb
619
+ - lib/expressir/model/declarations/variable.rb
620
+ - lib/expressir/model/declarations/where_rule.rb
621
+ - lib/expressir/model/expression.rb
543
622
  - lib/expressir/model/expressions/aggregate_initializer.rb
544
- - lib/expressir/model/expressions/aggregate_item.rb
545
- - lib/expressir/model/expressions/attribute_reference.rb
623
+ - lib/expressir/model/expressions/aggregate_initializer_item.rb
546
624
  - lib/expressir/model/expressions/binary_expression.rb
547
- - lib/expressir/model/expressions/call.rb
548
625
  - lib/expressir/model/expressions/entity_constructor.rb
549
- - lib/expressir/model/expressions/group_reference.rb
550
- - lib/expressir/model/expressions/index_reference.rb
626
+ - lib/expressir/model/expressions/function_call.rb
551
627
  - lib/expressir/model/expressions/interval.rb
552
628
  - lib/expressir/model/expressions/query_expression.rb
553
- - lib/expressir/model/expressions/simple_reference.rb
554
629
  - lib/expressir/model/expressions/unary_expression.rb
555
- - lib/expressir/model/function.rb
556
630
  - lib/expressir/model/identifier.rb
557
- - lib/expressir/model/interface.rb
558
- - lib/expressir/model/interface_item.rb
559
- - lib/expressir/model/interfaced_item.rb
631
+ - lib/expressir/model/literal.rb
560
632
  - lib/expressir/model/literals/binary.rb
561
633
  - lib/expressir/model/literals/integer.rb
562
634
  - lib/expressir/model/literals/logical.rb
563
635
  - lib/expressir/model/literals/real.rb
564
636
  - lib/expressir/model/literals/string.rb
565
637
  - lib/expressir/model/model_element.rb
566
- - lib/expressir/model/parameter.rb
567
- - lib/expressir/model/procedure.rb
568
- - lib/expressir/model/remark_item.rb
638
+ - lib/expressir/model/reference.rb
639
+ - lib/expressir/model/references/attribute_reference.rb
640
+ - lib/expressir/model/references/group_reference.rb
641
+ - lib/expressir/model/references/index_reference.rb
642
+ - lib/expressir/model/references/simple_reference.rb
569
643
  - lib/expressir/model/repository.rb
570
- - lib/expressir/model/rule.rb
571
- - lib/expressir/model/schema.rb
572
- - lib/expressir/model/schema_version.rb
573
- - lib/expressir/model/schema_version_item.rb
644
+ - lib/expressir/model/statement.rb
574
645
  - lib/expressir/model/statements/alias.rb
575
646
  - lib/expressir/model/statements/assignment.rb
576
- - lib/expressir/model/statements/call.rb
577
647
  - lib/expressir/model/statements/case.rb
578
648
  - lib/expressir/model/statements/case_action.rb
579
649
  - lib/expressir/model/statements/compound.rb
580
650
  - lib/expressir/model/statements/escape.rb
581
651
  - lib/expressir/model/statements/if.rb
582
652
  - lib/expressir/model/statements/null.rb
653
+ - lib/expressir/model/statements/procedure_call.rb
583
654
  - lib/expressir/model/statements/repeat.rb
584
655
  - lib/expressir/model/statements/return.rb
585
656
  - lib/expressir/model/statements/skip.rb
586
- - lib/expressir/model/subtype_constraint.rb
587
- - lib/expressir/model/type.rb
588
- - lib/expressir/model/types/aggregate.rb
589
- - lib/expressir/model/types/array.rb
590
- - lib/expressir/model/types/bag.rb
591
- - lib/expressir/model/types/binary.rb
592
- - lib/expressir/model/types/boolean.rb
593
- - lib/expressir/model/types/enumeration.rb
594
- - lib/expressir/model/types/generic.rb
595
- - lib/expressir/model/types/generic_entity.rb
596
- - lib/expressir/model/types/integer.rb
597
- - lib/expressir/model/types/list.rb
598
- - lib/expressir/model/types/logical.rb
599
- - lib/expressir/model/types/number.rb
600
- - lib/expressir/model/types/real.rb
601
- - lib/expressir/model/types/select.rb
602
- - lib/expressir/model/types/set.rb
603
- - lib/expressir/model/types/string.rb
604
- - lib/expressir/model/unique_rule.rb
605
- - lib/expressir/model/variable.rb
606
- - lib/expressir/model/where_rule.rb
657
+ - lib/expressir/model/supertype_expression.rb
658
+ - lib/expressir/model/supertype_expressions/binary_supertype_expression.rb
659
+ - lib/expressir/model/supertype_expressions/oneof_supertype_expression.rb
607
660
  - lib/expressir/version.rb
608
661
  - original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.exp
609
662
  - original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.owl
@@ -689,7 +742,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
689
742
  - !ruby/object:Gem::Version
690
743
  version: '0'
691
744
  requirements: []
692
- rubygems_version: 3.0.3.1
745
+ rubygems_version: 3.2.32
693
746
  signing_key:
694
747
  specification_version: 4
695
748
  summary: ISO EXPRESS parser in Ruby, tools for accessing EXPRESS data models.
@@ -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[:remarks] || []
19
- @remark_items = options[: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[:remarks] || []
12
- @remark_items = options[: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_rules
11
- model_attr_accessor :where_rules
12
- model_attr_accessor :informal_propositions
13
-
14
- def initialize(options = {})
15
- @id = options[:id]
16
- @remarks = options[:remarks] || []
17
- @remark_items = options[:remark_items] || []
18
- @source = options[:source]
19
-
20
- @abstract = options[:abstract]
21
- @supertype_expression = options[:supertype_expression]
22
- @subtype_of = options[:subtype_of] || []
23
- @attributes = options[:attributes] || []
24
- @unique_rules = options[:unique_rules] || []
25
- @where_rules = options[:where_rules] || []
26
- @informal_propositions = options[:informal_propositions] || []
27
-
28
- super
29
- end
30
-
31
- def children
32
- [
33
- *attributes,
34
- *unique_rules,
35
- *where_rules,
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[:remarks] || []
9
- @remark_items = options[: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[: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[:remarks] || []
20
- @remark_items = options[:remark_items] || []
21
- @source = options[:source]
22
-
23
- @parameters = options[:parameters] || []
24
- @return_type = options[:return_type]
25
- @types = options[:types] || []
26
- @entities = options[:entities] || []
27
- @subtype_constraints = options[:subtype_constraints] || []
28
- @functions = options[:functions] || []
29
- @procedures = options[:procedures] || []
30
- @constants = options[:constants] || []
31
- @variables = options[:variables] || []
32
- @statements = options[: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[: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[:remarks] || []
13
- @remark_items = options[: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[:remarks] || []
12
- @remark_items = options[: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[:remarks] || []
19
- @remark_items = options[:remark_items] || []
20
- @source = options[:source]
21
-
22
- @parameters = options[:parameters] || []
23
- @types = options[:types] || []
24
- @entities = options[:entities] || []
25
- @subtype_constraints = options[:subtype_constraints] || []
26
- @functions = options[:functions] || []
27
- @procedures = options[:procedures] || []
28
- @constants = options[:constants] || []
29
- @variables = options[:variables] || []
30
- @statements = options[: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