expressir 0.2.16 → 0.2.24

Sign up to get free protection for your applications and to get access to all the features.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +5 -0
  3. data/.github/workflows/release.yml +31 -3
  4. data/README.adoc +3 -3
  5. data/exe/format +66 -12
  6. data/ext/express-parser/extconf.rb +2 -0
  7. data/lib/expressir/express_exp/cache.rb +48 -0
  8. data/lib/expressir/express_exp/formatter.rb +185 -135
  9. data/lib/expressir/express_exp/parser.rb +33 -29
  10. data/lib/expressir/express_exp/schema_head_formatter.rb +1 -4
  11. data/lib/expressir/express_exp/visitor.rb +29 -23
  12. data/lib/expressir/model.rb +3 -1
  13. data/lib/expressir/model/attribute.rb +12 -5
  14. data/lib/expressir/model/cache.rb +13 -0
  15. data/lib/expressir/model/constant.rb +9 -2
  16. data/lib/expressir/model/entity.rb +15 -13
  17. data/lib/expressir/model/enumeration_item.rb +7 -0
  18. data/lib/expressir/model/expressions/aggregate_initializer.rb +1 -1
  19. data/lib/expressir/model/expressions/aggregate_item.rb +2 -2
  20. data/lib/expressir/model/expressions/attribute_reference.rb +2 -2
  21. data/lib/expressir/model/expressions/binary_expression.rb +3 -3
  22. data/lib/expressir/model/expressions/call.rb +2 -2
  23. data/lib/expressir/model/expressions/entity_constructor.rb +2 -2
  24. data/lib/expressir/model/expressions/group_reference.rb +2 -2
  25. data/lib/expressir/model/expressions/index_reference.rb +3 -3
  26. data/lib/expressir/model/expressions/interval.rb +5 -5
  27. data/lib/expressir/model/expressions/query_expression.rb +7 -5
  28. data/lib/expressir/model/expressions/simple_reference.rb +1 -1
  29. data/lib/expressir/model/expressions/unary_expression.rb +2 -2
  30. data/lib/expressir/model/function.rb +27 -21
  31. data/lib/expressir/model/identifier.rb +6 -3
  32. data/lib/expressir/model/interface.rb +3 -3
  33. data/lib/expressir/model/interface_item.rb +2 -2
  34. data/lib/expressir/model/interfaced_item.rb +11 -3
  35. data/lib/expressir/model/literals/binary.rb +1 -1
  36. data/lib/expressir/model/literals/integer.rb +1 -1
  37. data/lib/expressir/model/literals/logical.rb +1 -1
  38. data/lib/expressir/model/literals/real.rb +1 -1
  39. data/lib/expressir/model/literals/string.rb +2 -2
  40. data/lib/expressir/model/model_element.rb +54 -19
  41. data/lib/expressir/model/parameter.rb +9 -2
  42. data/lib/expressir/model/procedure.rb +26 -20
  43. data/lib/expressir/model/{informal_proposition.rb → remark_item.rb} +3 -3
  44. data/lib/expressir/model/repository.rb +4 -4
  45. data/lib/expressir/model/rule.rb +29 -23
  46. data/lib/expressir/model/schema.rb +63 -54
  47. data/lib/expressir/model/statements/alias.rb +7 -5
  48. data/lib/expressir/model/statements/assignment.rb +2 -2
  49. data/lib/expressir/model/statements/call.rb +2 -2
  50. data/lib/expressir/model/statements/case.rb +3 -3
  51. data/lib/expressir/model/statements/case_action.rb +2 -2
  52. data/lib/expressir/model/statements/compound.rb +1 -1
  53. data/lib/expressir/model/statements/if.rb +3 -3
  54. data/lib/expressir/model/statements/repeat.rb +11 -9
  55. data/lib/expressir/model/statements/return.rb +1 -1
  56. data/lib/expressir/model/subtype_constraint.rb +9 -7
  57. data/lib/expressir/model/type.rb +14 -8
  58. data/lib/expressir/model/types/aggregate.rb +8 -1
  59. data/lib/expressir/model/types/array.rb +5 -5
  60. data/lib/expressir/model/types/bag.rb +3 -3
  61. data/lib/expressir/model/types/binary.rb +2 -2
  62. data/lib/expressir/model/types/enumeration.rb +4 -4
  63. data/lib/expressir/model/types/generic.rb +7 -0
  64. data/lib/expressir/model/types/generic_entity.rb +7 -0
  65. data/lib/expressir/model/types/list.rb +4 -4
  66. data/lib/expressir/model/types/real.rb +1 -1
  67. data/lib/expressir/model/types/select.rb +5 -5
  68. data/lib/expressir/model/types/set.rb +3 -3
  69. data/lib/expressir/model/types/string.rb +2 -2
  70. data/lib/expressir/model/unique.rb +8 -1
  71. data/lib/expressir/model/variable.rb +9 -2
  72. data/lib/expressir/model/where.rb +8 -1
  73. data/lib/expressir/version.rb +1 -1
  74. data/original/examples/syntax/{hyperlink.exp → multiple.exp} +8 -8
  75. data/original/examples/syntax/multiple.yaml +184 -0
  76. data/original/examples/syntax/multiple_formatted.exp +71 -0
  77. data/original/examples/syntax/multiple_hyperlink_formatted.exp +71 -0
  78. data/original/examples/syntax/multiple_schema_head_hyperlink_formatted.exp +13 -0
  79. data/original/examples/syntax/remark.exp +52 -50
  80. data/original/examples/syntax/remark.yaml +452 -0
  81. data/original/examples/syntax/remark_formatted.exp +64 -50
  82. data/original/examples/syntax/{simple.exp → single.exp} +1 -1
  83. data/original/examples/syntax/single.yaml +9 -0
  84. data/original/examples/syntax/single_formatted.exp +6 -0
  85. data/original/examples/syntax/single_formatted.yaml +19 -0
  86. data/original/examples/syntax/syntax.exp +29 -19
  87. data/original/examples/syntax/syntax.yaml +3439 -0
  88. data/original/examples/syntax/syntax_formatted.exp +271 -131
  89. data/original/examples/syntax/syntax_schema_head_formatted.exp +18 -0
  90. data/spec/expressir/express_exp/cache_spec.rb +64 -0
  91. data/spec/expressir/express_exp/formatter_spec.rb +111 -0
  92. data/spec/expressir/express_exp/parser_spec.rb +98 -0
  93. data/spec/expressir/model/{model_element/find_spec.rb → model_element_spec.rb} +96 -10
  94. metadata +21 -17
  95. data/original/examples/syntax/hyperlink_formatted.exp +0 -51
  96. data/original/examples/syntax/source.exp +0 -16
  97. data/spec/expressir/express_exp/formatter/remark_spec.rb +0 -28
  98. data/spec/expressir/express_exp/formatter/syntax_spec.rb +0 -28
  99. data/spec/expressir/express_exp/hyperlink_formatter_spec.rb +0 -28
  100. data/spec/expressir/express_exp/parser/multiple_spec.rb +0 -37
  101. data/spec/expressir/express_exp/parser/remark_spec.rb +0 -411
  102. data/spec/expressir/express_exp/parser/source_spec.rb +0 -29
  103. data/spec/expressir/express_exp/parser/syntax_spec.rb +0 -3086
  104. data/spec/expressir/express_exp/schema_head_formatter_spec.rb +0 -40
  105. data/spec/expressir/model/model_element/hash_spec.rb +0 -66
@@ -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,27 +3,29 @@ 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]
17
18
  @abstract = options[:abstract]
18
- @total_over = options[:total_over]
19
+ @total_over = options.fetch(:total_over, [])
19
20
  @supertype_expression = options[:supertype_expression]
20
21
 
21
22
  super
22
23
  end
23
24
 
24
25
  def children
25
- items = []
26
- items
26
+ [
27
+ *remark_items
28
+ ]
27
29
  end
28
30
  end
29
31
  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]
@@ -19,12 +20,17 @@ module Expressir
19
20
  super
20
21
  end
21
22
 
23
+ def enumeration_items
24
+ type.is_a?(Types::Enumeration) ? type.items : []
25
+ end
26
+
22
27
  def children
23
- items = []
24
- items.push(*@type.is_a?(Types::Enumeration) ? @type.items : [])
25
- items.push(*@where)
26
- items.push(*@informal_propositions)
27
- items
28
+ [
29
+ *enumeration_items,
30
+ *where,
31
+ *informal_propositions,
32
+ *remark_items
33
+ ]
28
34
  end
29
35
  end
30
36
  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
@@ -1,3 +1,3 @@
1
1
  module Expressir
2
- VERSION = "0.2.16".freeze
2
+ VERSION = "0.2.24".freeze
3
3
  end
@@ -1,7 +1,7 @@
1
- SCHEMA hyperlink_schema;
2
- REFERENCE FROM hyperlink_schema2;
3
- REFERENCE FROM hyperlink_schema3 (attribute_entity3);
4
- REFERENCE FROM hyperlink_schema4 (attribute_entity AS attribute_entity4);
1
+ SCHEMA multiple_schema1;
2
+ REFERENCE FROM multiple_schema2;
3
+ REFERENCE FROM multiple_schema3 (attribute_entity3);
4
+ REFERENCE FROM multiple_schema4 (attribute_entity AS attribute_entity4);
5
5
  ENTITY test; END_ENTITY;
6
6
  ENTITY empty_entity; END_ENTITY;
7
7
  ENTITY attribute_entity; test : BOOLEAN; END_ENTITY;
@@ -12,12 +12,12 @@ ENTITY subtype_attribute_entity3 SUBTYPE OF (attribute_entity3); SELF\attribute_
12
12
  ENTITY subtype_attribute_entity4 SUBTYPE OF (attribute_entity4); SELF\attribute_entity4.test : BOOLEAN; END_ENTITY;
13
13
  ENTITY subtype_missing_entity SUBTYPE OF (missing_entity); END_ENTITY;
14
14
  END_SCHEMA;
15
- SCHEMA hyperlink_schema2;
15
+ SCHEMA multiple_schema2;
16
16
  ENTITY attribute_entity2; test : BOOLEAN; END_ENTITY;
17
17
  END_SCHEMA;
18
- SCHEMA hyperlink_schema3;
18
+ SCHEMA multiple_schema3;
19
19
  ENTITY attribute_entity3; test : BOOLEAN; END_ENTITY;
20
20
  END_SCHEMA;
21
- SCHEMA hyperlink_schema4;
21
+ SCHEMA multiple_schema4;
22
22
  ENTITY attribute_entity; test : BOOLEAN; END_ENTITY;
23
- END_SCHEMA;
23
+ END_SCHEMA;
@@ -0,0 +1,184 @@
1
+ ---
2
+ _class: Expressir::Model::Repository
3
+ schemas:
4
+ - _class: Expressir::Model::Schema
5
+ file: original/examples/syntax/multiple.exp
6
+ id: multiple_schema1
7
+ interfaces:
8
+ - _class: Expressir::Model::Interface
9
+ kind: :REFERENCE
10
+ schema:
11
+ _class: Expressir::Model::Expressions::SimpleReference
12
+ id: multiple_schema2
13
+ - _class: Expressir::Model::Interface
14
+ kind: :REFERENCE
15
+ schema:
16
+ _class: Expressir::Model::Expressions::SimpleReference
17
+ id: multiple_schema3
18
+ items:
19
+ - _class: Expressir::Model::InterfaceItem
20
+ ref:
21
+ _class: Expressir::Model::Expressions::SimpleReference
22
+ id: attribute_entity3
23
+ - _class: Expressir::Model::Interface
24
+ kind: :REFERENCE
25
+ schema:
26
+ _class: Expressir::Model::Expressions::SimpleReference
27
+ id: multiple_schema4
28
+ items:
29
+ - _class: Expressir::Model::InterfaceItem
30
+ ref:
31
+ _class: Expressir::Model::Expressions::SimpleReference
32
+ id: attribute_entity
33
+ id: attribute_entity4
34
+ entities:
35
+ - _class: Expressir::Model::Entity
36
+ id: test
37
+ - _class: Expressir::Model::Entity
38
+ id: empty_entity
39
+ - _class: Expressir::Model::Entity
40
+ id: attribute_entity
41
+ attributes:
42
+ - _class: Expressir::Model::Attribute
43
+ id: test
44
+ kind: :EXPLICIT
45
+ type:
46
+ _class: Expressir::Model::Types::Boolean
47
+ - _class: Expressir::Model::Entity
48
+ id: subtype_empty_entity
49
+ subtype_of:
50
+ - _class: Expressir::Model::Expressions::SimpleReference
51
+ id: empty_entity
52
+ - _class: Expressir::Model::Entity
53
+ id: subtype_attribute_entity
54
+ subtype_of:
55
+ - _class: Expressir::Model::Expressions::SimpleReference
56
+ id: attribute_entity
57
+ attributes:
58
+ - _class: Expressir::Model::Attribute
59
+ kind: :EXPLICIT
60
+ supertype_attribute:
61
+ _class: Expressir::Model::Expressions::AttributeReference
62
+ ref:
63
+ _class: Expressir::Model::Expressions::GroupReference
64
+ ref:
65
+ _class: Expressir::Model::Expressions::SimpleReference
66
+ id: SELF
67
+ entity:
68
+ _class: Expressir::Model::Expressions::SimpleReference
69
+ id: attribute_entity
70
+ attribute:
71
+ _class: Expressir::Model::Expressions::SimpleReference
72
+ id: test
73
+ type:
74
+ _class: Expressir::Model::Types::Boolean
75
+ - _class: Expressir::Model::Entity
76
+ id: subtype_attribute_entity2
77
+ subtype_of:
78
+ - _class: Expressir::Model::Expressions::SimpleReference
79
+ id: attribute_entity2
80
+ attributes:
81
+ - _class: Expressir::Model::Attribute
82
+ kind: :EXPLICIT
83
+ supertype_attribute:
84
+ _class: Expressir::Model::Expressions::AttributeReference
85
+ ref:
86
+ _class: Expressir::Model::Expressions::GroupReference
87
+ ref:
88
+ _class: Expressir::Model::Expressions::SimpleReference
89
+ id: SELF
90
+ entity:
91
+ _class: Expressir::Model::Expressions::SimpleReference
92
+ id: attribute_entity2
93
+ attribute:
94
+ _class: Expressir::Model::Expressions::SimpleReference
95
+ id: test
96
+ type:
97
+ _class: Expressir::Model::Types::Boolean
98
+ - _class: Expressir::Model::Entity
99
+ id: subtype_attribute_entity3
100
+ subtype_of:
101
+ - _class: Expressir::Model::Expressions::SimpleReference
102
+ id: attribute_entity3
103
+ attributes:
104
+ - _class: Expressir::Model::Attribute
105
+ kind: :EXPLICIT
106
+ supertype_attribute:
107
+ _class: Expressir::Model::Expressions::AttributeReference
108
+ ref:
109
+ _class: Expressir::Model::Expressions::GroupReference
110
+ ref:
111
+ _class: Expressir::Model::Expressions::SimpleReference
112
+ id: SELF
113
+ entity:
114
+ _class: Expressir::Model::Expressions::SimpleReference
115
+ id: attribute_entity3
116
+ attribute:
117
+ _class: Expressir::Model::Expressions::SimpleReference
118
+ id: test
119
+ type:
120
+ _class: Expressir::Model::Types::Boolean
121
+ - _class: Expressir::Model::Entity
122
+ id: subtype_attribute_entity4
123
+ subtype_of:
124
+ - _class: Expressir::Model::Expressions::SimpleReference
125
+ id: attribute_entity4
126
+ attributes:
127
+ - _class: Expressir::Model::Attribute
128
+ kind: :EXPLICIT
129
+ supertype_attribute:
130
+ _class: Expressir::Model::Expressions::AttributeReference
131
+ ref:
132
+ _class: Expressir::Model::Expressions::GroupReference
133
+ ref:
134
+ _class: Expressir::Model::Expressions::SimpleReference
135
+ id: SELF
136
+ entity:
137
+ _class: Expressir::Model::Expressions::SimpleReference
138
+ id: attribute_entity4
139
+ attribute:
140
+ _class: Expressir::Model::Expressions::SimpleReference
141
+ id: test
142
+ type:
143
+ _class: Expressir::Model::Types::Boolean
144
+ - _class: Expressir::Model::Entity
145
+ id: subtype_missing_entity
146
+ subtype_of:
147
+ - _class: Expressir::Model::Expressions::SimpleReference
148
+ id: missing_entity
149
+ - _class: Expressir::Model::Schema
150
+ file: original/examples/syntax/multiple.exp
151
+ id: multiple_schema2
152
+ entities:
153
+ - _class: Expressir::Model::Entity
154
+ id: attribute_entity2
155
+ attributes:
156
+ - _class: Expressir::Model::Attribute
157
+ id: test
158
+ kind: :EXPLICIT
159
+ type:
160
+ _class: Expressir::Model::Types::Boolean
161
+ - _class: Expressir::Model::Schema
162
+ file: original/examples/syntax/multiple.exp
163
+ id: multiple_schema3
164
+ entities:
165
+ - _class: Expressir::Model::Entity
166
+ id: attribute_entity3
167
+ attributes:
168
+ - _class: Expressir::Model::Attribute
169
+ id: test
170
+ kind: :EXPLICIT
171
+ type:
172
+ _class: Expressir::Model::Types::Boolean
173
+ - _class: Expressir::Model::Schema
174
+ file: original/examples/syntax/multiple.exp
175
+ id: multiple_schema4
176
+ entities:
177
+ - _class: Expressir::Model::Entity
178
+ id: attribute_entity
179
+ attributes:
180
+ - _class: Expressir::Model::Attribute
181
+ id: test
182
+ kind: :EXPLICIT
183
+ type:
184
+ _class: Expressir::Model::Types::Boolean