expressir 0.2.21-x86-linux → 0.2.24-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 (76) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/release.yml +22 -6
  3. data/lib/expressir/express_exp/2.4/express_parser.so +0 -0
  4. data/lib/expressir/express_exp/2.5/express_parser.so +0 -0
  5. data/lib/expressir/express_exp/2.6/express_parser.so +0 -0
  6. data/lib/expressir/express_exp/2.7/express_parser.so +0 -0
  7. data/lib/expressir/express_exp/3.0/express_parser.so +0 -0
  8. data/lib/expressir/express_exp/cache.rb +1 -1
  9. data/lib/expressir/express_exp/visitor.rb +19 -18
  10. data/lib/expressir/model.rb +1 -1
  11. data/lib/expressir/model/attribute.rb +12 -5
  12. data/lib/expressir/model/cache.rb +2 -2
  13. data/lib/expressir/model/constant.rb +9 -2
  14. data/lib/expressir/model/entity.rb +10 -8
  15. data/lib/expressir/model/enumeration_item.rb +7 -0
  16. data/lib/expressir/model/expressions/aggregate_initializer.rb +1 -1
  17. data/lib/expressir/model/expressions/aggregate_item.rb +2 -2
  18. data/lib/expressir/model/expressions/attribute_reference.rb +2 -2
  19. data/lib/expressir/model/expressions/binary_expression.rb +3 -3
  20. data/lib/expressir/model/expressions/call.rb +2 -2
  21. data/lib/expressir/model/expressions/entity_constructor.rb +2 -2
  22. data/lib/expressir/model/expressions/group_reference.rb +2 -2
  23. data/lib/expressir/model/expressions/index_reference.rb +3 -3
  24. data/lib/expressir/model/expressions/interval.rb +5 -5
  25. data/lib/expressir/model/expressions/query_expression.rb +5 -3
  26. data/lib/expressir/model/expressions/simple_reference.rb +1 -1
  27. data/lib/expressir/model/expressions/unary_expression.rb +2 -2
  28. data/lib/expressir/model/function.rb +13 -11
  29. data/lib/expressir/model/identifier.rb +6 -3
  30. data/lib/expressir/model/interface.rb +3 -3
  31. data/lib/expressir/model/interface_item.rb +2 -2
  32. data/lib/expressir/model/interfaced_item.rb +11 -6
  33. data/lib/expressir/model/literals/binary.rb +1 -1
  34. data/lib/expressir/model/literals/integer.rb +1 -1
  35. data/lib/expressir/model/literals/logical.rb +1 -1
  36. data/lib/expressir/model/literals/real.rb +1 -1
  37. data/lib/expressir/model/literals/string.rb +2 -2
  38. data/lib/expressir/model/model_element.rb +29 -24
  39. data/lib/expressir/model/parameter.rb +9 -2
  40. data/lib/expressir/model/procedure.rb +12 -10
  41. data/lib/expressir/model/{informal_proposition.rb → remark_item.rb} +3 -6
  42. data/lib/expressir/model/repository.rb +1 -1
  43. data/lib/expressir/model/rule.rb +14 -12
  44. data/lib/expressir/model/schema.rb +13 -11
  45. data/lib/expressir/model/statements/alias.rb +5 -3
  46. data/lib/expressir/model/statements/assignment.rb +2 -2
  47. data/lib/expressir/model/statements/call.rb +2 -2
  48. data/lib/expressir/model/statements/case.rb +3 -3
  49. data/lib/expressir/model/statements/case_action.rb +2 -2
  50. data/lib/expressir/model/statements/compound.rb +1 -1
  51. data/lib/expressir/model/statements/if.rb +3 -3
  52. data/lib/expressir/model/statements/repeat.rb +9 -7
  53. data/lib/expressir/model/statements/return.rb +1 -1
  54. data/lib/expressir/model/subtype_constraint.rb +11 -4
  55. data/lib/expressir/model/type.rb +6 -4
  56. data/lib/expressir/model/types/aggregate.rb +8 -1
  57. data/lib/expressir/model/types/array.rb +5 -5
  58. data/lib/expressir/model/types/bag.rb +3 -3
  59. data/lib/expressir/model/types/binary.rb +2 -2
  60. data/lib/expressir/model/types/enumeration.rb +4 -4
  61. data/lib/expressir/model/types/generic.rb +7 -0
  62. data/lib/expressir/model/types/generic_entity.rb +7 -0
  63. data/lib/expressir/model/types/list.rb +4 -4
  64. data/lib/expressir/model/types/real.rb +1 -1
  65. data/lib/expressir/model/types/select.rb +5 -5
  66. data/lib/expressir/model/types/set.rb +3 -3
  67. data/lib/expressir/model/types/string.rb +2 -2
  68. data/lib/expressir/model/unique.rb +8 -1
  69. data/lib/expressir/model/variable.rb +9 -2
  70. data/lib/expressir/model/where.rb +8 -1
  71. data/lib/expressir/version.rb +1 -1
  72. data/original/examples/syntax/remark.exp +12 -10
  73. data/original/examples/syntax/remark.yaml +9 -3
  74. data/original/examples/syntax/remark_formatted.exp +3 -1
  75. data/spec/expressir/model/model_element_spec.rb +20 -20
  76. metadata +3 -3
@@ -2,8 +2,8 @@ module Expressir
2
2
  module Model
3
3
  module Statements
4
4
  class Assignment < ModelElement
5
- attr_accessor :ref
6
- attr_accessor :expression
5
+ model_attr_accessor :ref
6
+ model_attr_accessor :expression
7
7
 
8
8
  def initialize(options = {})
9
9
  @ref = options[:ref]
@@ -2,8 +2,8 @@ module Expressir
2
2
  module Model
3
3
  module Statements
4
4
  class Call < ModelElement
5
- attr_accessor :ref
6
- attr_accessor :parameters
5
+ model_attr_accessor :ref
6
+ model_attr_accessor :parameters
7
7
 
8
8
  def initialize(options = {})
9
9
  @ref = options[:ref]
@@ -2,9 +2,9 @@ module Expressir
2
2
  module Model
3
3
  module Statements
4
4
  class Case < ModelElement
5
- attr_accessor :expression
6
- attr_accessor :actions
7
- attr_accessor :otherwise_statement
5
+ model_attr_accessor :expression
6
+ model_attr_accessor :actions
7
+ model_attr_accessor :otherwise_statement
8
8
 
9
9
  def initialize(options = {})
10
10
  @expression = options[:expression]
@@ -2,8 +2,8 @@ module Expressir
2
2
  module Model
3
3
  module Statements
4
4
  class CaseAction < ModelElement
5
- attr_accessor :labels
6
- attr_accessor :statement
5
+ model_attr_accessor :labels
6
+ model_attr_accessor :statement
7
7
 
8
8
  def initialize(options = {})
9
9
  @labels = options.fetch(:labels, [])
@@ -2,7 +2,7 @@ module Expressir
2
2
  module Model
3
3
  module Statements
4
4
  class Compound < ModelElement
5
- attr_accessor :statements
5
+ model_attr_accessor :statements
6
6
 
7
7
  def initialize(options = {})
8
8
  @statements = options.fetch(:statements, [])
@@ -2,9 +2,9 @@ module Expressir
2
2
  module Model
3
3
  module Statements
4
4
  class If < ModelElement
5
- attr_accessor :expression
6
- attr_accessor :statements
7
- attr_accessor :else_statements
5
+ model_attr_accessor :expression
6
+ model_attr_accessor :statements
7
+ model_attr_accessor :else_statements
8
8
 
9
9
  def initialize(options = {})
10
10
  @expression = options[:expression]
@@ -4,16 +4,17 @@ module Expressir
4
4
  class Repeat < ModelElement
5
5
  include Identifier
6
6
 
7
- attr_accessor :bound1
8
- attr_accessor :bound2
9
- attr_accessor :increment
10
- attr_accessor :while_expression
11
- attr_accessor :until_expression
12
- attr_accessor :statements
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
13
13
 
14
14
  def initialize(options = {})
15
15
  @id = options[:id]
16
16
  @remarks = options.fetch(:remarks, [])
17
+ @remark_items = options.fetch(:remark_items, [])
17
18
  @source = options[:source]
18
19
 
19
20
  @bound1 = options[:bound1]
@@ -28,7 +29,8 @@ module Expressir
28
29
 
29
30
  def children
30
31
  [
31
- self
32
+ self,
33
+ *remark_items
32
34
  ]
33
35
  end
34
36
  end
@@ -2,7 +2,7 @@ module Expressir
2
2
  module Model
3
3
  module Statements
4
4
  class Return < ModelElement
5
- attr_accessor :expression
5
+ model_attr_accessor :expression
6
6
 
7
7
  def initialize(options = {})
8
8
  @expression = options[:expression]
@@ -3,14 +3,15 @@ module Expressir
3
3
  class SubtypeConstraint < ModelElement
4
4
  include Identifier
5
5
 
6
- attr_accessor :applies_to
7
- attr_accessor :abstract
8
- attr_accessor :total_over
9
- attr_accessor :supertype_expression
6
+ model_attr_accessor :applies_to
7
+ model_attr_accessor :abstract
8
+ model_attr_accessor :total_over
9
+ model_attr_accessor :supertype_expression
10
10
 
11
11
  def initialize(options = {})
12
12
  @id = options[:id]
13
13
  @remarks = options.fetch(:remarks, [])
14
+ @remark_items = options.fetch(:remark_items, [])
14
15
  @source = options[:source]
15
16
 
16
17
  @applies_to = options[:applies_to]
@@ -20,6 +21,12 @@ module Expressir
20
21
 
21
22
  super
22
23
  end
24
+
25
+ def children
26
+ [
27
+ *remark_items
28
+ ]
29
+ end
23
30
  end
24
31
  end
25
32
  end
@@ -3,13 +3,14 @@ module Expressir
3
3
  class Type < ModelElement
4
4
  include Identifier
5
5
 
6
- attr_accessor :type
7
- attr_accessor :where
8
- attr_accessor :informal_propositions
6
+ model_attr_accessor :type
7
+ model_attr_accessor :where
8
+ model_attr_accessor :informal_propositions
9
9
 
10
10
  def initialize(options = {})
11
11
  @id = options[:id]
12
12
  @remarks = options.fetch(:remarks, [])
13
+ @remark_items = options.fetch(:remark_items, [])
13
14
  @source = options[:source]
14
15
 
15
16
  @type = options[:type]
@@ -27,7 +28,8 @@ module Expressir
27
28
  [
28
29
  *enumeration_items,
29
30
  *where,
30
- *informal_propositions
31
+ *informal_propositions,
32
+ *remark_items
31
33
  ]
32
34
  end
33
35
  end
@@ -4,17 +4,24 @@ module Expressir
4
4
  class Aggregate < ModelElement
5
5
  include Identifier
6
6
 
7
- attr_accessor :base_type
7
+ model_attr_accessor :base_type
8
8
 
9
9
  def initialize(options = {})
10
10
  @id = options[:id]
11
11
  @remarks = options.fetch(:remarks, [])
12
+ @remark_items = options.fetch(:remark_items, [])
12
13
  @source = options[:source]
13
14
 
14
15
  @base_type = options[:base_type]
15
16
 
16
17
  super
17
18
  end
19
+
20
+ def children
21
+ [
22
+ *remark_items
23
+ ]
24
+ end
18
25
  end
19
26
  end
20
27
  end
@@ -2,11 +2,11 @@ module Expressir
2
2
  module Model
3
3
  module Types
4
4
  class Array < ModelElement
5
- attr_accessor :bound1
6
- attr_accessor :bound2
7
- attr_accessor :optional
8
- attr_accessor :unique
9
- attr_accessor :base_type
5
+ model_attr_accessor :bound1
6
+ model_attr_accessor :bound2
7
+ model_attr_accessor :optional
8
+ model_attr_accessor :unique
9
+ model_attr_accessor :base_type
10
10
 
11
11
  def initialize(options = {})
12
12
  @bound1 = options[:bound1]
@@ -2,9 +2,9 @@ module Expressir
2
2
  module Model
3
3
  module Types
4
4
  class Bag < ModelElement
5
- attr_accessor :bound1
6
- attr_accessor :bound2
7
- attr_accessor :base_type
5
+ model_attr_accessor :bound1
6
+ model_attr_accessor :bound2
7
+ model_attr_accessor :base_type
8
8
 
9
9
  def initialize(options = {})
10
10
  @bound1 = options[:bound1]
@@ -2,8 +2,8 @@ module Expressir
2
2
  module Model
3
3
  module Types
4
4
  class Binary < ModelElement
5
- attr_accessor :width
6
- attr_accessor :fixed
5
+ model_attr_accessor :width
6
+ model_attr_accessor :fixed
7
7
 
8
8
  def initialize(options = {})
9
9
  @width = options[:width]
@@ -2,10 +2,10 @@ module Expressir
2
2
  module Model
3
3
  module Types
4
4
  class Enumeration < ModelElement
5
- attr_accessor :extensible
6
- attr_accessor :items
7
- attr_accessor :extension_type
8
- attr_accessor :extension_items
5
+ model_attr_accessor :extensible
6
+ model_attr_accessor :items
7
+ model_attr_accessor :extension_type
8
+ model_attr_accessor :extension_items
9
9
 
10
10
  def initialize(options = {})
11
11
  @extensible = options[:extensible]
@@ -7,10 +7,17 @@ module Expressir
7
7
  def initialize(options = {})
8
8
  @id = options[:id]
9
9
  @remarks = options.fetch(:remarks, [])
10
+ @remark_items = options.fetch(:remark_items, [])
10
11
  @source = options[:source]
11
12
 
12
13
  super
13
14
  end
15
+
16
+ def children
17
+ [
18
+ *remark_items
19
+ ]
20
+ end
14
21
  end
15
22
  end
16
23
  end
@@ -7,11 +7,18 @@ module Expressir
7
7
  def initialize(options = {})
8
8
  @id = options[:id]
9
9
  @remarks = options.fetch(:remarks, [])
10
+ @remark_items = options.fetch(:remark_items, [])
10
11
  @source = options[:source]
11
12
 
12
13
  super
13
14
  end
14
15
  end
16
+
17
+ def children
18
+ [
19
+ *remark_items
20
+ ]
21
+ end
15
22
  end
16
23
  end
17
24
  end
@@ -2,10 +2,10 @@ module Expressir
2
2
  module Model
3
3
  module Types
4
4
  class List < ModelElement
5
- attr_accessor :bound1
6
- attr_accessor :bound2
7
- attr_accessor :unique
8
- attr_accessor :base_type
5
+ model_attr_accessor :bound1
6
+ model_attr_accessor :bound2
7
+ model_attr_accessor :unique
8
+ model_attr_accessor :base_type
9
9
 
10
10
  def initialize(options = {})
11
11
  @bound1 = options[:bound1]
@@ -2,7 +2,7 @@ module Expressir
2
2
  module Model
3
3
  module Types
4
4
  class Real < ModelElement
5
- attr_accessor :precision
5
+ model_attr_accessor :precision
6
6
 
7
7
  def initialize(options = {})
8
8
  @precision = options[:precision]
@@ -2,11 +2,11 @@ module Expressir
2
2
  module Model
3
3
  module Types
4
4
  class Select < ModelElement
5
- attr_accessor :extensible
6
- attr_accessor :generic_entity
7
- attr_accessor :items
8
- attr_accessor :extension_type
9
- attr_accessor :extension_items
5
+ model_attr_accessor :extensible
6
+ model_attr_accessor :generic_entity
7
+ model_attr_accessor :items
8
+ model_attr_accessor :extension_type
9
+ model_attr_accessor :extension_items
10
10
 
11
11
  def initialize(options = {})
12
12
  @extensible = options[:extensible]
@@ -2,9 +2,9 @@ module Expressir
2
2
  module Model
3
3
  module Types
4
4
  class Set < ModelElement
5
- attr_accessor :bound1
6
- attr_accessor :bound2
7
- attr_accessor :base_type
5
+ model_attr_accessor :bound1
6
+ model_attr_accessor :bound2
7
+ model_attr_accessor :base_type
8
8
 
9
9
  def initialize(options = {})
10
10
  @bound1 = options[:bound1]
@@ -2,8 +2,8 @@ module Expressir
2
2
  module Model
3
3
  module Types
4
4
  class String < ModelElement
5
- attr_accessor :width
6
- attr_accessor :fixed
5
+ model_attr_accessor :width
6
+ model_attr_accessor :fixed
7
7
 
8
8
  def initialize(options = {})
9
9
  @width = options[:width]
@@ -3,17 +3,24 @@ module Expressir
3
3
  class Unique < ModelElement
4
4
  include Identifier
5
5
 
6
- attr_accessor :attributes
6
+ model_attr_accessor :attributes
7
7
 
8
8
  def initialize(options = {})
9
9
  @id = options[:id]
10
10
  @remarks = options.fetch(:remarks, [])
11
+ @remark_items = options.fetch(:remark_items, [])
11
12
  @source = options[:source]
12
13
 
13
14
  @attributes = options.fetch(:attributes, [])
14
15
 
15
16
  super
16
17
  end
18
+
19
+ def children
20
+ [
21
+ *remark_items
22
+ ]
23
+ end
17
24
  end
18
25
  end
19
26
  end
@@ -3,12 +3,13 @@ module Expressir
3
3
  class Variable < ModelElement
4
4
  include Identifier
5
5
 
6
- attr_accessor :type
7
- attr_accessor :expression
6
+ model_attr_accessor :type
7
+ model_attr_accessor :expression
8
8
 
9
9
  def initialize(options = {})
10
10
  @id = options[:id]
11
11
  @remarks = options.fetch(:remarks, [])
12
+ @remark_items = options.fetch(:remark_items, [])
12
13
  @source = options[:source]
13
14
 
14
15
  @type = options[:type]
@@ -16,6 +17,12 @@ module Expressir
16
17
 
17
18
  super
18
19
  end
20
+
21
+ def children
22
+ [
23
+ *remark_items
24
+ ]
25
+ end
19
26
  end
20
27
  end
21
28
  end
@@ -3,17 +3,24 @@ module Expressir
3
3
  class Where < ModelElement
4
4
  include Identifier
5
5
 
6
- attr_accessor :expression
6
+ model_attr_accessor :expression
7
7
 
8
8
  def initialize(options = {})
9
9
  @id = options[:id]
10
10
  @remarks = options.fetch(:remarks, [])
11
+ @remark_items = options.fetch(:remark_items, [])
11
12
  @source = options[:source]
12
13
 
13
14
  @expression = options[:expression]
14
15
 
15
16
  super
16
17
  end
18
+
19
+ def children
20
+ [
21
+ *remark_items
22
+ ]
23
+ end
17
24
  end
18
25
  end
19
26
  end