expressir 0.2.12-x86-linux → 0.2.17-x86-linux

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/exe/format +57 -8
  3. data/lib/expressir/express_exp/formatter.rb +201 -147
  4. data/lib/expressir/express_exp/hyperlink_formatter.rb +6 -4
  5. data/lib/expressir/express_exp/parser.rb +31 -25
  6. data/lib/expressir/express_exp/schema_head_formatter.rb +2 -7
  7. data/lib/expressir/express_exp/visitor.rb +27 -54
  8. data/lib/expressir/model.rb +2 -1
  9. data/lib/expressir/model/entity.rb +6 -6
  10. data/lib/expressir/model/expressions/query_expression.rb +3 -3
  11. data/lib/expressir/model/function.rb +15 -11
  12. data/lib/expressir/model/informal_proposition.rb +4 -1
  13. data/lib/expressir/model/{renamed_ref.rb → interface_item.rb} +2 -2
  14. data/lib/expressir/model/interfaced_item.rb +26 -0
  15. data/lib/expressir/model/model_element.rb +20 -7
  16. data/lib/expressir/model/procedure.rb +15 -11
  17. data/lib/expressir/model/repository.rb +3 -3
  18. data/lib/expressir/model/rule.rb +16 -12
  19. data/lib/expressir/model/schema.rb +60 -17
  20. data/lib/expressir/model/statements/alias.rb +3 -3
  21. data/lib/expressir/model/statements/repeat.rb +3 -3
  22. data/lib/expressir/model/subtype_constraint.rb +1 -6
  23. data/lib/expressir/model/type.rb +9 -5
  24. data/lib/expressir/version.rb +1 -1
  25. data/original/examples/syntax/multiple.exp +23 -0
  26. data/original/examples/syntax/multiple.yaml +180 -0
  27. data/original/examples/syntax/multiple_formatted.exp +71 -0
  28. data/original/examples/syntax/multiple_hyperlink_formatted.exp +71 -0
  29. data/original/examples/syntax/multiple_schema_head_hyperlink_formatted.exp +13 -0
  30. data/original/examples/syntax/remark.exp +41 -41
  31. data/original/examples/syntax/remark.yaml +445 -0
  32. data/original/examples/syntax/remark_formatted.exp +62 -50
  33. data/original/examples/syntax/{simple.exp → single.exp} +1 -1
  34. data/original/examples/syntax/single.yaml +8 -0
  35. data/original/examples/syntax/single_formatted.exp +6 -0
  36. data/original/examples/syntax/single_formatted.yaml +18 -0
  37. data/original/examples/syntax/syntax.exp +29 -19
  38. data/original/examples/syntax/syntax.yaml +3438 -0
  39. data/original/examples/syntax/syntax_formatted.exp +271 -131
  40. data/original/examples/syntax/syntax_schema_head_formatted.exp +18 -0
  41. data/spec/expressir/express_exp/formatter_spec.rb +110 -0
  42. data/spec/expressir/express_exp/parser_spec.rb +98 -0
  43. data/spec/expressir/model/{model_element/find_spec.rb → model_element_spec.rb} +93 -10
  44. metadata +19 -18
  45. data/original/examples/syntax/hyperlink.exp +0 -8
  46. data/original/examples/syntax/hyperlink_formatted.exp +0 -19
  47. data/original/examples/syntax/source.exp +0 -16
  48. data/spec/expressir/express_exp/formatter/remark_spec.rb +0 -28
  49. data/spec/expressir/express_exp/formatter/syntax_spec.rb +0 -28
  50. data/spec/expressir/express_exp/hyperlink_formatter_spec.rb +0 -24
  51. data/spec/expressir/express_exp/parser/head_source_spec.rb +0 -38
  52. data/spec/expressir/express_exp/parser/multiple_spec.rb +0 -32
  53. data/spec/expressir/express_exp/parser/remark_spec.rb +0 -411
  54. data/spec/expressir/express_exp/parser/source_spec.rb +0 -29
  55. data/spec/expressir/express_exp/parser/syntax_spec.rb +0 -3080
  56. data/spec/expressir/express_exp/schema_head_formatter_spec.rb +0 -36
  57. data/spec/expressir/model/model_element/hash_spec.rb +0 -66
@@ -0,0 +1,71 @@
1
+ SCHEMA multiple_schema1;
2
+
3
+ REFERENCE FROM multiple_schema2;
4
+ REFERENCE FROM multiple_schema3
5
+ (attribute_entity3);
6
+ REFERENCE FROM multiple_schema4
7
+ (attribute_entity AS attribute_entity4);
8
+
9
+ ENTITY test;
10
+ END_ENTITY;
11
+
12
+ ENTITY empty_entity;
13
+ END_ENTITY;
14
+
15
+ ENTITY attribute_entity;
16
+ test : BOOLEAN;
17
+ END_ENTITY;
18
+
19
+ ENTITY subtype_empty_entity
20
+ SUBTYPE OF (empty_entity);
21
+ END_ENTITY;
22
+
23
+ ENTITY subtype_attribute_entity
24
+ SUBTYPE OF (attribute_entity);
25
+ SELF\attribute_entity.test : BOOLEAN;
26
+ END_ENTITY;
27
+
28
+ ENTITY subtype_attribute_entity2
29
+ SUBTYPE OF (attribute_entity2);
30
+ SELF\attribute_entity2.test : BOOLEAN;
31
+ END_ENTITY;
32
+
33
+ ENTITY subtype_attribute_entity3
34
+ SUBTYPE OF (attribute_entity3);
35
+ SELF\attribute_entity3.test : BOOLEAN;
36
+ END_ENTITY;
37
+
38
+ ENTITY subtype_attribute_entity4
39
+ SUBTYPE OF (attribute_entity4);
40
+ SELF\attribute_entity4.test : BOOLEAN;
41
+ END_ENTITY;
42
+
43
+ ENTITY subtype_missing_entity
44
+ SUBTYPE OF (missing_entity);
45
+ END_ENTITY;
46
+
47
+ END_SCHEMA;
48
+
49
+ SCHEMA multiple_schema2;
50
+
51
+ ENTITY attribute_entity2;
52
+ test : BOOLEAN;
53
+ END_ENTITY;
54
+
55
+ END_SCHEMA;
56
+
57
+ SCHEMA multiple_schema3;
58
+
59
+ ENTITY attribute_entity3;
60
+ test : BOOLEAN;
61
+ END_ENTITY;
62
+
63
+ END_SCHEMA;
64
+
65
+ SCHEMA multiple_schema4;
66
+
67
+ ENTITY attribute_entity;
68
+ test : BOOLEAN;
69
+ END_ENTITY;
70
+
71
+ END_SCHEMA;
@@ -0,0 +1,71 @@
1
+ SCHEMA multiple_schema1;
2
+
3
+ REFERENCE FROM {{{<<express:multiple_schema2,multiple_schema2>>}}};
4
+ REFERENCE FROM {{{<<express:multiple_schema3,multiple_schema3>>}}}
5
+ ({{{<<express:multiple_schema3.attribute_entity3,attribute_entity3>>}}});
6
+ REFERENCE FROM {{{<<express:multiple_schema4,multiple_schema4>>}}}
7
+ ({{{<<express:multiple_schema4.attribute_entity,attribute_entity>>}}} AS attribute_entity4);
8
+
9
+ ENTITY test;
10
+ END_ENTITY;
11
+
12
+ ENTITY empty_entity;
13
+ END_ENTITY;
14
+
15
+ ENTITY attribute_entity;
16
+ test : BOOLEAN;
17
+ END_ENTITY;
18
+
19
+ ENTITY subtype_empty_entity
20
+ SUBTYPE OF ({{{<<express:multiple_schema1.empty_entity,empty_entity>>}}});
21
+ END_ENTITY;
22
+
23
+ ENTITY subtype_attribute_entity
24
+ SUBTYPE OF ({{{<<express:multiple_schema1.attribute_entity,attribute_entity>>}}});
25
+ SELF\{{{<<express:multiple_schema1.attribute_entity,attribute_entity>>}}}.test : BOOLEAN;
26
+ END_ENTITY;
27
+
28
+ ENTITY subtype_attribute_entity2
29
+ SUBTYPE OF ({{{<<express:multiple_schema2.attribute_entity2,attribute_entity2>>}}});
30
+ SELF\{{{<<express:multiple_schema2.attribute_entity2,attribute_entity2>>}}}.test : BOOLEAN;
31
+ END_ENTITY;
32
+
33
+ ENTITY subtype_attribute_entity3
34
+ SUBTYPE OF ({{{<<express:multiple_schema3.attribute_entity3,attribute_entity3>>}}});
35
+ SELF\{{{<<express:multiple_schema3.attribute_entity3,attribute_entity3>>}}}.test : BOOLEAN;
36
+ END_ENTITY;
37
+
38
+ ENTITY subtype_attribute_entity4
39
+ SUBTYPE OF ({{{<<express:multiple_schema4.attribute_entity,attribute_entity4>>}}});
40
+ SELF\{{{<<express:multiple_schema4.attribute_entity,attribute_entity4>>}}}.test : BOOLEAN;
41
+ END_ENTITY;
42
+
43
+ ENTITY subtype_missing_entity
44
+ SUBTYPE OF (missing_entity);
45
+ END_ENTITY;
46
+
47
+ END_SCHEMA;
48
+
49
+ SCHEMA multiple_schema2;
50
+
51
+ ENTITY attribute_entity2;
52
+ test : BOOLEAN;
53
+ END_ENTITY;
54
+
55
+ END_SCHEMA;
56
+
57
+ SCHEMA multiple_schema3;
58
+
59
+ ENTITY attribute_entity3;
60
+ test : BOOLEAN;
61
+ END_ENTITY;
62
+
63
+ END_SCHEMA;
64
+
65
+ SCHEMA multiple_schema4;
66
+
67
+ ENTITY attribute_entity;
68
+ test : BOOLEAN;
69
+ END_ENTITY;
70
+
71
+ END_SCHEMA;
@@ -0,0 +1,13 @@
1
+ SCHEMA multiple_schema1;
2
+
3
+ REFERENCE FROM {{{<<express:multiple_schema2,multiple_schema2>>}}};
4
+ REFERENCE FROM {{{<<express:multiple_schema3,multiple_schema3>>}}}
5
+ ({{{<<express:multiple_schema3.attribute_entity3,attribute_entity3>>}}});
6
+ REFERENCE FROM {{{<<express:multiple_schema4,multiple_schema4>>}}}
7
+ ({{{<<express:multiple_schema4.attribute_entity,attribute_entity>>}}} AS attribute_entity4);
8
+
9
+ SCHEMA multiple_schema2;
10
+
11
+ SCHEMA multiple_schema3;
12
+
13
+ SCHEMA multiple_schema4;
@@ -12,7 +12,7 @@ SCHEMA remark_schema;
12
12
 
13
13
  CONSTANT remark_constant : STRING := 'xxx'; END_CONSTANT;
14
14
  TYPE remark_type = ENUMERATION OF (remark_enumeration_item);
15
- WHERE WR1 : TRUE;
15
+ WHERE WR1: TRUE;
16
16
  --"WR1" type scope - type where
17
17
  --"IP1" type scope - type informal proposition
18
18
  --"wr:WR1" type scope - type where, with prefix
@@ -22,12 +22,12 @@ ENTITY remark_entity;
22
22
  remark_attribute : STRING;
23
23
  DERIVE remark_derived_attribute : STRING := 'xxx';
24
24
  INVERSE remark_inverse_attribute : remark_entity FOR remark_attribute;
25
- UNIQUE remark_unique : remark_attribute;
26
- WHERE WR1 : TRUE;
25
+ UNIQUE UR1: remark_attribute;
26
+ WHERE WR1: TRUE;
27
27
  --"remark_attribute" entity scope - entity attribute
28
28
  --"remark_derived_attribute" entity scope - entity derived attribute
29
29
  --"remark_inverse_attribute" entity scope - entity inverse attribute
30
- --"remark_unique" entity scope - entity unique
30
+ --"UR1" entity scope - entity unique
31
31
  --"WR1" entity scope - entity where
32
32
  --"IP1" entity scope - entity informal proposition
33
33
  --"wr:WR1" entity scope - entity where, with prefix
@@ -54,26 +54,6 @@ FUNCTION remark_function(remark_parameter : STRING) : BOOLEAN;
54
54
  --"remark_constant" function scope - function constant
55
55
  --"remark_variable" function scope - function variable
56
56
  END_FUNCTION;
57
- PROCEDURE remark_procedure(remark_parameter : STRING);
58
- TYPE remark_type = ENUMERATION OF (remark_enumeration_item); END_TYPE;
59
- CONSTANT remark_constant : STRING := 'xxx'; END_CONSTANT;
60
- LOCAL remark_variable : STRING; END_LOCAL;
61
- ALIAS remark_alias FOR remark_variable; ;
62
- --"remark_alias" procedure alias scope - procedure alias
63
- END_ALIAS;
64
- REPEAT remark_repeat := 1 TO 9; ;
65
- --"remark_repeat" procedure repeat scope - procedure repeat
66
- END_REPEAT;
67
- remark_variable := QUERY(remark_query <* remark_variable | TRUE
68
- --"remark_query" procedure query scope - procedure query
69
- );
70
- --"remark_parameter" procedure scope - procedure parameter
71
- --"remark_type" procedure scope - procedure type
72
- --"remark_type.remark_enumeration_item" procedure scope - procedure enumeration item
73
- --"remark_enumeration_item" procedure scope - procedure enumeration item, on the same level as the type
74
- --"remark_constant" procedure scope - procedure constant
75
- --"remark_variable" procedure scope - procedure variable
76
- END_PROCEDURE;
77
57
  RULE remark_rule FOR (remark_entity);
78
58
  TYPE remark_type = ENUMERATION OF (remark_enumeration_item); END_TYPE;
79
59
  CONSTANT remark_constant : STRING := 'xxx'; END_CONSTANT;
@@ -87,7 +67,7 @@ RULE remark_rule FOR (remark_entity);
87
67
  remark_variable := QUERY(remark_query <* remark_variable | TRUE
88
68
  --"remark_query" rule query scope - rule query
89
69
  );
90
- WHERE WR1 : TRUE;
70
+ WHERE WR1: TRUE;
91
71
  --"remark_type" rule scope - rule type
92
72
  --"remark_type.remark_enumeration_item" rule scope - rule enumeration item
93
73
  --"remark_enumeration_item" rule scope - rule enumeration item, on the same level as the type
@@ -98,6 +78,26 @@ RULE remark_rule FOR (remark_entity);
98
78
  --"wr:WR1" rule scope - rule where, with prefix
99
79
  --"ip:IP1" rule scope - rule informal proposition, with prefix
100
80
  END_RULE;
81
+ PROCEDURE remark_procedure(remark_parameter : STRING);
82
+ TYPE remark_type = ENUMERATION OF (remark_enumeration_item); END_TYPE;
83
+ CONSTANT remark_constant : STRING := 'xxx'; END_CONSTANT;
84
+ LOCAL remark_variable : STRING; END_LOCAL;
85
+ ALIAS remark_alias FOR remark_variable; ;
86
+ --"remark_alias" procedure alias scope - procedure alias
87
+ END_ALIAS;
88
+ REPEAT remark_repeat := 1 TO 9; ;
89
+ --"remark_repeat" procedure repeat scope - procedure repeat
90
+ END_REPEAT;
91
+ remark_variable := QUERY(remark_query <* remark_variable | TRUE
92
+ --"remark_query" procedure query scope - procedure query
93
+ );
94
+ --"remark_parameter" procedure scope - procedure parameter
95
+ --"remark_type" procedure scope - procedure type
96
+ --"remark_type.remark_enumeration_item" procedure scope - procedure enumeration item
97
+ --"remark_enumeration_item" procedure scope - procedure enumeration item, on the same level as the type
98
+ --"remark_constant" procedure scope - procedure constant
99
+ --"remark_variable" procedure scope - procedure variable
100
+ END_PROCEDURE;
101
101
 
102
102
  --"remark_constant" schema scope - constant
103
103
  --"remark_type" schema scope - type
@@ -111,7 +111,7 @@ END_RULE;
111
111
  --"remark_entity.remark_attribute" schema scope - entity attribute
112
112
  --"remark_entity.remark_derived_attribute" schema scope - entity derived attribute
113
113
  --"remark_entity.remark_inverse_attribute" schema scope - entity inverse attribute
114
- --"remark_entity.remark_unique" schema scope - entity unique
114
+ --"remark_entity.UR1" schema scope - entity unique
115
115
  --"remark_entity.WR1" schema scope - entity where
116
116
  --"remark_entity.IP1" schema scope - entity informal proposition
117
117
  --"remark_entity.wr:WR1" schema scope - entity where, with prefix
@@ -124,13 +124,6 @@ END_RULE;
124
124
  --"remark_function.remark_enumeration_item" schema scope - function enumeration item, on the same level as the type
125
125
  --"remark_function.remark_constant" schema scope - function constant
126
126
  --"remark_function.remark_variable" schema scope - function variable
127
- --"remark_procedure" schema scope - procedure
128
- --"remark_procedure.remark_parameter" schema scope - procedure parameter
129
- --"remark_procedure.remark_type" schema scope - procedure type
130
- --"remark_procedure.remark_type.remark_enumeration_item" schema scope - procedure enumeration item
131
- --"remark_procedure.remark_enumeration_item" schema scope - procedure enumeration item, on the same level as the type
132
- --"remark_procedure.remark_constant" schema scope - procedure constant
133
- --"remark_procedure.remark_variable" schema scope - procedure variable
134
127
  --"remark_rule" schema scope - rule
135
128
  --"remark_rule.remark_type" schema scope - rule type
136
129
  --"remark_rule.remark_type.remark_enumeration_item" schema scope - rule enumeration item
@@ -141,6 +134,13 @@ END_RULE;
141
134
  --"remark_rule.IP1" schema scope - rule informal proposition
142
135
  --"remark_rule.wr:WR1" schema scope - rule where, with prefix
143
136
  --"remark_rule.ip:IP1" schema scope - rule informal proposition, with prefix
137
+ --"remark_procedure" schema scope - procedure
138
+ --"remark_procedure.remark_parameter" schema scope - procedure parameter
139
+ --"remark_procedure.remark_type" schema scope - procedure type
140
+ --"remark_procedure.remark_type.remark_enumeration_item" schema scope - procedure enumeration item
141
+ --"remark_procedure.remark_enumeration_item" schema scope - procedure enumeration item, on the same level as the type
142
+ --"remark_procedure.remark_constant" schema scope - procedure constant
143
+ --"remark_procedure.remark_variable" schema scope - procedure variable
144
144
 
145
145
  END_SCHEMA;
146
146
 
@@ -157,7 +157,7 @@ END_SCHEMA;
157
157
  --"remark_schema.remark_entity.remark_attribute" universal scope - entity attribute
158
158
  --"remark_schema.remark_entity.remark_derived_attribute" universal scope - entity derived attribute
159
159
  --"remark_schema.remark_entity.remark_inverse_attribute" universal scope - entity inverse attribute
160
- --"remark_schema.remark_entity.remark_unique" universal scope - entity unique
160
+ --"remark_schema.remark_entity.UR1" universal scope - entity unique
161
161
  --"remark_schema.remark_entity.WR1" universal scope - entity where
162
162
  --"remark_schema.remark_entity.IP1" universal scope - entity informal proposition
163
163
  --"remark_schema.remark_entity.wr:WR1" universal scope - entity where, with prefix
@@ -170,13 +170,6 @@ END_SCHEMA;
170
170
  --"remark_schema.remark_function.remark_enumeration_item" universal scope - function enumeration item, on the same level as the type
171
171
  --"remark_schema.remark_function.remark_constant" universal scope - function constant
172
172
  --"remark_schema.remark_function.remark_variable" universal scope - function variable
173
- --"remark_schema.remark_procedure" universal scope - procedure
174
- --"remark_schema.remark_procedure.remark_parameter" universal scope - procedure parameter
175
- --"remark_schema.remark_procedure.remark_type" universal scope - procedure type
176
- --"remark_schema.remark_procedure.remark_type.remark_enumeration_item" universal scope - procedure enumeration item
177
- --"remark_schema.remark_procedure.remark_enumeration_item" universal scope - procedure enumeration item, on the same level as the type
178
- --"remark_schema.remark_procedure.remark_constant" universal scope - procedure constant
179
- --"remark_schema.remark_procedure.remark_variable" universal scope - procedure variable
180
173
  --"remark_schema.remark_rule" universal scope - rule
181
174
  --"remark_schema.remark_rule.remark_type" universal scope - rule type
182
175
  --"remark_schema.remark_rule.remark_type.remark_enumeration_item" universal scope - rule enumeration item
@@ -187,3 +180,10 @@ END_SCHEMA;
187
180
  --"remark_schema.remark_rule.IP1" universal scope - rule informal proposition
188
181
  --"remark_schema.remark_rule.wr:WR1" universal scope - rule where, with prefix
189
182
  --"remark_schema.remark_rule.ip:IP1" universal scope - rule informal proposition, with prefix
183
+ --"remark_schema.remark_procedure" universal scope - procedure
184
+ --"remark_schema.remark_procedure.remark_parameter" universal scope - procedure parameter
185
+ --"remark_schema.remark_procedure.remark_type" universal scope - procedure type
186
+ --"remark_schema.remark_procedure.remark_type.remark_enumeration_item" universal scope - procedure enumeration item
187
+ --"remark_schema.remark_procedure.remark_enumeration_item" universal scope - procedure enumeration item, on the same level as the type
188
+ --"remark_schema.remark_procedure.remark_constant" universal scope - procedure constant
189
+ --"remark_schema.remark_procedure.remark_variable" universal scope - procedure variable
@@ -0,0 +1,445 @@
1
+ ---
2
+ _class: Expressir::Model::Repository
3
+ schemas:
4
+ - _class: Expressir::Model::Schema
5
+ id: remark_schema
6
+ remarks:
7
+ - |-
8
+ Any character within the EXPRESS character set may occur between the start and end of
9
+ an embedded remark including the newline character; therefore, embedded remarks can span
10
+ several physical lines.
11
+ - The tail remark is written at the end of a physical line.
12
+ - 'UTF8 test: Příliš žluťoučký kůň úpěl ďábelské ódy.'
13
+ - universal scope - schema before
14
+ - universal scope - schema
15
+ constants:
16
+ - _class: Expressir::Model::Constant
17
+ id: remark_constant
18
+ remarks:
19
+ - schema scope - constant
20
+ - universal scope - constant
21
+ type:
22
+ _class: Expressir::Model::Types::String
23
+ expression:
24
+ _class: Expressir::Model::Literals::String
25
+ value: xxx
26
+ types:
27
+ - _class: Expressir::Model::Type
28
+ id: remark_type
29
+ remarks:
30
+ - schema scope - type
31
+ - universal scope - type
32
+ type:
33
+ _class: Expressir::Model::Types::Enumeration
34
+ items:
35
+ - _class: Expressir::Model::EnumerationItem
36
+ id: remark_enumeration_item
37
+ remarks:
38
+ - schema scope - enumeration item
39
+ - schema scope - enumeration item, on the same level as the type
40
+ - universal scope - enumeration item
41
+ - universal scope - enumeration item, on the same level as the type
42
+ where:
43
+ - _class: Expressir::Model::Where
44
+ id: WR1
45
+ remarks:
46
+ - type scope - type where
47
+ - type scope - type where, with prefix
48
+ - schema scope - type where
49
+ - schema scope - type where, with prefix
50
+ - universal scope - type where
51
+ - universal scope - type where, with prefix
52
+ expression:
53
+ _class: Expressir::Model::Literals::Logical
54
+ value: :TRUE
55
+ informal_propositions:
56
+ - _class: Expressir::Model::InformalProposition
57
+ id: IP1
58
+ remarks:
59
+ - type scope - type informal proposition
60
+ - type scope - type informal proposition, with prefix
61
+ - schema scope - type informal proposition
62
+ - schema scope - type informal proposition, with prefix
63
+ - universal scope - type informal proposition
64
+ - universal scope - type informal proposition, with prefix
65
+ entities:
66
+ - _class: Expressir::Model::Entity
67
+ id: remark_entity
68
+ remarks:
69
+ - schema scope - entity
70
+ - universal scope - entity
71
+ attributes:
72
+ - _class: Expressir::Model::Attribute
73
+ id: remark_attribute
74
+ remarks:
75
+ - entity scope - entity attribute
76
+ - schema scope - entity attribute
77
+ - universal scope - entity attribute
78
+ kind: :EXPLICIT
79
+ type:
80
+ _class: Expressir::Model::Types::String
81
+ - _class: Expressir::Model::Attribute
82
+ id: remark_derived_attribute
83
+ remarks:
84
+ - entity scope - entity derived attribute
85
+ - schema scope - entity derived attribute
86
+ - universal scope - entity derived attribute
87
+ kind: :DERIVED
88
+ type:
89
+ _class: Expressir::Model::Types::String
90
+ expression:
91
+ _class: Expressir::Model::Literals::String
92
+ value: xxx
93
+ - _class: Expressir::Model::Attribute
94
+ id: remark_inverse_attribute
95
+ remarks:
96
+ - entity scope - entity inverse attribute
97
+ - schema scope - entity inverse attribute
98
+ - universal scope - entity inverse attribute
99
+ kind: :INVERSE
100
+ type:
101
+ _class: Expressir::Model::Expressions::SimpleReference
102
+ id: remark_entity
103
+ expression:
104
+ _class: Expressir::Model::Expressions::SimpleReference
105
+ id: remark_attribute
106
+ unique:
107
+ - _class: Expressir::Model::Unique
108
+ id: UR1
109
+ remarks:
110
+ - entity scope - entity unique
111
+ - schema scope - entity unique
112
+ - universal scope - entity unique
113
+ attributes:
114
+ - _class: Expressir::Model::Expressions::SimpleReference
115
+ id: remark_attribute
116
+ where:
117
+ - _class: Expressir::Model::Where
118
+ id: WR1
119
+ remarks:
120
+ - entity scope - entity where
121
+ - entity scope - entity where, with prefix
122
+ - schema scope - entity where
123
+ - schema scope - entity where, with prefix
124
+ - universal scope - entity where
125
+ - universal scope - entity where, with prefix
126
+ expression:
127
+ _class: Expressir::Model::Literals::Logical
128
+ value: :TRUE
129
+ informal_propositions:
130
+ - _class: Expressir::Model::InformalProposition
131
+ id: IP1
132
+ remarks:
133
+ - entity scope - entity informal proposition
134
+ - entity scope - entity informal proposition, with prefix
135
+ - schema scope - entity informal proposition
136
+ - schema scope - entity informal proposition, with prefix
137
+ - universal scope - entity informal proposition
138
+ - universal scope - entity informal proposition, with prefix
139
+ subtype_constraints:
140
+ - _class: Expressir::Model::SubtypeConstraint
141
+ id: remark_subtype_constraint
142
+ remarks:
143
+ - schema scope - subtype constraint
144
+ - universal scope - subtype constraint
145
+ applies_to:
146
+ _class: Expressir::Model::Expressions::SimpleReference
147
+ id: remark_entity
148
+ functions:
149
+ - _class: Expressir::Model::Function
150
+ id: remark_function
151
+ remarks:
152
+ - schema scope - function
153
+ - universal scope - function
154
+ parameters:
155
+ - _class: Expressir::Model::Parameter
156
+ id: remark_parameter
157
+ remarks:
158
+ - function scope - function parameter
159
+ - schema scope - function parameter
160
+ - universal scope - function parameter
161
+ type:
162
+ _class: Expressir::Model::Types::String
163
+ return_type:
164
+ _class: Expressir::Model::Types::Boolean
165
+ types:
166
+ - _class: Expressir::Model::Type
167
+ id: remark_type
168
+ remarks:
169
+ - function scope - function type
170
+ - schema scope - function type
171
+ - universal scope - function type
172
+ type:
173
+ _class: Expressir::Model::Types::Enumeration
174
+ items:
175
+ - _class: Expressir::Model::EnumerationItem
176
+ id: remark_enumeration_item
177
+ remarks:
178
+ - function scope - function enumeration item
179
+ - function scope - function enumeration item, on the same level as the type
180
+ - schema scope - function enumeration item
181
+ - schema scope - function enumeration item, on the same level as the type
182
+ - universal scope - function enumeration item
183
+ - universal scope - function enumeration item, on the same level as the
184
+ type
185
+ constants:
186
+ - _class: Expressir::Model::Constant
187
+ id: remark_constant
188
+ remarks:
189
+ - function scope - function constant
190
+ - schema scope - function constant
191
+ - universal scope - function constant
192
+ type:
193
+ _class: Expressir::Model::Types::String
194
+ expression:
195
+ _class: Expressir::Model::Literals::String
196
+ value: xxx
197
+ variables:
198
+ - _class: Expressir::Model::Variable
199
+ id: remark_variable
200
+ remarks:
201
+ - function scope - function variable
202
+ - schema scope - function variable
203
+ - universal scope - function variable
204
+ type:
205
+ _class: Expressir::Model::Types::String
206
+ statements:
207
+ - _class: Expressir::Model::Statements::Alias
208
+ id: remark_alias
209
+ remarks:
210
+ - function alias scope - function alias
211
+ expression:
212
+ _class: Expressir::Model::Expressions::SimpleReference
213
+ id: remark_variable
214
+ statements:
215
+ - _class: Expressir::Model::Statements::Null
216
+ - _class: Expressir::Model::Statements::Repeat
217
+ id: remark_repeat
218
+ remarks:
219
+ - function repeat scope - function repeat
220
+ bound1:
221
+ _class: Expressir::Model::Literals::Integer
222
+ value: '1'
223
+ bound2:
224
+ _class: Expressir::Model::Literals::Integer
225
+ value: '9'
226
+ statements:
227
+ - _class: Expressir::Model::Statements::Null
228
+ - _class: Expressir::Model::Statements::Assignment
229
+ ref:
230
+ _class: Expressir::Model::Expressions::SimpleReference
231
+ id: remark_variable
232
+ expression:
233
+ _class: Expressir::Model::Expressions::QueryExpression
234
+ id: remark_query
235
+ remarks:
236
+ - function query scope - function query
237
+ aggregate_source:
238
+ _class: Expressir::Model::Expressions::SimpleReference
239
+ id: remark_variable
240
+ expression:
241
+ _class: Expressir::Model::Literals::Logical
242
+ value: :TRUE
243
+ rules:
244
+ - _class: Expressir::Model::Rule
245
+ id: remark_rule
246
+ remarks:
247
+ - schema scope - rule
248
+ - universal scope - rule
249
+ applies_to:
250
+ - _class: Expressir::Model::Expressions::SimpleReference
251
+ id: remark_entity
252
+ types:
253
+ - _class: Expressir::Model::Type
254
+ id: remark_type
255
+ remarks:
256
+ - rule scope - rule type
257
+ - schema scope - rule type
258
+ - universal scope - rule type
259
+ type:
260
+ _class: Expressir::Model::Types::Enumeration
261
+ items:
262
+ - _class: Expressir::Model::EnumerationItem
263
+ id: remark_enumeration_item
264
+ remarks:
265
+ - rule scope - rule enumeration item
266
+ - rule scope - rule enumeration item, on the same level as the type
267
+ - schema scope - rule enumeration item
268
+ - schema scope - rule enumeration item, on the same level as the type
269
+ - universal scope - rule enumeration item
270
+ - universal scope - rule enumeration item, on the same level as the type
271
+ constants:
272
+ - _class: Expressir::Model::Constant
273
+ id: remark_constant
274
+ remarks:
275
+ - rule scope - rule constant
276
+ - schema scope - rule constant
277
+ - universal scope - rule constant
278
+ type:
279
+ _class: Expressir::Model::Types::String
280
+ expression:
281
+ _class: Expressir::Model::Literals::String
282
+ value: xxx
283
+ variables:
284
+ - _class: Expressir::Model::Variable
285
+ id: remark_variable
286
+ remarks:
287
+ - rule scope - rule variable
288
+ - schema scope - rule variable
289
+ - universal scope - rule variable
290
+ type:
291
+ _class: Expressir::Model::Types::String
292
+ statements:
293
+ - _class: Expressir::Model::Statements::Alias
294
+ id: remark_alias
295
+ remarks:
296
+ - rule alias scope - rule alias
297
+ expression:
298
+ _class: Expressir::Model::Expressions::SimpleReference
299
+ id: remark_variable
300
+ statements:
301
+ - _class: Expressir::Model::Statements::Null
302
+ - _class: Expressir::Model::Statements::Repeat
303
+ id: remark_repeat
304
+ remarks:
305
+ - rule repeat scope - rule repeat
306
+ bound1:
307
+ _class: Expressir::Model::Literals::Integer
308
+ value: '1'
309
+ bound2:
310
+ _class: Expressir::Model::Literals::Integer
311
+ value: '9'
312
+ statements:
313
+ - _class: Expressir::Model::Statements::Null
314
+ - _class: Expressir::Model::Statements::Assignment
315
+ ref:
316
+ _class: Expressir::Model::Expressions::SimpleReference
317
+ id: remark_variable
318
+ expression:
319
+ _class: Expressir::Model::Expressions::QueryExpression
320
+ id: remark_query
321
+ remarks:
322
+ - rule query scope - rule query
323
+ aggregate_source:
324
+ _class: Expressir::Model::Expressions::SimpleReference
325
+ id: remark_variable
326
+ expression:
327
+ _class: Expressir::Model::Literals::Logical
328
+ value: :TRUE
329
+ where:
330
+ - _class: Expressir::Model::Where
331
+ id: WR1
332
+ remarks:
333
+ - rule scope - rule where
334
+ - rule scope - rule where, with prefix
335
+ - schema scope - rule where
336
+ - schema scope - rule where, with prefix
337
+ - universal scope - rule where
338
+ - universal scope - rule where, with prefix
339
+ expression:
340
+ _class: Expressir::Model::Literals::Logical
341
+ value: :TRUE
342
+ informal_propositions:
343
+ - _class: Expressir::Model::InformalProposition
344
+ id: IP1
345
+ remarks:
346
+ - rule scope - rule informal proposition
347
+ - rule scope - rule informal proposition, with prefix
348
+ - schema scope - rule informal proposition
349
+ - schema scope - rule informal proposition, with prefix
350
+ - universal scope - rule informal proposition
351
+ - universal scope - rule informal proposition, with prefix
352
+ procedures:
353
+ - _class: Expressir::Model::Procedure
354
+ id: remark_procedure
355
+ remarks:
356
+ - schema scope - procedure
357
+ - universal scope - procedure
358
+ parameters:
359
+ - _class: Expressir::Model::Parameter
360
+ id: remark_parameter
361
+ remarks:
362
+ - procedure scope - procedure parameter
363
+ - schema scope - procedure parameter
364
+ - universal scope - procedure parameter
365
+ type:
366
+ _class: Expressir::Model::Types::String
367
+ types:
368
+ - _class: Expressir::Model::Type
369
+ id: remark_type
370
+ remarks:
371
+ - procedure scope - procedure type
372
+ - schema scope - procedure type
373
+ - universal scope - procedure type
374
+ type:
375
+ _class: Expressir::Model::Types::Enumeration
376
+ items:
377
+ - _class: Expressir::Model::EnumerationItem
378
+ id: remark_enumeration_item
379
+ remarks:
380
+ - procedure scope - procedure enumeration item
381
+ - procedure scope - procedure enumeration item, on the same level as the
382
+ type
383
+ - schema scope - procedure enumeration item
384
+ - schema scope - procedure enumeration item, on the same level as the type
385
+ - universal scope - procedure enumeration item
386
+ - universal scope - procedure enumeration item, on the same level as the
387
+ type
388
+ constants:
389
+ - _class: Expressir::Model::Constant
390
+ id: remark_constant
391
+ remarks:
392
+ - procedure scope - procedure constant
393
+ - schema scope - procedure constant
394
+ - universal scope - procedure constant
395
+ type:
396
+ _class: Expressir::Model::Types::String
397
+ expression:
398
+ _class: Expressir::Model::Literals::String
399
+ value: xxx
400
+ variables:
401
+ - _class: Expressir::Model::Variable
402
+ id: remark_variable
403
+ remarks:
404
+ - procedure scope - procedure variable
405
+ - schema scope - procedure variable
406
+ - universal scope - procedure variable
407
+ type:
408
+ _class: Expressir::Model::Types::String
409
+ statements:
410
+ - _class: Expressir::Model::Statements::Alias
411
+ id: remark_alias
412
+ remarks:
413
+ - procedure alias scope - procedure alias
414
+ expression:
415
+ _class: Expressir::Model::Expressions::SimpleReference
416
+ id: remark_variable
417
+ statements:
418
+ - _class: Expressir::Model::Statements::Null
419
+ - _class: Expressir::Model::Statements::Repeat
420
+ id: remark_repeat
421
+ remarks:
422
+ - procedure repeat scope - procedure repeat
423
+ bound1:
424
+ _class: Expressir::Model::Literals::Integer
425
+ value: '1'
426
+ bound2:
427
+ _class: Expressir::Model::Literals::Integer
428
+ value: '9'
429
+ statements:
430
+ - _class: Expressir::Model::Statements::Null
431
+ - _class: Expressir::Model::Statements::Assignment
432
+ ref:
433
+ _class: Expressir::Model::Expressions::SimpleReference
434
+ id: remark_variable
435
+ expression:
436
+ _class: Expressir::Model::Expressions::QueryExpression
437
+ id: remark_query
438
+ remarks:
439
+ - procedure query scope - procedure query
440
+ aggregate_source:
441
+ _class: Expressir::Model::Expressions::SimpleReference
442
+ id: remark_variable
443
+ expression:
444
+ _class: Expressir::Model::Literals::Logical
445
+ value: :TRUE