expressir 1.3.0.pre.1-aarch64-linux-gnu

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 (146) hide show
  1. checksums.yaml +7 -0
  2. data/.cross_rubies +20 -0
  3. data/.github/workflows/rake.yml +312 -0
  4. data/.github/workflows/release.yml +124 -0
  5. data/.gitignore +23 -0
  6. data/.gitmodules +6 -0
  7. data/.hound.yml +3 -0
  8. data/.rspec +2 -0
  9. data/.rubocop.yml +18 -0
  10. data/.yardopts +11 -0
  11. data/Gemfile +4 -0
  12. data/README.adoc +155 -0
  13. data/Rakefile +17 -0
  14. data/bin/console +11 -0
  15. data/bin/rspec +29 -0
  16. data/bin/setup +8 -0
  17. data/docs/development.md +90 -0
  18. data/exe/expressir +22 -0
  19. data/exe/format +18 -0
  20. data/exe/format-test +81 -0
  21. data/exe/generate-parser +51 -0
  22. data/expressir.gemspec +48 -0
  23. data/lib/expressir/cli/ui.rb +36 -0
  24. data/lib/expressir/cli.rb +21 -0
  25. data/lib/expressir/config.rb +23 -0
  26. data/lib/expressir/express/2.7/express_parser.so +0 -0
  27. data/lib/expressir/express/3.0/express_parser.so +0 -0
  28. data/lib/expressir/express/3.1/express_parser.so +0 -0
  29. data/lib/expressir/express/3.2/express_parser.so +0 -0
  30. data/lib/expressir/express/cache.rb +51 -0
  31. data/lib/expressir/express/extension.rb +30 -0
  32. data/lib/expressir/express/formatter.rb +1608 -0
  33. data/lib/expressir/express/hyperlink_formatter.rb +36 -0
  34. data/lib/expressir/express/model_visitor.rb +24 -0
  35. data/lib/expressir/express/parser.rb +79 -0
  36. data/lib/expressir/express/resolve_references_model_visitor.rb +31 -0
  37. data/lib/expressir/express/schema_head_formatter.rb +23 -0
  38. data/lib/expressir/express/visitor.rb +2581 -0
  39. data/lib/expressir/model/cache.rb +17 -0
  40. data/lib/expressir/model/data_type.rb +9 -0
  41. data/lib/expressir/model/data_types/aggregate.rb +31 -0
  42. data/lib/expressir/model/data_types/array.rb +31 -0
  43. data/lib/expressir/model/data_types/bag.rb +25 -0
  44. data/lib/expressir/model/data_types/binary.rb +22 -0
  45. data/lib/expressir/model/data_types/boolean.rb +10 -0
  46. data/lib/expressir/model/data_types/enumeration.rb +25 -0
  47. data/lib/expressir/model/data_types/enumeration_item.rb +26 -0
  48. data/lib/expressir/model/data_types/generic.rb +26 -0
  49. data/lib/expressir/model/data_types/generic_entity.rb +26 -0
  50. data/lib/expressir/model/data_types/integer.rb +10 -0
  51. data/lib/expressir/model/data_types/list.rb +28 -0
  52. data/lib/expressir/model/data_types/logical.rb +10 -0
  53. data/lib/expressir/model/data_types/number.rb +10 -0
  54. data/lib/expressir/model/data_types/real.rb +19 -0
  55. data/lib/expressir/model/data_types/select.rb +28 -0
  56. data/lib/expressir/model/data_types/set.rb +25 -0
  57. data/lib/expressir/model/data_types/string.rb +22 -0
  58. data/lib/expressir/model/declaration.rb +9 -0
  59. data/lib/expressir/model/declarations/attribute.rb +47 -0
  60. data/lib/expressir/model/declarations/constant.rb +34 -0
  61. data/lib/expressir/model/declarations/entity.rb +53 -0
  62. data/lib/expressir/model/declarations/function.rb +67 -0
  63. data/lib/expressir/model/declarations/interface.rb +28 -0
  64. data/lib/expressir/model/declarations/interface_item.rb +23 -0
  65. data/lib/expressir/model/declarations/interfaced_item.rb +37 -0
  66. data/lib/expressir/model/declarations/parameter.rb +34 -0
  67. data/lib/expressir/model/declarations/procedure.rb +64 -0
  68. data/lib/expressir/model/declarations/remark_item.rb +21 -0
  69. data/lib/expressir/model/declarations/rule.rb +71 -0
  70. data/lib/expressir/model/declarations/schema.rb +117 -0
  71. data/lib/expressir/model/declarations/schema_version.rb +22 -0
  72. data/lib/expressir/model/declarations/schema_version_item.rb +22 -0
  73. data/lib/expressir/model/declarations/subtype_constraint.rb +40 -0
  74. data/lib/expressir/model/declarations/type.rb +45 -0
  75. data/lib/expressir/model/declarations/unique_rule.rb +31 -0
  76. data/lib/expressir/model/declarations/variable.rb +34 -0
  77. data/lib/expressir/model/declarations/where_rule.rb +31 -0
  78. data/lib/expressir/model/expression.rb +9 -0
  79. data/lib/expressir/model/expressions/aggregate_initializer.rb +19 -0
  80. data/lib/expressir/model/expressions/aggregate_initializer_item.rb +22 -0
  81. data/lib/expressir/model/expressions/binary_expression.rb +53 -0
  82. data/lib/expressir/model/expressions/entity_constructor.rb +22 -0
  83. data/lib/expressir/model/expressions/function_call.rb +22 -0
  84. data/lib/expressir/model/expressions/interval.rb +34 -0
  85. data/lib/expressir/model/expressions/query_expression.rb +35 -0
  86. data/lib/expressir/model/expressions/unary_expression.rb +27 -0
  87. data/lib/expressir/model/identifier.rb +34 -0
  88. data/lib/expressir/model/literal.rb +9 -0
  89. data/lib/expressir/model/literals/binary.rb +19 -0
  90. data/lib/expressir/model/literals/integer.rb +19 -0
  91. data/lib/expressir/model/literals/logical.rb +23 -0
  92. data/lib/expressir/model/literals/real.rb +19 -0
  93. data/lib/expressir/model/literals/string.rb +22 -0
  94. data/lib/expressir/model/model_element.rb +208 -0
  95. data/lib/expressir/model/reference.rb +9 -0
  96. data/lib/expressir/model/references/attribute_reference.rb +22 -0
  97. data/lib/expressir/model/references/group_reference.rb +22 -0
  98. data/lib/expressir/model/references/index_reference.rb +27 -0
  99. data/lib/expressir/model/references/simple_reference.rb +24 -0
  100. data/lib/expressir/model/repository.rb +23 -0
  101. data/lib/expressir/model/statement.rb +9 -0
  102. data/lib/expressir/model/statements/alias.rb +35 -0
  103. data/lib/expressir/model/statements/assignment.rb +22 -0
  104. data/lib/expressir/model/statements/case.rb +25 -0
  105. data/lib/expressir/model/statements/case_action.rb +22 -0
  106. data/lib/expressir/model/statements/compound.rb +19 -0
  107. data/lib/expressir/model/statements/escape.rb +10 -0
  108. data/lib/expressir/model/statements/if.rb +25 -0
  109. data/lib/expressir/model/statements/null.rb +10 -0
  110. data/lib/expressir/model/statements/procedure_call.rb +22 -0
  111. data/lib/expressir/model/statements/repeat.rb +47 -0
  112. data/lib/expressir/model/statements/return.rb +19 -0
  113. data/lib/expressir/model/statements/skip.rb +10 -0
  114. data/lib/expressir/model/supertype_expression.rb +9 -0
  115. data/lib/expressir/model/supertype_expressions/binary_supertype_expression.rb +29 -0
  116. data/lib/expressir/model/supertype_expressions/oneof_supertype_expression.rb +19 -0
  117. data/lib/expressir/model.rb +79 -0
  118. data/lib/expressir/version.rb +3 -0
  119. data/lib/expressir.rb +24 -0
  120. data/rakelib/antlr4-native.rake +161 -0
  121. data/rakelib/cross-ruby.rake +383 -0
  122. data/spec/acceptance/version_spec.rb +27 -0
  123. data/spec/expressir/express/cache_spec.rb +89 -0
  124. data/spec/expressir/express/formatter_spec.rb +173 -0
  125. data/spec/expressir/express/parser_spec.rb +141 -0
  126. data/spec/expressir/model/model_element_spec.rb +318 -0
  127. data/spec/spec_helper.rb +24 -0
  128. data/spec/support/console_helper.rb +29 -0
  129. data/spec/syntax/multiple.exp +23 -0
  130. data/spec/syntax/multiple.yaml +198 -0
  131. data/spec/syntax/multiple_formatted.exp +71 -0
  132. data/spec/syntax/multiple_hyperlink_formatted.exp +71 -0
  133. data/spec/syntax/multiple_schema_head_hyperlink_formatted.exp +13 -0
  134. data/spec/syntax/remark.exp +193 -0
  135. data/spec/syntax/remark.yaml +471 -0
  136. data/spec/syntax/remark_formatted.exp +228 -0
  137. data/spec/syntax/single.exp +4 -0
  138. data/spec/syntax/single.yaml +18 -0
  139. data/spec/syntax/single_formatted.exp +10 -0
  140. data/spec/syntax/single_formatted.yaml +36 -0
  141. data/spec/syntax/syntax.exp +333 -0
  142. data/spec/syntax/syntax.yaml +3509 -0
  143. data/spec/syntax/syntax_formatted.exp +902 -0
  144. data/spec/syntax/syntax_hyperlink_formatted.exp +902 -0
  145. data/spec/syntax/syntax_schema_head_formatted.exp +18 -0
  146. metadata +391 -0
@@ -0,0 +1,198 @@
1
+ ---
2
+ _class: Expressir::Model::Repository
3
+ schemas:
4
+ - _class: Expressir::Model::Declarations::Schema
5
+ file: spec/syntax/multiple.exp
6
+ id: multiple_schema
7
+ interfaces:
8
+ - _class: Expressir::Model::Declarations::Interface
9
+ kind: :REFERENCE
10
+ schema:
11
+ _class: Expressir::Model::References::SimpleReference
12
+ id: multiple_schema2
13
+ base_path: multiple_schema2
14
+ - _class: Expressir::Model::Declarations::Interface
15
+ kind: :REFERENCE
16
+ schema:
17
+ _class: Expressir::Model::References::SimpleReference
18
+ id: multiple_schema3
19
+ base_path: multiple_schema3
20
+ items:
21
+ - _class: Expressir::Model::Declarations::InterfaceItem
22
+ ref:
23
+ _class: Expressir::Model::References::SimpleReference
24
+ id: attribute_entity3
25
+ base_path: multiple_schema3.attribute_entity3
26
+ - _class: Expressir::Model::Declarations::Interface
27
+ kind: :REFERENCE
28
+ schema:
29
+ _class: Expressir::Model::References::SimpleReference
30
+ id: multiple_schema4
31
+ base_path: multiple_schema4
32
+ items:
33
+ - _class: Expressir::Model::Declarations::InterfaceItem
34
+ ref:
35
+ _class: Expressir::Model::References::SimpleReference
36
+ id: attribute_entity
37
+ base_path: multiple_schema4.attribute_entity
38
+ id: attribute_entity4
39
+ entities:
40
+ - _class: Expressir::Model::Declarations::Entity
41
+ id: test
42
+ - _class: Expressir::Model::Declarations::Entity
43
+ id: empty_entity
44
+ - _class: Expressir::Model::Declarations::Entity
45
+ id: attribute_entity
46
+ attributes:
47
+ - _class: Expressir::Model::Declarations::Attribute
48
+ id: test
49
+ kind: :EXPLICIT
50
+ type:
51
+ _class: Expressir::Model::DataTypes::Boolean
52
+ - _class: Expressir::Model::Declarations::Entity
53
+ id: subtype_empty_entity
54
+ subtype_of:
55
+ - _class: Expressir::Model::References::SimpleReference
56
+ id: empty_entity
57
+ base_path: multiple_schema.empty_entity
58
+ - _class: Expressir::Model::Declarations::Entity
59
+ id: subtype_attribute_entity
60
+ subtype_of:
61
+ - _class: Expressir::Model::References::SimpleReference
62
+ id: attribute_entity
63
+ base_path: multiple_schema.attribute_entity
64
+ attributes:
65
+ - _class: Expressir::Model::Declarations::Attribute
66
+ kind: :EXPLICIT
67
+ supertype_attribute:
68
+ _class: Expressir::Model::References::AttributeReference
69
+ ref:
70
+ _class: Expressir::Model::References::GroupReference
71
+ ref:
72
+ _class: Expressir::Model::References::SimpleReference
73
+ id: SELF
74
+ entity:
75
+ _class: Expressir::Model::References::SimpleReference
76
+ id: attribute_entity
77
+ base_path: multiple_schema.attribute_entity
78
+ attribute:
79
+ _class: Expressir::Model::References::SimpleReference
80
+ id: test
81
+ type:
82
+ _class: Expressir::Model::DataTypes::Boolean
83
+ - _class: Expressir::Model::Declarations::Entity
84
+ id: subtype_attribute_entity2
85
+ subtype_of:
86
+ - _class: Expressir::Model::References::SimpleReference
87
+ id: attribute_entity2
88
+ base_path: multiple_schema2.attribute_entity2
89
+ attributes:
90
+ - _class: Expressir::Model::Declarations::Attribute
91
+ kind: :EXPLICIT
92
+ supertype_attribute:
93
+ _class: Expressir::Model::References::AttributeReference
94
+ ref:
95
+ _class: Expressir::Model::References::GroupReference
96
+ ref:
97
+ _class: Expressir::Model::References::SimpleReference
98
+ id: SELF
99
+ entity:
100
+ _class: Expressir::Model::References::SimpleReference
101
+ id: attribute_entity2
102
+ base_path: multiple_schema2.attribute_entity2
103
+ attribute:
104
+ _class: Expressir::Model::References::SimpleReference
105
+ id: test
106
+ type:
107
+ _class: Expressir::Model::DataTypes::Boolean
108
+ - _class: Expressir::Model::Declarations::Entity
109
+ id: subtype_attribute_entity3
110
+ subtype_of:
111
+ - _class: Expressir::Model::References::SimpleReference
112
+ id: attribute_entity3
113
+ base_path: multiple_schema3.attribute_entity3
114
+ attributes:
115
+ - _class: Expressir::Model::Declarations::Attribute
116
+ kind: :EXPLICIT
117
+ supertype_attribute:
118
+ _class: Expressir::Model::References::AttributeReference
119
+ ref:
120
+ _class: Expressir::Model::References::GroupReference
121
+ ref:
122
+ _class: Expressir::Model::References::SimpleReference
123
+ id: SELF
124
+ entity:
125
+ _class: Expressir::Model::References::SimpleReference
126
+ id: attribute_entity3
127
+ base_path: multiple_schema3.attribute_entity3
128
+ attribute:
129
+ _class: Expressir::Model::References::SimpleReference
130
+ id: test
131
+ type:
132
+ _class: Expressir::Model::DataTypes::Boolean
133
+ - _class: Expressir::Model::Declarations::Entity
134
+ id: subtype_attribute_entity4
135
+ subtype_of:
136
+ - _class: Expressir::Model::References::SimpleReference
137
+ id: attribute_entity4
138
+ base_path: multiple_schema4.attribute_entity
139
+ attributes:
140
+ - _class: Expressir::Model::Declarations::Attribute
141
+ kind: :EXPLICIT
142
+ supertype_attribute:
143
+ _class: Expressir::Model::References::AttributeReference
144
+ ref:
145
+ _class: Expressir::Model::References::GroupReference
146
+ ref:
147
+ _class: Expressir::Model::References::SimpleReference
148
+ id: SELF
149
+ entity:
150
+ _class: Expressir::Model::References::SimpleReference
151
+ id: attribute_entity4
152
+ base_path: multiple_schema4.attribute_entity
153
+ attribute:
154
+ _class: Expressir::Model::References::SimpleReference
155
+ id: test
156
+ type:
157
+ _class: Expressir::Model::DataTypes::Boolean
158
+ - _class: Expressir::Model::Declarations::Entity
159
+ id: subtype_missing_entity
160
+ subtype_of:
161
+ - _class: Expressir::Model::References::SimpleReference
162
+ id: missing_entity
163
+ - _class: Expressir::Model::Declarations::Schema
164
+ file: spec/syntax/multiple.exp
165
+ id: multiple_schema2
166
+ entities:
167
+ - _class: Expressir::Model::Declarations::Entity
168
+ id: attribute_entity2
169
+ attributes:
170
+ - _class: Expressir::Model::Declarations::Attribute
171
+ id: test
172
+ kind: :EXPLICIT
173
+ type:
174
+ _class: Expressir::Model::DataTypes::Boolean
175
+ - _class: Expressir::Model::Declarations::Schema
176
+ file: spec/syntax/multiple.exp
177
+ id: multiple_schema3
178
+ entities:
179
+ - _class: Expressir::Model::Declarations::Entity
180
+ id: attribute_entity3
181
+ attributes:
182
+ - _class: Expressir::Model::Declarations::Attribute
183
+ id: test
184
+ kind: :EXPLICIT
185
+ type:
186
+ _class: Expressir::Model::DataTypes::Boolean
187
+ - _class: Expressir::Model::Declarations::Schema
188
+ file: spec/syntax/multiple.exp
189
+ id: multiple_schema4
190
+ entities:
191
+ - _class: Expressir::Model::Declarations::Entity
192
+ id: attribute_entity
193
+ attributes:
194
+ - _class: Expressir::Model::Declarations::Attribute
195
+ id: test
196
+ kind: :EXPLICIT
197
+ type:
198
+ _class: Expressir::Model::DataTypes::Boolean
@@ -0,0 +1,71 @@
1
+ SCHEMA multiple_schema;
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_schema;
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_schema.empty_entity,empty_entity>>}}});
21
+ END_ENTITY;
22
+
23
+ ENTITY subtype_attribute_entity
24
+ SUBTYPE OF ({{{<<express:multiple_schema.attribute_entity,attribute_entity>>}}});
25
+ SELF\{{{<<express:multiple_schema.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_schema;
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;
@@ -0,0 +1,193 @@
1
+ (*"remark_schema"
2
+ Any character within the EXPRESS character set may occur between the start and end of
3
+ an embedded remark including the newline character; therefore, embedded remarks can span
4
+ several physical lines.
5
+ *)
6
+ --"remark_schema" The tail remark is written at the end of a physical line.
7
+ --"remark_schema" UTF8 test: Příliš žluťoučký kůň úpěl ďábelské ódy.
8
+
9
+ --"remark_schema" universal scope - schema before
10
+
11
+ SCHEMA remark_schema;
12
+
13
+ CONSTANT remark_constant : STRING := 'xxx'; END_CONSTANT;
14
+ TYPE remark_type = ENUMERATION OF (remark_enumeration_item);
15
+ WHERE WR1: TRUE;
16
+ --"WR1" type scope - type where
17
+ --"wr:WR1" type scope - type where, with prefix
18
+ --"IP1" type scope - type informal proposition
19
+ --"ip:IP1" type scope - type informal proposition, with prefix
20
+ END_TYPE;
21
+ ENTITY remark_entity;
22
+ remark_attribute : STRING;
23
+ DERIVE remark_derived_attribute : STRING := 'xxx';
24
+ INVERSE remark_inverse_attribute : remark_entity FOR remark_attribute;
25
+ UNIQUE UR1: remark_attribute;
26
+ WHERE WR1:
27
+ --"unusual_placement" placed inside WHERE clauses (or other enumerable context)
28
+ TRUE;
29
+ --"remark_attribute" entity scope - entity attribute
30
+ --"remark_derived_attribute" entity scope - entity derived attribute
31
+ --"remark_inverse_attribute" entity scope - entity inverse attribute
32
+ --"UR1" entity scope - entity unique
33
+ --"WR1" entity scope - entity where
34
+ --"wr:WR1" entity scope - entity where, with prefix
35
+ --"IP1" entity scope - entity informal proposition
36
+ --"ip:IP1" entity scope - entity informal proposition, with prefix
37
+ END_ENTITY;
38
+ SUBTYPE_CONSTRAINT remark_subtype_constraint FOR remark_entity; END_SUBTYPE_CONSTRAINT;
39
+ FUNCTION remark_function(remark_parameter : STRING) : BOOLEAN;
40
+ TYPE remark_type = ENUMERATION OF (remark_enumeration_item); END_TYPE;
41
+ CONSTANT remark_constant : STRING := 'xxx'; END_CONSTANT;
42
+ LOCAL remark_variable : STRING; END_LOCAL;
43
+ ALIAS remark_alias FOR remark_variable; ;
44
+ --"remark_alias" function alias scope - function alias
45
+ END_ALIAS;
46
+ REPEAT remark_repeat := 1 TO 9; ;
47
+ --"remark_repeat" function repeat scope - function repeat
48
+ END_REPEAT;
49
+ remark_variable := QUERY(remark_query <* remark_variable | TRUE
50
+ --"remark_query" function query scope - function query
51
+ );
52
+ --"remark_parameter" function scope - function parameter
53
+ --"remark_type" function scope - function type
54
+ --"remark_type.remark_enumeration_item" function scope - function enumeration item
55
+ --"remark_enumeration_item" function scope - function enumeration item, on the same level as the type
56
+ --"remark_constant" function scope - function constant
57
+ --"remark_variable" function scope - function variable
58
+ END_FUNCTION;
59
+ RULE remark_rule FOR (remark_entity);
60
+ TYPE remark_type = ENUMERATION OF (remark_enumeration_item); END_TYPE;
61
+ CONSTANT remark_constant : STRING := 'xxx'; END_CONSTANT;
62
+ LOCAL remark_variable : STRING; END_LOCAL;
63
+ ALIAS remark_alias FOR remark_variable; ;
64
+ --"remark_alias" rule alias scope - rule alias
65
+ END_ALIAS;
66
+ REPEAT remark_repeat := 1 TO 9; ;
67
+ --"remark_repeat" rule repeat scope - rule repeat
68
+ END_REPEAT;
69
+ remark_variable := QUERY(remark_query <* remark_variable | TRUE
70
+ --"remark_query" rule query scope - rule query
71
+ );
72
+ WHERE WR1: TRUE;
73
+ --"remark_type" rule scope - rule type
74
+ --"remark_type.remark_enumeration_item" rule scope - rule enumeration item
75
+ --"remark_enumeration_item" rule scope - rule enumeration item, on the same level as the type
76
+ --"remark_constant" rule scope - rule constant
77
+ --"remark_variable" rule scope - rule variable
78
+ --"WR1" rule scope - rule where
79
+ --"wr:WR1" rule scope - rule where, with prefix
80
+ --"IP1" rule scope - rule informal proposition
81
+ --"ip:IP1" rule scope - rule informal proposition, with prefix
82
+ END_RULE;
83
+ PROCEDURE remark_procedure(remark_parameter : STRING);
84
+ TYPE remark_type = ENUMERATION OF (remark_enumeration_item); END_TYPE;
85
+ CONSTANT remark_constant : STRING := 'xxx'; END_CONSTANT;
86
+ LOCAL remark_variable : STRING; END_LOCAL;
87
+ ALIAS remark_alias FOR remark_variable; ;
88
+ --"remark_alias" procedure alias scope - procedure alias
89
+ END_ALIAS;
90
+ REPEAT remark_repeat := 1 TO 9; ;
91
+ --"remark_repeat" procedure repeat scope - procedure repeat
92
+ END_REPEAT;
93
+ remark_variable := QUERY(remark_query <* remark_variable | TRUE
94
+ --"remark_query" procedure query scope - procedure query
95
+ );
96
+ --"remark_parameter" procedure scope - procedure parameter
97
+ --"remark_type" procedure scope - procedure type
98
+ --"remark_type.remark_enumeration_item" procedure scope - procedure enumeration item
99
+ --"remark_enumeration_item" procedure scope - procedure enumeration item, on the same level as the type
100
+ --"remark_constant" procedure scope - procedure constant
101
+ --"remark_variable" procedure scope - procedure variable
102
+ END_PROCEDURE;
103
+
104
+ --"remark_constant" schema scope - constant
105
+ --"remark_type" schema scope - type
106
+ --"remark_type.WR1" schema scope - type where
107
+ --"remark_type.wr:WR1" schema scope - type where, with prefix
108
+ --"remark_type.IP1" schema scope - type informal proposition
109
+ --"remark_type.ip:IP1" schema scope - type informal proposition, with prefix
110
+ --"remark_type.remark_enumeration_item" schema scope - enumeration item
111
+ --"remark_enumeration_item" schema scope - enumeration item, on the same level as the type
112
+ --"remark_entity" schema scope - entity
113
+ --"remark_entity.remark_attribute" schema scope - entity attribute
114
+ --"remark_entity.remark_derived_attribute" schema scope - entity derived attribute
115
+ --"remark_entity.remark_inverse_attribute" schema scope - entity inverse attribute
116
+ --"remark_entity.UR1" schema scope - entity unique
117
+ --"remark_entity.WR1" schema scope - entity where
118
+ --"remark_entity.wr:WR1" schema scope - entity where, with prefix
119
+ --"remark_entity.IP1" schema scope - entity informal proposition
120
+ --"remark_entity.ip:IP1" schema scope - entity informal proposition, with prefix
121
+ --"remark_subtype_constraint" schema scope - subtype constraint
122
+ --"remark_function" schema scope - function
123
+ --"remark_function.remark_parameter" schema scope - function parameter
124
+ --"remark_function.remark_type" schema scope - function type
125
+ --"remark_function.remark_type.remark_enumeration_item" schema scope - function enumeration item
126
+ --"remark_function.remark_enumeration_item" schema scope - function enumeration item, on the same level as the type
127
+ --"remark_function.remark_constant" schema scope - function constant
128
+ --"remark_function.remark_variable" schema scope - function variable
129
+ --"remark_rule" schema scope - rule
130
+ --"remark_rule.remark_type" schema scope - rule type
131
+ --"remark_rule.remark_type.remark_enumeration_item" schema scope - rule enumeration item
132
+ --"remark_rule.remark_enumeration_item" schema scope - rule enumeration item, on the same level as the type
133
+ --"remark_rule.remark_constant" schema scope - rule constant
134
+ --"remark_rule.remark_variable" schema scope - rule variable
135
+ --"remark_rule.WR1" schema scope - rule where
136
+ --"remark_rule.wr:WR1" schema scope - rule where, with prefix
137
+ --"remark_rule.IP1" schema scope - rule informal proposition
138
+ --"remark_rule.ip:IP1" schema scope - rule informal proposition, with prefix
139
+ --"remark_procedure" schema scope - procedure
140
+ --"remark_procedure.remark_parameter" schema scope - procedure parameter
141
+ --"remark_procedure.remark_type" schema scope - procedure type
142
+ --"remark_procedure.remark_type.remark_enumeration_item" schema scope - procedure enumeration item
143
+ --"remark_procedure.remark_enumeration_item" schema scope - procedure enumeration item, on the same level as the type
144
+ --"remark_procedure.remark_constant" schema scope - procedure constant
145
+ --"remark_procedure.remark_variable" schema scope - procedure variable
146
+ --"remark_item" schema scope - schema remark item
147
+
148
+ END_SCHEMA;
149
+
150
+ --"remark_schema" universal scope - schema
151
+ --"remark_schema.remark_constant" universal scope - constant
152
+ --"remark_schema.remark_type" universal scope - type
153
+ --"remark_schema.remark_type.WR1" universal scope - type where
154
+ --"remark_schema.remark_type.wr:WR1" universal scope - type where, with prefix
155
+ --"remark_schema.remark_type.IP1" universal scope - type informal proposition
156
+ --"remark_schema.remark_type.ip:IP1" universal scope - type informal proposition, with prefix
157
+ --"remark_schema.remark_type.remark_enumeration_item" universal scope - enumeration item
158
+ --"remark_schema.remark_enumeration_item" universal scope - enumeration item, on the same level as the type
159
+ --"remark_schema.remark_entity" universal scope - entity
160
+ --"remark_schema.remark_entity.remark_attribute" universal scope - entity attribute
161
+ --"remark_schema.remark_entity.remark_derived_attribute" universal scope - entity derived attribute
162
+ --"remark_schema.remark_entity.remark_inverse_attribute" universal scope - entity inverse attribute
163
+ --"remark_schema.remark_entity.UR1" universal scope - entity unique
164
+ --"remark_schema.remark_entity.WR1" universal scope - entity where
165
+ --"remark_schema.remark_entity.wr:WR1" universal scope - entity where, with prefix
166
+ --"remark_schema.remark_entity.IP1" universal scope - entity informal proposition
167
+ --"remark_schema.remark_entity.ip:IP1" universal scope - entity informal proposition, with prefix
168
+ --"remark_schema.remark_subtype_constraint" universal scope - subtype constraint
169
+ --"remark_schema.remark_function" universal scope - function
170
+ --"remark_schema.remark_function.remark_parameter" universal scope - function parameter
171
+ --"remark_schema.remark_function.remark_type" universal scope - function type
172
+ --"remark_schema.remark_function.remark_type.remark_enumeration_item" universal scope - function enumeration item
173
+ --"remark_schema.remark_function.remark_enumeration_item" universal scope - function enumeration item, on the same level as the type
174
+ --"remark_schema.remark_function.remark_constant" universal scope - function constant
175
+ --"remark_schema.remark_function.remark_variable" universal scope - function variable
176
+ --"remark_schema.remark_rule" universal scope - rule
177
+ --"remark_schema.remark_rule.remark_type" universal scope - rule type
178
+ --"remark_schema.remark_rule.remark_type.remark_enumeration_item" universal scope - rule enumeration item
179
+ --"remark_schema.remark_rule.remark_enumeration_item" universal scope - rule enumeration item, on the same level as the type
180
+ --"remark_schema.remark_rule.remark_constant" universal scope - rule constant
181
+ --"remark_schema.remark_rule.remark_variable" universal scope - rule variable
182
+ --"remark_schema.remark_rule.WR1" universal scope - rule where
183
+ --"remark_schema.remark_rule.wr:WR1" universal scope - rule where, with prefix
184
+ --"remark_schema.remark_rule.IP1" universal scope - rule informal proposition
185
+ --"remark_schema.remark_rule.ip:IP1" universal scope - rule informal proposition, with prefix
186
+ --"remark_schema.remark_procedure" universal scope - procedure
187
+ --"remark_schema.remark_procedure.remark_parameter" universal scope - procedure parameter
188
+ --"remark_schema.remark_procedure.remark_type" universal scope - procedure type
189
+ --"remark_schema.remark_procedure.remark_type.remark_enumeration_item" universal scope - procedure enumeration item
190
+ --"remark_schema.remark_procedure.remark_enumeration_item" universal scope - procedure enumeration item, on the same level as the type
191
+ --"remark_schema.remark_procedure.remark_constant" universal scope - procedure constant
192
+ --"remark_schema.remark_procedure.remark_variable" universal scope - procedure variable
193
+ --"remark_schema.remark_item" universal scope - schema remark item