expressir 0.2.21-x64-mingw32 → 0.2.24-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.
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