expressir 0.2.8-x64-mingw32 → 0.2.13-x64-mingw32

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 (105) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/release.yml +1 -7
  3. data/exe/format +20 -0
  4. data/expressir.gemspec +3 -2
  5. data/lib/expressir/express_exp/2.4/express_parser.so +0 -0
  6. data/lib/expressir/express_exp/2.5/express_parser.so +0 -0
  7. data/lib/expressir/express_exp/2.6/express_parser.so +0 -0
  8. data/lib/expressir/express_exp/2.7/express_parser.so +0 -0
  9. data/lib/expressir/express_exp/3.0/express_parser.so +0 -0
  10. data/lib/expressir/express_exp/formatter.rb +147 -110
  11. data/lib/expressir/express_exp/hyperlink_formatter.rb +25 -0
  12. data/lib/expressir/express_exp/parser.rb +14 -1
  13. data/lib/expressir/express_exp/schema_head_formatter.rb +14 -0
  14. data/lib/expressir/express_exp/visitor.rb +197 -111
  15. data/lib/expressir/model.rb +3 -1
  16. data/lib/expressir/model/attribute.rb +5 -1
  17. data/lib/expressir/model/constant.rb +5 -1
  18. data/lib/expressir/model/entity.rb +14 -20
  19. data/lib/expressir/model/enumeration_item.rb +5 -1
  20. data/lib/expressir/model/expressions/aggregate_initializer.rb +4 -2
  21. data/lib/expressir/model/expressions/aggregate_item.rb +3 -1
  22. data/lib/expressir/model/expressions/attribute_reference.rb +3 -1
  23. data/lib/expressir/model/expressions/binary_expression.rb +3 -1
  24. data/lib/expressir/model/expressions/call.rb +4 -2
  25. data/lib/expressir/model/expressions/entity_constructor.rb +4 -2
  26. data/lib/expressir/model/expressions/group_reference.rb +3 -1
  27. data/lib/expressir/model/expressions/index_reference.rb +3 -1
  28. data/lib/expressir/model/expressions/interval.rb +3 -1
  29. data/lib/expressir/model/expressions/query_expression.rb +5 -2
  30. data/lib/expressir/model/expressions/simple_reference.rb +3 -1
  31. data/lib/expressir/model/expressions/unary_expression.rb +3 -1
  32. data/lib/expressir/model/function.rb +28 -39
  33. data/lib/expressir/model/identifier.rb +1 -3
  34. data/lib/expressir/model/informal_proposition.rb +15 -0
  35. data/lib/expressir/model/interface.rb +4 -2
  36. data/lib/expressir/model/literals/binary.rb +3 -1
  37. data/lib/expressir/model/literals/integer.rb +3 -1
  38. data/lib/expressir/model/literals/logical.rb +3 -1
  39. data/lib/expressir/model/literals/real.rb +3 -1
  40. data/lib/expressir/model/literals/string.rb +3 -1
  41. data/lib/expressir/model/model_element.rb +140 -0
  42. data/lib/expressir/model/parameter.rb +5 -1
  43. data/lib/expressir/model/procedure.rb +29 -40
  44. data/lib/expressir/model/renamed_ref.rb +3 -1
  45. data/lib/expressir/model/repository.rb +5 -5
  46. data/lib/expressir/model/rule.rb +33 -41
  47. data/lib/expressir/model/schema.rb +44 -46
  48. data/lib/expressir/model/statements/alias.rb +6 -3
  49. data/lib/expressir/model/statements/assignment.rb +3 -1
  50. data/lib/expressir/model/statements/call.rb +4 -2
  51. data/lib/expressir/model/statements/case.rb +4 -2
  52. data/lib/expressir/model/statements/case_action.rb +4 -2
  53. data/lib/expressir/model/statements/compound.rb +4 -2
  54. data/lib/expressir/model/statements/escape.rb +1 -1
  55. data/lib/expressir/model/statements/if.rb +5 -3
  56. data/lib/expressir/model/statements/null.rb +1 -1
  57. data/lib/expressir/model/statements/repeat.rb +6 -3
  58. data/lib/expressir/model/statements/return.rb +3 -1
  59. data/lib/expressir/model/statements/skip.rb +1 -1
  60. data/lib/expressir/model/subtype_constraint.rb +5 -2
  61. data/lib/expressir/model/type.rb +11 -4
  62. data/lib/expressir/model/types/aggregate.rb +5 -1
  63. data/lib/expressir/model/types/array.rb +3 -1
  64. data/lib/expressir/model/types/bag.rb +3 -1
  65. data/lib/expressir/model/types/binary.rb +3 -1
  66. data/lib/expressir/model/types/boolean.rb +1 -1
  67. data/lib/expressir/model/types/enumeration.rb +5 -3
  68. data/lib/expressir/model/types/generic.rb +5 -1
  69. data/lib/expressir/model/types/generic_entity.rb +5 -1
  70. data/lib/expressir/model/types/integer.rb +1 -1
  71. data/lib/expressir/model/types/list.rb +3 -1
  72. data/lib/expressir/model/types/logical.rb +1 -1
  73. data/lib/expressir/model/types/number.rb +1 -1
  74. data/lib/expressir/model/types/real.rb +3 -1
  75. data/lib/expressir/model/types/select.rb +5 -3
  76. data/lib/expressir/model/types/set.rb +3 -1
  77. data/lib/expressir/model/types/string.rb +3 -1
  78. data/lib/expressir/model/unique.rb +6 -2
  79. data/lib/expressir/model/variable.rb +5 -1
  80. data/lib/expressir/model/where.rb +5 -1
  81. data/lib/expressir/version.rb +1 -1
  82. data/original/examples/syntax/hyperlink.exp +8 -0
  83. data/original/examples/syntax/hyperlink_formatted.exp +19 -0
  84. data/original/examples/syntax/remark.exp +63 -20
  85. data/original/examples/syntax/remark_formatted.exp +62 -24
  86. data/original/examples/syntax/simple.exp +3 -0
  87. data/original/examples/syntax/source.exp +16 -0
  88. data/original/examples/syntax/syntax.exp +201 -190
  89. data/original/examples/syntax/syntax_formatted.exp +370 -799
  90. data/spec/expressir/express_exp/{format_remark_spec.rb → formatter/remark_spec.rb} +2 -2
  91. data/spec/expressir/express_exp/{format_syntax_spec.rb → formatter/syntax_spec.rb} +2 -2
  92. data/spec/expressir/express_exp/hyperlink_formatter_spec.rb +24 -0
  93. data/spec/expressir/express_exp/parser/head_source_spec.rb +38 -0
  94. data/spec/expressir/express_exp/parser/multiple_spec.rb +32 -0
  95. data/spec/expressir/express_exp/{parse_remark_spec.rb → parser/remark_spec.rb} +120 -55
  96. data/spec/expressir/express_exp/{source_spec.rb → parser/source_spec.rb} +3 -6
  97. data/spec/expressir/express_exp/parser/syntax_spec.rb +3080 -0
  98. data/spec/expressir/express_exp/schema_head_formatter_spec.rb +36 -0
  99. data/spec/expressir/model/{find_spec.rb → model_element/find_spec.rb} +26 -8
  100. data/spec/expressir/model/model_element/hash_spec.rb +66 -0
  101. metadata +38 -13
  102. data/lib/expressir/model/scope.rb +0 -32
  103. data/spec/expressir/express_exp/ap233_spec.rb +0 -22
  104. data/spec/expressir/express_exp/find_spec.rb +0 -28
  105. data/spec/expressir/express_exp/parse_syntax_spec.rb +0 -3003
@@ -2,11 +2,15 @@ SCHEMA syntax_schema 'version';
2
2
  USE FROM contract_schema;
3
3
  USE FROM contract_schema
4
4
  (contract);
5
+ USE FROM contract_schema
6
+ (contract, contract2);
5
7
  USE FROM contract_schema
6
8
  (contract AS contract2);
7
9
  REFERENCE FROM contract_schema;
8
10
  REFERENCE FROM contract_schema
9
11
  (contract);
12
+ REFERENCE FROM contract_schema
13
+ (contract, contract2);
10
14
  REFERENCE FROM contract_schema
11
15
  (contract AS contract2);
12
16
  CONSTANT
@@ -14,254 +18,206 @@ CONSTANT
14
18
  END_CONSTANT;
15
19
  TYPE empty_type = BOOLEAN;
16
20
  END_TYPE;
17
-
18
21
  TYPE where_type = BOOLEAN;
19
22
  WHERE
20
23
  TRUE;
21
24
  END_TYPE;
22
-
23
25
  TYPE where_label_type = BOOLEAN;
24
26
  WHERE
25
27
  WR1 : TRUE;
26
28
  END_TYPE;
27
-
28
29
  ENTITY empty_entity;
29
30
  END_ENTITY;
30
-
31
31
  ENTITY abstract_entity
32
32
  ABSTRACT SUPERTYPE;
33
33
  END_ENTITY;
34
-
35
34
  ENTITY abstract_supertype_entity
36
35
  ABSTRACT SUPERTYPE;
37
36
  END_ENTITY;
38
-
39
37
  ENTITY abstract_supertype_constraint_entity
40
38
  ABSTRACT SUPERTYPE OF (empty_entity);
41
39
  END_ENTITY;
42
-
43
40
  ENTITY supertype_constraint_entity
44
41
  SUPERTYPE OF (empty_entity);
45
42
  END_ENTITY;
46
-
47
43
  ENTITY subtype_entity
48
44
  SUBTYPE OF (empty_entity);
49
45
  END_ENTITY;
50
-
51
46
  ENTITY supertype_constraint_subtype_entity
52
47
  SUPERTYPE OF (empty_entity)
53
48
  SUBTYPE OF (empty_entity);
54
49
  END_ENTITY;
55
-
56
50
  ENTITY attribute_entity;
57
51
  test : BOOLEAN;
58
52
  END_ENTITY;
59
-
60
53
  ENTITY attribute_optional_entity;
61
54
  test : OPTIONAL BOOLEAN;
62
55
  END_ENTITY;
63
-
64
56
  ENTITY attribute_multiple_entity;
65
57
  test : BOOLEAN;
66
58
  test2 : BOOLEAN;
67
59
  END_ENTITY;
68
-
69
60
  ENTITY attribute_multiple_shorthand_entity;
70
61
  test : BOOLEAN;
71
62
  test2 : BOOLEAN;
72
63
  END_ENTITY;
73
-
74
- ENTITY attribute_redeclared_entity;
64
+ ENTITY attribute_redeclared_entity
65
+ SUBTYPE OF (attribute_entity);
75
66
  SELF\attribute_entity.test : BOOLEAN;
76
67
  END_ENTITY;
77
-
78
- ENTITY attribute_redeclared_renamed_entity;
68
+ ENTITY attribute_redeclared_renamed_entity
69
+ SUBTYPE OF (attribute_entity);
79
70
  SELF\attribute_entity.test RENAMED test2 : BOOLEAN;
80
71
  END_ENTITY;
81
-
82
72
  ENTITY derived_attribute_entity;
83
73
  DERIVE
84
74
  test : BOOLEAN := TRUE;
85
75
  END_ENTITY;
86
-
87
- ENTITY derived_attribute_redeclared_entity;
76
+ ENTITY derived_attribute_redeclared_entity
77
+ SUBTYPE OF (attribute_entity);
88
78
  DERIVE
89
79
  SELF\attribute_entity.test : BOOLEAN := TRUE;
90
80
  END_ENTITY;
91
-
92
- ENTITY derived_attribute_redeclared_renamed_entity;
81
+ ENTITY derived_attribute_redeclared_renamed_entity
82
+ SUBTYPE OF (attribute_entity);
93
83
  DERIVE
94
84
  SELF\attribute_entity.test RENAMED test2 : BOOLEAN := TRUE;
95
85
  END_ENTITY;
96
-
97
86
  ENTITY inverse_attribute_entity;
98
87
  INVERSE
99
88
  test : attribute_entity FOR test;
100
89
  END_ENTITY;
101
-
102
90
  ENTITY inverse_attribute_entity_entity;
103
91
  INVERSE
104
92
  test : attribute_entity FOR attribute_entity.test;
105
93
  END_ENTITY;
106
-
107
94
  ENTITY inverse_attribute_set_entity;
108
95
  INVERSE
109
96
  test : SET OF attribute_entity FOR test;
110
97
  END_ENTITY;
111
-
112
98
  ENTITY inverse_attribute_set_bound_entity;
113
99
  INVERSE
114
100
  test : SET [1:9] OF attribute_entity FOR test;
115
101
  END_ENTITY;
116
-
117
102
  ENTITY inverse_attribute_bag_entity;
118
103
  INVERSE
119
104
  test : BAG OF attribute_entity FOR test;
120
105
  END_ENTITY;
121
-
122
106
  ENTITY inverse_attribute_bag_bound_entity;
123
107
  INVERSE
124
108
  test : BAG [1:9] OF attribute_entity FOR test;
125
109
  END_ENTITY;
126
-
127
- ENTITY inverse_attribute_redeclared_entity;
110
+ ENTITY inverse_attribute_redeclared_entity
111
+ SUBTYPE OF (attribute_entity);
128
112
  INVERSE
129
113
  SELF\attribute_entity.test : attribute_entity FOR test;
130
114
  END_ENTITY;
131
-
132
- ENTITY inverse_attribute_redeclared_renamed_entity;
115
+ ENTITY inverse_attribute_redeclared_renamed_entity
116
+ SUBTYPE OF (attribute_entity);
133
117
  INVERSE
134
118
  SELF\attribute_entity.test RENAMED test2 : attribute_entity FOR test;
135
119
  END_ENTITY;
136
-
137
120
  ENTITY unique_entity;
138
121
  test : BOOLEAN;
139
122
  UNIQUE
140
123
  test;
141
124
  END_ENTITY;
142
-
143
125
  ENTITY unique_label_entity;
144
126
  test : BOOLEAN;
145
127
  UNIQUE
146
128
  UR1 : test;
147
129
  END_ENTITY;
148
-
149
- ENTITY unique_qualified_entity;
130
+ ENTITY unique_redeclared_entity
131
+ SUBTYPE OF (attribute_entity);
150
132
  UNIQUE
151
133
  SELF\attribute_entity.test;
152
134
  END_ENTITY;
153
-
154
- ENTITY unique_label_qualified_entity;
135
+ ENTITY unique_label_redeclared_entity
136
+ SUBTYPE OF (attribute_entity);
155
137
  UNIQUE
156
138
  UR1 : SELF\attribute_entity.test;
157
139
  END_ENTITY;
158
-
159
140
  ENTITY where_entity;
160
141
  WHERE
161
142
  TRUE;
162
143
  END_ENTITY;
163
-
164
144
  ENTITY where_label_entity;
165
145
  WHERE
166
146
  WR1 : TRUE;
167
147
  END_ENTITY;
168
-
169
148
  SUBTYPE_CONSTRAINT empty_subtype_constraint FOR empty_entity;
170
149
  END_SUBTYPE_CONSTRAINT;
171
-
172
150
  SUBTYPE_CONSTRAINT abstract_supertype_subtype_constraint FOR empty_entity;
173
151
  ABSTRACT SUPERTYPE;
174
152
  END_SUBTYPE_CONSTRAINT;
175
-
176
153
  SUBTYPE_CONSTRAINT total_over_subtype_constraint FOR empty_entity;
177
154
  TOTAL_OVER(a);
178
155
  END_SUBTYPE_CONSTRAINT;
179
-
180
156
  SUBTYPE_CONSTRAINT supertype_expression_subtype_constraint FOR empty_entity;
181
157
  a;
182
158
  END_SUBTYPE_CONSTRAINT;
183
-
184
159
  SUBTYPE_CONSTRAINT supertype_expression_andor_subtype_constraint FOR empty_entity;
185
160
  a ANDOR b;
186
161
  END_SUBTYPE_CONSTRAINT;
187
-
188
162
  SUBTYPE_CONSTRAINT supertype_expression_and_subtype_constraint FOR empty_entity;
189
163
  a AND b;
190
164
  END_SUBTYPE_CONSTRAINT;
191
-
192
165
  SUBTYPE_CONSTRAINT supertype_expression_andor_and_subtype_constraint FOR empty_entity;
193
166
  a ANDOR b AND c;
194
167
  END_SUBTYPE_CONSTRAINT;
195
-
196
168
  SUBTYPE_CONSTRAINT supertype_expression_and_andor_subtype_constraint FOR empty_entity;
197
169
  a AND b ANDOR c;
198
170
  END_SUBTYPE_CONSTRAINT;
199
-
200
171
  SUBTYPE_CONSTRAINT supertype_expression_parenthesis_andor_and_subtype_constraint FOR empty_entity;
201
172
  (a ANDOR b) AND c;
202
173
  END_SUBTYPE_CONSTRAINT;
203
-
204
174
  SUBTYPE_CONSTRAINT supertype_expression_and_parenthesis_andor_subtype_constraint FOR empty_entity;
205
175
  a AND (b ANDOR c);
206
176
  END_SUBTYPE_CONSTRAINT;
207
-
208
177
  SUBTYPE_CONSTRAINT supertype_expression_oneof_subtype_constraint FOR empty_entity;
209
178
  ONEOF(a, b);
210
179
  END_SUBTYPE_CONSTRAINT;
211
-
212
180
  SUBTYPE_CONSTRAINT supertype_expression_and_oneof_subtype_constraint FOR empty_entity;
213
181
  a AND ONEOF(b, c);
214
182
  END_SUBTYPE_CONSTRAINT;
215
-
216
183
  SUBTYPE_CONSTRAINT supertype_expression_andor_oneof_subtype_constraint FOR empty_entity;
217
184
  a ANDOR ONEOF(b, c);
218
185
  END_SUBTYPE_CONSTRAINT;
219
-
220
186
  SUBTYPE_CONSTRAINT supertype_expression_oneof_and_subtype_constraint FOR empty_entity;
221
187
  ONEOF(a, b) AND c;
222
188
  END_SUBTYPE_CONSTRAINT;
223
-
224
189
  SUBTYPE_CONSTRAINT supertype_expression_oneof_andor_subtype_constraint FOR empty_entity;
225
190
  ONEOF(a, b) ANDOR c;
226
191
  END_SUBTYPE_CONSTRAINT;
227
-
228
192
  SUBTYPE_CONSTRAINT supertype_expression_oneof_and_oneof_subtype_constraint FOR empty_entity;
229
193
  ONEOF(a, b) AND ONEOF(c, d);
230
194
  END_SUBTYPE_CONSTRAINT;
231
-
232
195
  SUBTYPE_CONSTRAINT supertype_expression_oneof_andor_oneof_subtype_constraint FOR empty_entity;
233
196
  ONEOF(a, b) ANDOR ONEOF(c, d);
234
197
  END_SUBTYPE_CONSTRAINT;
235
-
236
198
  FUNCTION empty_function : BOOLEAN;
237
199
  ;
238
200
  END_FUNCTION;
239
-
240
201
  FUNCTION parameter_function(test : BOOLEAN) : BOOLEAN;
241
202
  ;
242
203
  END_FUNCTION;
243
-
244
204
  FUNCTION multiple_parameter_function(test : BOOLEAN; test2 : BOOLEAN) : BOOLEAN;
245
205
  ;
246
206
  END_FUNCTION;
247
-
248
207
  FUNCTION multiple_shorthand_parameter_function(test : BOOLEAN; test2 : BOOLEAN) : BOOLEAN;
249
208
  ;
250
209
  END_FUNCTION;
251
-
252
210
  FUNCTION type_function : BOOLEAN;
253
211
  TYPE test = BOOLEAN;
254
212
  END_TYPE;
255
213
  ;
256
214
  END_FUNCTION;
257
-
258
215
  FUNCTION constant_function : BOOLEAN;
259
216
  CONSTANT
260
217
  test : BOOLEAN := TRUE;
261
218
  END_CONSTANT;
262
219
  ;
263
220
  END_FUNCTION;
264
-
265
221
  FUNCTION multiple_constant_function : BOOLEAN;
266
222
  CONSTANT
267
223
  test : BOOLEAN := TRUE;
@@ -269,14 +225,12 @@ FUNCTION multiple_constant_function : BOOLEAN;
269
225
  END_CONSTANT;
270
226
  ;
271
227
  END_FUNCTION;
272
-
273
228
  FUNCTION variable_function : BOOLEAN;
274
229
  LOCAL
275
230
  test : BOOLEAN;
276
231
  END_LOCAL;
277
232
  ;
278
233
  END_FUNCTION;
279
-
280
234
  FUNCTION multiple_variable_function : BOOLEAN;
281
235
  LOCAL
282
236
  test : BOOLEAN;
@@ -284,7 +238,6 @@ FUNCTION multiple_variable_function : BOOLEAN;
284
238
  END_LOCAL;
285
239
  ;
286
240
  END_FUNCTION;
287
-
288
241
  FUNCTION multiple_shorthand_variable_function : BOOLEAN;
289
242
  LOCAL
290
243
  test : BOOLEAN;
@@ -292,14 +245,12 @@ FUNCTION multiple_shorthand_variable_function : BOOLEAN;
292
245
  END_LOCAL;
293
246
  ;
294
247
  END_FUNCTION;
295
-
296
248
  FUNCTION variable_expression_function : BOOLEAN;
297
249
  LOCAL
298
250
  test : BOOLEAN := TRUE;
299
251
  END_LOCAL;
300
252
  ;
301
253
  END_FUNCTION;
302
-
303
254
  FUNCTION multiple_variable_expression_function : BOOLEAN;
304
255
  LOCAL
305
256
  test : BOOLEAN := TRUE;
@@ -307,7 +258,6 @@ FUNCTION multiple_variable_expression_function : BOOLEAN;
307
258
  END_LOCAL;
308
259
  ;
309
260
  END_FUNCTION;
310
-
311
261
  FUNCTION multiple_shorthand_variable_expression_function : BOOLEAN;
312
262
  LOCAL
313
263
  test : BOOLEAN := TRUE;
@@ -315,105 +265,430 @@ FUNCTION multiple_shorthand_variable_expression_function : BOOLEAN;
315
265
  END_LOCAL;
316
266
  ;
317
267
  END_FUNCTION;
318
-
319
268
  PROCEDURE empty_procedure;
320
269
  END_PROCEDURE;
321
-
322
270
  PROCEDURE parameter_procedure(test : BOOLEAN);
323
271
  END_PROCEDURE;
324
-
325
272
  PROCEDURE multiple_parameter_procedure(test : BOOLEAN; test2 : BOOLEAN);
326
273
  END_PROCEDURE;
327
-
328
274
  PROCEDURE multiple_shorthand_parameter_procedure(test : BOOLEAN; test2 : BOOLEAN);
329
275
  END_PROCEDURE;
330
-
331
276
  PROCEDURE variable_parameter_procedure(VAR test : BOOLEAN);
332
277
  END_PROCEDURE;
333
-
334
278
  PROCEDURE multiple_variable_parameter_procedure(VAR test : BOOLEAN; test2 : BOOLEAN);
335
279
  END_PROCEDURE;
336
-
337
280
  PROCEDURE multiple_variable_parameter2_procedure(test : BOOLEAN; VAR test2 : BOOLEAN);
338
281
  END_PROCEDURE;
339
-
340
282
  PROCEDURE multiple_shorthand_variable_parameter_procedure(VAR test : BOOLEAN; VAR test2 : BOOLEAN);
341
283
  END_PROCEDURE;
342
-
343
284
  PROCEDURE type_procedure;
344
285
  TYPE test = BOOLEAN;
345
286
  END_TYPE;
346
287
  END_PROCEDURE;
347
-
348
288
  PROCEDURE constant_procedure;
349
289
  CONSTANT
350
290
  test : BOOLEAN := TRUE;
351
291
  END_CONSTANT;
352
292
  END_PROCEDURE;
353
-
354
293
  PROCEDURE multiple_constant_procedure;
355
294
  CONSTANT
356
295
  test : BOOLEAN := TRUE;
357
296
  test2 : BOOLEAN := TRUE;
358
297
  END_CONSTANT;
359
298
  END_PROCEDURE;
360
-
361
299
  PROCEDURE variable_procedure;
362
300
  LOCAL
363
301
  test : BOOLEAN;
364
302
  END_LOCAL;
365
303
  END_PROCEDURE;
366
-
367
304
  PROCEDURE multiple_variable_procedure;
368
305
  LOCAL
369
306
  test : BOOLEAN;
370
307
  test2 : BOOLEAN;
371
308
  END_LOCAL;
372
309
  END_PROCEDURE;
373
-
374
310
  PROCEDURE multiple_shorthand_variable_procedure;
375
311
  LOCAL
376
312
  test : BOOLEAN;
377
313
  test2 : BOOLEAN;
378
314
  END_LOCAL;
379
315
  END_PROCEDURE;
380
-
381
316
  PROCEDURE variable_expression_procedure;
382
317
  LOCAL
383
318
  test : BOOLEAN := TRUE;
384
319
  END_LOCAL;
385
320
  END_PROCEDURE;
386
-
387
321
  PROCEDURE multiple_variable_expression_procedure;
388
322
  LOCAL
389
323
  test : BOOLEAN := TRUE;
390
324
  test2 : BOOLEAN := TRUE;
391
325
  END_LOCAL;
392
326
  END_PROCEDURE;
393
-
394
327
  PROCEDURE multiple_shorthand_variable_expression_procedure;
395
328
  LOCAL
396
329
  test : BOOLEAN := TRUE;
397
330
  test2 : BOOLEAN := TRUE;
398
331
  END_LOCAL;
399
332
  END_PROCEDURE;
400
-
401
333
  PROCEDURE statement_procedure;
402
334
  ;
403
335
  END_PROCEDURE;
404
-
336
+ PROCEDURE statements;
337
+ PROCEDURE alias_simple_reference_statement;
338
+ ALIAS test FOR test;
339
+ ;
340
+ END_ALIAS;
341
+ END_PROCEDURE;
342
+ PROCEDURE alias_group_reference_statement;
343
+ ALIAS test FOR test\test2;
344
+ ;
345
+ END_ALIAS;
346
+ END_PROCEDURE;
347
+ PROCEDURE alias_index_reference_statement;
348
+ ALIAS test FOR test[1];
349
+ ;
350
+ END_ALIAS;
351
+ END_PROCEDURE;
352
+ PROCEDURE alias_index2_reference_statement;
353
+ ALIAS test FOR test[1:9];
354
+ ;
355
+ END_ALIAS;
356
+ END_PROCEDURE;
357
+ PROCEDURE alias_attribute_reference_statement;
358
+ ALIAS test FOR test.test2;
359
+ ;
360
+ END_ALIAS;
361
+ END_PROCEDURE;
362
+ PROCEDURE assignment_simple_reference_statement;
363
+ test := TRUE;
364
+ END_PROCEDURE;
365
+ PROCEDURE assignment_group_reference_statement;
366
+ test\test2 := TRUE;
367
+ END_PROCEDURE;
368
+ PROCEDURE assignment_index_reference_statement;
369
+ test[1] := TRUE;
370
+ END_PROCEDURE;
371
+ PROCEDURE assignment_index2_reference_statement;
372
+ test[1:9] := TRUE;
373
+ END_PROCEDURE;
374
+ PROCEDURE assignment_attribute_reference_statement;
375
+ test.test2 := TRUE;
376
+ END_PROCEDURE;
377
+ PROCEDURE case_statement;
378
+ CASE test OF
379
+ TRUE :
380
+ ;
381
+ END_CASE;
382
+ END_PROCEDURE;
383
+ PROCEDURE case_multiple_statement;
384
+ CASE test OF
385
+ TRUE :
386
+ ;
387
+ TRUE :
388
+ ;
389
+ END_CASE;
390
+ END_PROCEDURE;
391
+ PROCEDURE case_multiple_shorthand_statement;
392
+ CASE test OF
393
+ TRUE, TRUE :
394
+ ;
395
+ END_CASE;
396
+ END_PROCEDURE;
397
+ PROCEDURE case_otherwise_statement;
398
+ CASE test OF
399
+ TRUE :
400
+ ;
401
+ OTHERWISE :
402
+ ;
403
+ END_CASE;
404
+ END_PROCEDURE;
405
+ PROCEDURE compound_statement;
406
+ BEGIN
407
+ ;
408
+ END;
409
+ END_PROCEDURE;
410
+ PROCEDURE escape_statement;
411
+ ESCAPE;
412
+ END_PROCEDURE;
413
+ PROCEDURE if_statement;
414
+ IF TRUE THEN
415
+ ;
416
+ END_IF;
417
+ END_PROCEDURE;
418
+ PROCEDURE if2_statement;
419
+ IF TRUE THEN
420
+ ;
421
+ ;
422
+ END_IF;
423
+ END_PROCEDURE;
424
+ PROCEDURE if_else_statement;
425
+ IF TRUE THEN
426
+ ;
427
+ ELSE
428
+ ;
429
+ END_IF;
430
+ END_PROCEDURE;
431
+ PROCEDURE if2_else_statement;
432
+ IF TRUE THEN
433
+ ;
434
+ ;
435
+ ELSE
436
+ ;
437
+ END_IF;
438
+ END_PROCEDURE;
439
+ PROCEDURE if_else2_statement;
440
+ IF TRUE THEN
441
+ ;
442
+ ELSE
443
+ ;
444
+ ;
445
+ END_IF;
446
+ END_PROCEDURE;
447
+ PROCEDURE if2_else2_statement;
448
+ IF TRUE THEN
449
+ ;
450
+ ;
451
+ ELSE
452
+ ;
453
+ ;
454
+ END_IF;
455
+ END_PROCEDURE;
456
+ PROCEDURE null_statement;
457
+ ;
458
+ END_PROCEDURE;
459
+ PROCEDURE call_statement;
460
+ empty_procedure;
461
+ END_PROCEDURE;
462
+ PROCEDURE call_parameter_statement;
463
+ empty_procedure(TRUE);
464
+ END_PROCEDURE;
465
+ PROCEDURE call_parameter2_statement;
466
+ empty_procedure(TRUE, TRUE);
467
+ END_PROCEDURE;
468
+ PROCEDURE call_insert_statement;
469
+ INSERT(TRUE);
470
+ END_PROCEDURE;
471
+ PROCEDURE call_remove_statement;
472
+ REMOVE(TRUE);
473
+ END_PROCEDURE;
474
+ PROCEDURE repeat_statement;
475
+ REPEAT;
476
+ ;
477
+ END_REPEAT;
478
+ END_PROCEDURE;
479
+ PROCEDURE repeat_variable_statement;
480
+ REPEAT test := 1 TO 9;
481
+ ;
482
+ END_REPEAT;
483
+ END_PROCEDURE;
484
+ PROCEDURE repeat_variable_increment_statement;
485
+ REPEAT test := 1 TO 9 BY 2;
486
+ ;
487
+ END_REPEAT;
488
+ END_PROCEDURE;
489
+ PROCEDURE repeat_while_statement;
490
+ REPEAT WHILE TRUE;
491
+ ;
492
+ END_REPEAT;
493
+ END_PROCEDURE;
494
+ PROCEDURE repeat_until_statement;
495
+ REPEAT UNTIL TRUE;
496
+ ;
497
+ END_REPEAT;
498
+ END_PROCEDURE;
499
+ PROCEDURE return_statement;
500
+ RETURN;
501
+ END_PROCEDURE;
502
+ PROCEDURE return_expression_statement;
503
+ RETURN (TRUE);
504
+ END_PROCEDURE;
505
+ PROCEDURE skip_statement;
506
+ SKIP;
507
+ END_PROCEDURE;
508
+ END_PROCEDURE;
509
+ PROCEDURE types;
510
+ TYPE binary_type = BINARY;
511
+ END_TYPE;
512
+ TYPE binary_width_type = BINARY (3);
513
+ END_TYPE;
514
+ TYPE binary_width_fixed_type = BINARY (3) FIXED;
515
+ END_TYPE;
516
+ TYPE boolean_type = BOOLEAN;
517
+ END_TYPE;
518
+ TYPE integer_type = INTEGER;
519
+ END_TYPE;
520
+ TYPE logical_type = LOGICAL;
521
+ END_TYPE;
522
+ TYPE number_type = NUMBER;
523
+ END_TYPE;
524
+ TYPE real_type = REAL;
525
+ END_TYPE;
526
+ TYPE real_precision_type = REAL (3);
527
+ END_TYPE;
528
+ TYPE string_type = STRING;
529
+ END_TYPE;
530
+ TYPE string_width_type = STRING (3);
531
+ END_TYPE;
532
+ TYPE string_width_fixed_type = STRING (3) FIXED;
533
+ END_TYPE;
534
+ TYPE array_type = ARRAY [1:9] OF STRING;
535
+ END_TYPE;
536
+ TYPE array_optional_type = ARRAY [1:9] OF OPTIONAL STRING;
537
+ END_TYPE;
538
+ TYPE array_unique_type = ARRAY [1:9] OF UNIQUE STRING;
539
+ END_TYPE;
540
+ TYPE array_optional_unique_type = ARRAY [1:9] OF OPTIONAL UNIQUE STRING;
541
+ END_TYPE;
542
+ TYPE bag_type = BAG OF STRING;
543
+ END_TYPE;
544
+ TYPE bag_bound_type = BAG [1:9] OF STRING;
545
+ END_TYPE;
546
+ TYPE list_type = LIST OF STRING;
547
+ END_TYPE;
548
+ TYPE list_bound_type = LIST [1:9] OF STRING;
549
+ END_TYPE;
550
+ TYPE list_unique_type = LIST OF UNIQUE STRING;
551
+ END_TYPE;
552
+ TYPE list_bound_unique_type = LIST [1:9] OF UNIQUE STRING;
553
+ END_TYPE;
554
+ TYPE set_type = SET OF STRING;
555
+ END_TYPE;
556
+ TYPE set_bound_type = SET [1:9] OF STRING;
557
+ END_TYPE;
558
+ TYPE select_type = SELECT;
559
+ END_TYPE;
560
+ TYPE select_extensible_type = EXTENSIBLE SELECT;
561
+ END_TYPE;
562
+ TYPE select_extensible_generic_entity_type = EXTENSIBLE GENERIC_ENTITY SELECT;
563
+ END_TYPE;
564
+ TYPE select_list_type = SELECT (empty_type);
565
+ END_TYPE;
566
+ TYPE select_extension_type_ref_type = SELECT BASED_ON select_type;
567
+ END_TYPE;
568
+ TYPE select_extension_type_ref_list_type = SELECT BASED_ON select_type WITH (empty_type);
569
+ END_TYPE;
570
+ TYPE enumeration_type = ENUMERATION;
571
+ END_TYPE;
572
+ TYPE enumeration_extensible_type = EXTENSIBLE ENUMERATION;
573
+ END_TYPE;
574
+ TYPE enumeration_list_type = ENUMERATION OF (test);
575
+ END_TYPE;
576
+ TYPE enumeration_extension_type_ref_type = ENUMERATION BASED_ON enumeration_type;
577
+ END_TYPE;
578
+ TYPE enumeration_extension_type_ref_list_type = ENUMERATION BASED_ON enumeration_type WITH (test);
579
+ END_TYPE;
580
+ END_PROCEDURE;
581
+ PROCEDURE expressions;
582
+ LOCAL
583
+ binary_expression : BOOLEAN := %011110000111100001111000;
584
+ integer_expression : BOOLEAN := 999;
585
+ true_logical_expression : BOOLEAN := TRUE;
586
+ false_logical_expression : BOOLEAN := FALSE;
587
+ unknown_logical_expression : BOOLEAN := UNKNOWN;
588
+ real_expression : BOOLEAN := 999.999;
589
+ simple_string_expression : BOOLEAN := 'xxx';
590
+ utf8_simple_string_expression : BOOLEAN := 'UTF8 test: Příliš žluťoučký kůň úpěl ďábelské ódy.';
591
+ encoded_string_expression : BOOLEAN := "000000780000007800000078";
592
+ const_e_expression : BOOLEAN := CONST_E;
593
+ indeterminate_expression : BOOLEAN := ?;
594
+ pi_expression : BOOLEAN := PI;
595
+ self_expression : BOOLEAN := SELF;
596
+ abs_expression : BOOLEAN := ABS(TRUE);
597
+ acos_expression : BOOLEAN := ACOS(TRUE);
598
+ asin_expression : BOOLEAN := ASIN(TRUE);
599
+ atan_expression : BOOLEAN := ATAN(TRUE);
600
+ blength_expression : BOOLEAN := BLENGTH(TRUE);
601
+ cos_expression : BOOLEAN := COS(TRUE);
602
+ exists_expression : BOOLEAN := EXISTS(TRUE);
603
+ exp_expression : BOOLEAN := EXP(TRUE);
604
+ format_expression : BOOLEAN := FORMAT(TRUE);
605
+ hibound_expression : BOOLEAN := HIBOUND(TRUE);
606
+ hiindex_expression : BOOLEAN := HIINDEX(TRUE);
607
+ length_expression : BOOLEAN := LENGTH(TRUE);
608
+ lobound_expression : BOOLEAN := LOBOUND(TRUE);
609
+ loindex_expression : BOOLEAN := LOINDEX(TRUE);
610
+ log_expression : BOOLEAN := LOG(TRUE);
611
+ log2_expression : BOOLEAN := LOG2(TRUE);
612
+ log10_expression : BOOLEAN := LOG10(TRUE);
613
+ nvl_expression : BOOLEAN := NVL(TRUE);
614
+ odd_expression : BOOLEAN := ODD(TRUE);
615
+ rolesof_expression : BOOLEAN := ROLESOF(TRUE);
616
+ sin_expression : BOOLEAN := SIN(TRUE);
617
+ sizeof_expression : BOOLEAN := SIZEOF(TRUE);
618
+ sqrt_expression : BOOLEAN := SQRT(TRUE);
619
+ tan_expression : BOOLEAN := TAN(TRUE);
620
+ typeof_expression : BOOLEAN := TYPEOF(TRUE);
621
+ usedin_expression : BOOLEAN := USEDIN(TRUE);
622
+ value_expression : BOOLEAN := VALUE(TRUE);
623
+ value_in_expression : BOOLEAN := VALUE_IN(TRUE);
624
+ value_unique_expression : BOOLEAN := VALUE_UNIQUE(TRUE);
625
+ plus_expression : BOOLEAN := +4;
626
+ plus_addition_expression : BOOLEAN := +(4 + 2);
627
+ minus_expression : BOOLEAN := -4;
628
+ minus_addition_expression : BOOLEAN := -(4 + 2);
629
+ addition_expression : BOOLEAN := 4 + 2;
630
+ subtraction_expression : BOOLEAN := 4 - 2;
631
+ multiplication_expression : BOOLEAN := 4 * 2;
632
+ real_division_expression : BOOLEAN := 4 / 2;
633
+ integer_division_expression : BOOLEAN := 4 DIV 2;
634
+ modulo_expression : BOOLEAN := 4 MOD 2;
635
+ exponentiation_expression : BOOLEAN := 4 ** 2;
636
+ addition_addition_expression : BOOLEAN := 4 + 2 + 1;
637
+ subtraction_subtraction_expression : BOOLEAN := 4 - 2 - 1;
638
+ addition_subtraction_expression : BOOLEAN := 4 + 2 - 1;
639
+ subtraction_addition_expression : BOOLEAN := 4 - 2 + 1;
640
+ addition_multiplication_expression : BOOLEAN := 8 + 4 * 2;
641
+ multiplication_addition_expression : BOOLEAN := 8 * 4 + 2;
642
+ parenthesis_addition_multiplication_expression : BOOLEAN := (8 + 4) * 2;
643
+ multiplication_parenthesis_addition_expression : BOOLEAN := 8 * (4 + 2);
644
+ equal_expression : BOOLEAN := 4 = 2;
645
+ not_equal_expression : BOOLEAN := 4 <> 2;
646
+ instance_equal_expression : BOOLEAN := 4 :=: 2;
647
+ instance_not_equal_expression : BOOLEAN := 4 :<>: 2;
648
+ lt_expression : BOOLEAN := 4 < 2;
649
+ gt_expression : BOOLEAN := 4 > 2;
650
+ lte_expression : BOOLEAN := 4 <= 2;
651
+ gte_expression : BOOLEAN := 4 >= 2;
652
+ not_expression : BOOLEAN := NOT TRUE;
653
+ not_or_expression : BOOLEAN := NOT (TRUE OR FALSE);
654
+ or_expression : BOOLEAN := TRUE OR FALSE;
655
+ and_expression : BOOLEAN := TRUE AND FALSE;
656
+ or_or_expression : BOOLEAN := TRUE OR FALSE OR TRUE;
657
+ and_and_expression : BOOLEAN := TRUE AND FALSE AND TRUE;
658
+ or_and_expression : BOOLEAN := TRUE OR FALSE AND TRUE;
659
+ and_or_expression : BOOLEAN := TRUE AND FALSE OR TRUE;
660
+ parenthesis_or_and_expression : BOOLEAN := (TRUE OR FALSE) AND TRUE;
661
+ and_parenthesis_or_expression : BOOLEAN := TRUE AND (FALSE OR TRUE);
662
+ combine_expression : BOOLEAN := test || test2;
663
+ in_expression : BOOLEAN := TRUE IN [TRUE];
664
+ like_expression : BOOLEAN := 'xxx' LIKE 'xxx';
665
+ aggregate_initializer_expression : BOOLEAN := [4];
666
+ repeated_aggregate_initializer_expression : BOOLEAN := [4:2];
667
+ complex_aggregate_initializer_expression : BOOLEAN := [4 + 2];
668
+ complex_repeated_aggregate_initializer_expression : BOOLEAN := [4 + 2:4 + 2];
669
+ call_expression : BOOLEAN := parameter_function(TRUE);
670
+ simple_reference_expression : BOOLEAN := test;
671
+ group_reference_expression : BOOLEAN := test\test2;
672
+ index_reference_expression : BOOLEAN := test[1];
673
+ index2_reference_expression : BOOLEAN := test[1:9];
674
+ attribute_reference_expression : BOOLEAN := test.test2;
675
+ lt_lt_interval_expression : BOOLEAN := {1 < 5 < 9};
676
+ lte_lt_interval_expression : BOOLEAN := {1 <= 5 < 9};
677
+ lt_lte_interval_expression : BOOLEAN := {1 < 5 <= 9};
678
+ lte_lte_interval_expression : BOOLEAN := {1 <= 5 <= 9};
679
+ query_expression : BOOLEAN := QUERY(test <* test2 | TRUE);
680
+ END_LOCAL;
681
+ END_PROCEDURE;
405
682
  RULE empty_rule FOR (empty_entity);
406
683
  WHERE
407
684
  TRUE;
408
685
  END_RULE;
409
-
410
686
  RULE type_rule FOR (empty_entity);
411
687
  TYPE test = BOOLEAN;
412
688
  END_TYPE;
413
689
  WHERE
414
690
  TRUE;
415
691
  END_RULE;
416
-
417
692
  RULE constant_rule FOR (empty_entity);
418
693
  CONSTANT
419
694
  test : BOOLEAN := TRUE;
@@ -421,7 +696,6 @@ RULE constant_rule FOR (empty_entity);
421
696
  WHERE
422
697
  TRUE;
423
698
  END_RULE;
424
-
425
699
  RULE multiple_constant_rule FOR (empty_entity);
426
700
  CONSTANT
427
701
  test : BOOLEAN := TRUE;
@@ -430,7 +704,6 @@ RULE multiple_constant_rule FOR (empty_entity);
430
704
  WHERE
431
705
  TRUE;
432
706
  END_RULE;
433
-
434
707
  RULE variable_rule FOR (empty_entity);
435
708
  LOCAL
436
709
  test : BOOLEAN;
@@ -438,7 +711,6 @@ RULE variable_rule FOR (empty_entity);
438
711
  WHERE
439
712
  TRUE;
440
713
  END_RULE;
441
-
442
714
  RULE multiple_variable_rule FOR (empty_entity);
443
715
  LOCAL
444
716
  test : BOOLEAN;
@@ -447,7 +719,6 @@ RULE multiple_variable_rule FOR (empty_entity);
447
719
  WHERE
448
720
  TRUE;
449
721
  END_RULE;
450
-
451
722
  RULE multiple_shorthand_variable_rule FOR (empty_entity);
452
723
  LOCAL
453
724
  test : BOOLEAN;
@@ -456,7 +727,6 @@ RULE multiple_shorthand_variable_rule FOR (empty_entity);
456
727
  WHERE
457
728
  TRUE;
458
729
  END_RULE;
459
-
460
730
  RULE variable_expression_rule FOR (empty_entity);
461
731
  LOCAL
462
732
  test : BOOLEAN := TRUE;
@@ -464,7 +734,6 @@ RULE variable_expression_rule FOR (empty_entity);
464
734
  WHERE
465
735
  TRUE;
466
736
  END_RULE;
467
-
468
737
  RULE multiple_variable_expression_rule FOR (empty_entity);
469
738
  LOCAL
470
739
  test : BOOLEAN := TRUE;
@@ -473,7 +742,6 @@ RULE multiple_variable_expression_rule FOR (empty_entity);
473
742
  WHERE
474
743
  TRUE;
475
744
  END_RULE;
476
-
477
745
  RULE multiple_shorthand_variable_expression_rule FOR (empty_entity);
478
746
  LOCAL
479
747
  test : BOOLEAN := TRUE;
@@ -482,710 +750,13 @@ RULE multiple_shorthand_variable_expression_rule FOR (empty_entity);
482
750
  WHERE
483
751
  TRUE;
484
752
  END_RULE;
485
-
486
753
  RULE statement_rule FOR (empty_entity);
487
754
  ;
488
755
  WHERE
489
756
  TRUE;
490
757
  END_RULE;
491
-
492
- TYPE binary_type = BINARY;
493
- END_TYPE;
494
-
495
- TYPE binary_width_type = BINARY (3);
496
- END_TYPE;
497
-
498
- TYPE binary_width_fixed_type = BINARY (3) FIXED;
499
- END_TYPE;
500
-
501
- TYPE boolean_type = BOOLEAN;
502
- END_TYPE;
503
-
504
- TYPE integer_type = INTEGER;
505
- END_TYPE;
506
-
507
- TYPE logical_type = LOGICAL;
508
- END_TYPE;
509
-
510
- TYPE number_type = NUMBER;
511
- END_TYPE;
512
-
513
- TYPE real_type = REAL;
514
- END_TYPE;
515
-
516
- TYPE real_precision_type = REAL (3);
517
- END_TYPE;
518
-
519
- TYPE string_type = STRING;
520
- END_TYPE;
521
-
522
- TYPE string_width_type = STRING (3);
523
- END_TYPE;
524
-
525
- TYPE string_width_fixed_type = STRING (3) FIXED;
526
- END_TYPE;
527
-
528
- TYPE array_type = ARRAY [1:9] OF STRING;
529
- END_TYPE;
530
-
531
- TYPE array_optional_type = ARRAY [1:9] OF OPTIONAL STRING;
532
- END_TYPE;
533
-
534
- TYPE array_unique_type = ARRAY [1:9] OF UNIQUE STRING;
535
- END_TYPE;
536
-
537
- TYPE array_optional_unique_type = ARRAY [1:9] OF OPTIONAL UNIQUE STRING;
538
- END_TYPE;
539
-
540
- TYPE bag_type = BAG OF STRING;
541
- END_TYPE;
542
-
543
- TYPE bag_bound_type = BAG [1:9] OF STRING;
544
- END_TYPE;
545
-
546
- TYPE list_type = LIST OF STRING;
547
- END_TYPE;
548
-
549
- TYPE list_bound_type = LIST [1:9] OF STRING;
550
- END_TYPE;
551
-
552
- TYPE list_unique_type = LIST OF UNIQUE STRING;
553
- END_TYPE;
554
-
555
- TYPE list_bound_unique_type = LIST [1:9] OF UNIQUE STRING;
556
- END_TYPE;
557
-
558
- TYPE set_type = SET OF STRING;
559
- END_TYPE;
560
-
561
- TYPE set_bound_type = SET [1:9] OF STRING;
562
- END_TYPE;
563
-
564
- TYPE select_type = SELECT;
565
- END_TYPE;
566
-
567
- TYPE select_extensible_type = EXTENSIBLE SELECT;
568
- END_TYPE;
569
-
570
- TYPE select_extensible_generic_entity_type = EXTENSIBLE GENERIC_ENTITY SELECT;
571
- END_TYPE;
572
-
573
- TYPE select_list_type = SELECT (empty_type);
574
- END_TYPE;
575
-
576
- TYPE select_extension_type_ref_type = SELECT BASED_ON select_type;
577
- END_TYPE;
578
-
579
- TYPE select_extension_type_ref_list_type = SELECT BASED_ON select_type WITH (empty_type);
580
- END_TYPE;
581
-
582
- TYPE enumeration_type = ENUMERATION;
583
- END_TYPE;
584
-
585
- TYPE enumeration_extensible_type = EXTENSIBLE ENUMERATION;
586
- END_TYPE;
587
-
588
- TYPE enumeration_list_type = ENUMERATION OF (test);
589
- END_TYPE;
590
-
591
- TYPE enumeration_extension_type_ref_type = ENUMERATION BASED_ON enumeration_type;
592
- END_TYPE;
593
-
594
- TYPE enumeration_extension_type_ref_list_type = ENUMERATION BASED_ON enumeration_type WITH (test);
595
- END_TYPE;
596
-
597
- FUNCTION alias_simple_reference_statement : BOOLEAN;
598
- ALIAS test FOR test;
599
- ;
600
- END_ALIAS;
601
- END_FUNCTION;
602
-
603
- FUNCTION alias_attribute_reference_statement : BOOLEAN;
604
- ALIAS test FOR test.test;
605
- ;
606
- END_ALIAS;
607
- END_FUNCTION;
608
-
609
- FUNCTION alias_group_reference_statement : BOOLEAN;
610
- ALIAS test FOR test\test;
611
- ;
612
- END_ALIAS;
613
- END_FUNCTION;
614
-
615
- FUNCTION alias_index_reference_statement : BOOLEAN;
616
- ALIAS test FOR test[1];
617
- ;
618
- END_ALIAS;
619
- END_FUNCTION;
620
-
621
- FUNCTION alias_index2_reference_statement : BOOLEAN;
622
- ALIAS test FOR test[1:9];
623
- ;
624
- END_ALIAS;
625
- END_FUNCTION;
626
-
627
- FUNCTION assignment_simple_reference_statement : BOOLEAN;
628
- test := TRUE;
629
- END_FUNCTION;
630
-
631
- FUNCTION assignment_attribute_reference_statement : BOOLEAN;
632
- test.test := TRUE;
633
- END_FUNCTION;
634
-
635
- FUNCTION assignment_group_reference_statement : BOOLEAN;
636
- test\test := TRUE;
637
- END_FUNCTION;
638
-
639
- FUNCTION assignment_index_reference_statement : BOOLEAN;
640
- test[1] := TRUE;
641
- END_FUNCTION;
642
-
643
- FUNCTION assignment_index2_reference_statement : BOOLEAN;
644
- test[1:9] := TRUE;
645
- END_FUNCTION;
646
-
647
- FUNCTION case_statement : BOOLEAN;
648
- CASE test OF
649
- TRUE :
650
- ;
651
- END_CASE;
652
- END_FUNCTION;
653
-
654
- FUNCTION case_multiple_statement : BOOLEAN;
655
- CASE test OF
656
- TRUE :
657
- ;
658
- TRUE :
659
- ;
660
- END_CASE;
661
- END_FUNCTION;
662
-
663
- FUNCTION case_multiple_shorthand_statement : BOOLEAN;
664
- CASE test OF
665
- TRUE, TRUE :
666
- ;
667
- END_CASE;
668
- END_FUNCTION;
669
-
670
- FUNCTION case_otherwise_statement : BOOLEAN;
671
- CASE test OF
672
- TRUE :
673
- ;
674
- OTHERWISE :
675
- ;
676
- END_CASE;
677
- END_FUNCTION;
678
-
679
- FUNCTION compound_statement : BOOLEAN;
680
- BEGIN
681
- ;
682
- END;
683
- END_FUNCTION;
684
-
685
- FUNCTION escape_statement : BOOLEAN;
686
- ESCAPE;
687
- END_FUNCTION;
688
-
689
- FUNCTION if_statement : BOOLEAN;
690
- IF TRUE THEN
691
- ;
692
- END_IF;
693
- END_FUNCTION;
694
-
695
- FUNCTION if2_statement : BOOLEAN;
696
- IF TRUE THEN
697
- ;
698
- ;
699
- END_IF;
700
- END_FUNCTION;
701
-
702
- FUNCTION if_else_statement : BOOLEAN;
703
- IF TRUE THEN
704
- ;
705
- ELSE
706
- ;
707
- END_IF;
708
- END_FUNCTION;
709
-
710
- FUNCTION if2_else_statement : BOOLEAN;
711
- IF TRUE THEN
712
- ;
713
- ;
714
- ELSE
715
- ;
716
- END_IF;
717
- END_FUNCTION;
718
-
719
- FUNCTION if_else2_statement : BOOLEAN;
720
- IF TRUE THEN
721
- ;
722
- ELSE
723
- ;
724
- ;
725
- END_IF;
726
- END_FUNCTION;
727
-
728
- FUNCTION if2_else2_statement : BOOLEAN;
729
- IF TRUE THEN
730
- ;
731
- ;
732
- ELSE
733
- ;
734
- ;
735
- END_IF;
736
- END_FUNCTION;
737
-
738
- FUNCTION null_statement : BOOLEAN;
739
- ;
740
- END_FUNCTION;
741
-
742
- FUNCTION call_statement : BOOLEAN;
743
- empty_procedure;
744
- END_FUNCTION;
745
-
746
- FUNCTION call_parameter_statement : BOOLEAN;
747
- empty_procedure(TRUE);
748
- END_FUNCTION;
749
-
750
- FUNCTION call_parameter2_statement : BOOLEAN;
751
- empty_procedure(TRUE, TRUE);
752
- END_FUNCTION;
753
-
754
- FUNCTION call_insert_statement : BOOLEAN;
755
- INSERT(TRUE);
756
- END_FUNCTION;
757
-
758
- FUNCTION call_remove_statement : BOOLEAN;
759
- REMOVE(TRUE);
760
- END_FUNCTION;
761
-
762
- FUNCTION repeat_statement : BOOLEAN;
763
- REPEAT;
764
- ;
765
- END_REPEAT;
766
- END_FUNCTION;
767
-
768
- FUNCTION repeat_variable_statement : BOOLEAN;
769
- REPEAT test := 1 TO 9;
770
- ;
771
- END_REPEAT;
772
- END_FUNCTION;
773
-
774
- FUNCTION repeat_variable_increment_statement : BOOLEAN;
775
- REPEAT test := 1 TO 9 BY 2;
776
- ;
777
- END_REPEAT;
778
- END_FUNCTION;
779
-
780
- FUNCTION repeat_while_statement : BOOLEAN;
781
- REPEAT WHILE TRUE;
782
- ;
783
- END_REPEAT;
784
- END_FUNCTION;
785
-
786
- FUNCTION repeat_until_statement : BOOLEAN;
787
- REPEAT UNTIL TRUE;
788
- ;
789
- END_REPEAT;
790
- END_FUNCTION;
791
-
792
- FUNCTION return_statement : BOOLEAN;
793
- RETURN;
794
- END_FUNCTION;
795
-
796
- FUNCTION return_expression_statement : BOOLEAN;
797
- RETURN (TRUE);
798
- END_FUNCTION;
799
-
800
- FUNCTION skip_statement : BOOLEAN;
801
- SKIP;
802
- END_FUNCTION;
803
-
804
- FUNCTION binary_expression : BOOLEAN;
805
- RETURN (%011110000111100001111000);
806
- END_FUNCTION;
807
-
808
- FUNCTION integer_expression : BOOLEAN;
809
- RETURN (999);
810
- END_FUNCTION;
811
-
812
- FUNCTION true_logical_expression : BOOLEAN;
813
- RETURN (TRUE);
814
- END_FUNCTION;
815
-
816
- FUNCTION false_logical_expression : BOOLEAN;
817
- RETURN (FALSE);
818
- END_FUNCTION;
819
-
820
- FUNCTION unknown_logical_expression : BOOLEAN;
821
- RETURN (UNKNOWN);
822
- END_FUNCTION;
823
-
824
- FUNCTION real_expression : BOOLEAN;
825
- RETURN (999.999);
826
- END_FUNCTION;
827
-
828
- FUNCTION simple_string_expression : BOOLEAN;
829
- RETURN ('xxx');
830
- END_FUNCTION;
831
-
832
- FUNCTION utf8_simple_string_expression : BOOLEAN;
833
- RETURN ('UTF8 test: Příliš žluťoučký kůň úpěl ďábelské ódy.');
834
- END_FUNCTION;
835
-
836
- FUNCTION encoded_string_expression : BOOLEAN;
837
- RETURN ("000000780000007800000078");
838
- END_FUNCTION;
839
-
840
- FUNCTION const_e_expression : BOOLEAN;
841
- RETURN (CONST_E);
842
- END_FUNCTION;
843
-
844
- FUNCTION indeterminate_expression : BOOLEAN;
845
- RETURN (?);
846
- END_FUNCTION;
847
-
848
- FUNCTION pi_expression : BOOLEAN;
849
- RETURN (PI);
850
- END_FUNCTION;
851
-
852
- FUNCTION self_expression : BOOLEAN;
853
- RETURN (SELF);
854
- END_FUNCTION;
855
-
856
- FUNCTION abs_expression : BOOLEAN;
857
- RETURN (ABS(TRUE));
858
- END_FUNCTION;
859
-
860
- FUNCTION acos_expression : BOOLEAN;
861
- RETURN (ACOS(TRUE));
862
- END_FUNCTION;
863
-
864
- FUNCTION asin_expression : BOOLEAN;
865
- RETURN (ASIN(TRUE));
866
- END_FUNCTION;
867
-
868
- FUNCTION atan_expression : BOOLEAN;
869
- RETURN (ATAN(TRUE));
870
- END_FUNCTION;
871
-
872
- FUNCTION blength_expression : BOOLEAN;
873
- RETURN (BLENGTH(TRUE));
874
- END_FUNCTION;
875
-
876
- FUNCTION cos_expression : BOOLEAN;
877
- RETURN (COS(TRUE));
878
- END_FUNCTION;
879
-
880
- FUNCTION exists_expression : BOOLEAN;
881
- RETURN (EXISTS(TRUE));
882
- END_FUNCTION;
883
-
884
- FUNCTION exp_expression : BOOLEAN;
885
- RETURN (EXP(TRUE));
886
- END_FUNCTION;
887
-
888
- FUNCTION format_expression : BOOLEAN;
889
- RETURN (FORMAT(TRUE));
890
- END_FUNCTION;
891
-
892
- FUNCTION hibound_expression : BOOLEAN;
893
- RETURN (HIBOUND(TRUE));
894
- END_FUNCTION;
895
-
896
- FUNCTION hiindex_expression : BOOLEAN;
897
- RETURN (HIINDEX(TRUE));
898
- END_FUNCTION;
899
-
900
- FUNCTION length_expression : BOOLEAN;
901
- RETURN (LENGTH(TRUE));
902
- END_FUNCTION;
903
-
904
- FUNCTION lobound_expression : BOOLEAN;
905
- RETURN (LOBOUND(TRUE));
906
- END_FUNCTION;
907
-
908
- FUNCTION loindex_expression : BOOLEAN;
909
- RETURN (LOINDEX(TRUE));
910
- END_FUNCTION;
911
-
912
- FUNCTION log_expression : BOOLEAN;
913
- RETURN (LOG(TRUE));
914
- END_FUNCTION;
915
-
916
- FUNCTION log2_expression : BOOLEAN;
917
- RETURN (LOG2(TRUE));
918
- END_FUNCTION;
919
-
920
- FUNCTION log10_expression : BOOLEAN;
921
- RETURN (LOG10(TRUE));
922
- END_FUNCTION;
923
-
924
- FUNCTION nvl_expression : BOOLEAN;
925
- RETURN (NVL(TRUE));
926
- END_FUNCTION;
927
-
928
- FUNCTION odd_expression : BOOLEAN;
929
- RETURN (ODD(TRUE));
930
- END_FUNCTION;
931
-
932
- FUNCTION rolesof_expression : BOOLEAN;
933
- RETURN (ROLESOF(TRUE));
934
- END_FUNCTION;
935
-
936
- FUNCTION sin_expression : BOOLEAN;
937
- RETURN (SIN(TRUE));
938
- END_FUNCTION;
939
-
940
- FUNCTION sizeof_expression : BOOLEAN;
941
- RETURN (SIZEOF(TRUE));
942
- END_FUNCTION;
943
-
944
- FUNCTION sqrt_expression : BOOLEAN;
945
- RETURN (SQRT(TRUE));
946
- END_FUNCTION;
947
-
948
- FUNCTION tan_expression : BOOLEAN;
949
- RETURN (TAN(TRUE));
950
- END_FUNCTION;
951
-
952
- FUNCTION typeof_expression : BOOLEAN;
953
- RETURN (TYPEOF(TRUE));
954
- END_FUNCTION;
955
-
956
- FUNCTION usedin_expression : BOOLEAN;
957
- RETURN (USEDIN(TRUE));
958
- END_FUNCTION;
959
-
960
- FUNCTION value_expression : BOOLEAN;
961
- RETURN (VALUE(TRUE));
962
- END_FUNCTION;
963
-
964
- FUNCTION value_in_expression : BOOLEAN;
965
- RETURN (VALUE_IN(TRUE));
966
- END_FUNCTION;
967
-
968
- FUNCTION value_unique_expression : BOOLEAN;
969
- RETURN (VALUE_UNIQUE(TRUE));
970
- END_FUNCTION;
971
-
972
- FUNCTION plus_expression : BOOLEAN;
973
- RETURN (+4);
974
- END_FUNCTION;
975
-
976
- FUNCTION plus_addition_expression : BOOLEAN;
977
- RETURN (+(4 + 2));
978
- END_FUNCTION;
979
-
980
- FUNCTION minus_expression : BOOLEAN;
981
- RETURN (-4);
982
- END_FUNCTION;
983
-
984
- FUNCTION minus_addition_expression : BOOLEAN;
985
- RETURN (-(4 + 2));
986
- END_FUNCTION;
987
-
988
- FUNCTION addition_expression : BOOLEAN;
989
- RETURN (4 + 2);
990
- END_FUNCTION;
991
-
992
- FUNCTION subtraction_expression : BOOLEAN;
993
- RETURN (4 - 2);
994
- END_FUNCTION;
995
-
996
- FUNCTION multiplication_expression : BOOLEAN;
997
- RETURN (4 * 2);
998
- END_FUNCTION;
999
-
1000
- FUNCTION real_division_expression : BOOLEAN;
1001
- RETURN (4 / 2);
1002
- END_FUNCTION;
1003
-
1004
- FUNCTION integer_division_expression : BOOLEAN;
1005
- RETURN (4 DIV 2);
1006
- END_FUNCTION;
1007
-
1008
- FUNCTION modulo_expression : BOOLEAN;
1009
- RETURN (4 MOD 2);
1010
- END_FUNCTION;
1011
-
1012
- FUNCTION exponentiation_expression : BOOLEAN;
1013
- RETURN (4 ** 2);
1014
- END_FUNCTION;
1015
-
1016
- FUNCTION addition_addition_expression : BOOLEAN;
1017
- RETURN (4 + 2 + 1);
1018
- END_FUNCTION;
1019
-
1020
- FUNCTION subtraction_subtraction_expression : BOOLEAN;
1021
- RETURN (4 - 2 - 1);
1022
- END_FUNCTION;
1023
-
1024
- FUNCTION addition_subtraction_expression : BOOLEAN;
1025
- RETURN (4 + 2 - 1);
1026
- END_FUNCTION;
1027
-
1028
- FUNCTION subtraction_addition_expression : BOOLEAN;
1029
- RETURN (4 - 2 + 1);
1030
- END_FUNCTION;
1031
-
1032
- FUNCTION addition_multiplication_expression : BOOLEAN;
1033
- RETURN (8 + 4 * 2);
1034
- END_FUNCTION;
1035
-
1036
- FUNCTION multiplication_addition_expression : BOOLEAN;
1037
- RETURN (8 * 4 + 2);
1038
- END_FUNCTION;
1039
-
1040
- FUNCTION parenthesis_addition_multiplication_expression : BOOLEAN;
1041
- RETURN ((8 + 4) * 2);
1042
- END_FUNCTION;
1043
-
1044
- FUNCTION multiplication_parenthesis_addition_expression : BOOLEAN;
1045
- RETURN (8 * (4 + 2));
1046
- END_FUNCTION;
1047
-
1048
- FUNCTION equal_expression : BOOLEAN;
1049
- RETURN (4 = 2);
1050
- END_FUNCTION;
1051
-
1052
- FUNCTION not_equal_expression : BOOLEAN;
1053
- RETURN (4 <> 2);
1054
- END_FUNCTION;
1055
-
1056
- FUNCTION instance_equal_expression : BOOLEAN;
1057
- RETURN (4 :=: 2);
1058
- END_FUNCTION;
1059
-
1060
- FUNCTION instance_not_equal_expression : BOOLEAN;
1061
- RETURN (4 :<>: 2);
1062
- END_FUNCTION;
1063
-
1064
- FUNCTION lt_expression : BOOLEAN;
1065
- RETURN (4 < 2);
1066
- END_FUNCTION;
1067
-
1068
- FUNCTION gt_expression : BOOLEAN;
1069
- RETURN (4 > 2);
1070
- END_FUNCTION;
1071
-
1072
- FUNCTION lte_expression : BOOLEAN;
1073
- RETURN (4 <= 2);
1074
- END_FUNCTION;
1075
-
1076
- FUNCTION gte_expression : BOOLEAN;
1077
- RETURN (4 >= 2);
1078
- END_FUNCTION;
1079
-
1080
- FUNCTION not_expression : BOOLEAN;
1081
- RETURN (NOT TRUE);
1082
- END_FUNCTION;
1083
-
1084
- FUNCTION not_or_expression : BOOLEAN;
1085
- RETURN (NOT (TRUE OR FALSE));
1086
- END_FUNCTION;
1087
-
1088
- FUNCTION or_expression : BOOLEAN;
1089
- RETURN (TRUE OR FALSE);
1090
- END_FUNCTION;
1091
-
1092
- FUNCTION and_expression : BOOLEAN;
1093
- RETURN (TRUE AND FALSE);
1094
- END_FUNCTION;
1095
-
1096
- FUNCTION or_or_expression : BOOLEAN;
1097
- RETURN (TRUE OR FALSE OR TRUE);
1098
- END_FUNCTION;
1099
-
1100
- FUNCTION and_and_expression : BOOLEAN;
1101
- RETURN (TRUE AND FALSE AND TRUE);
1102
- END_FUNCTION;
1103
-
1104
- FUNCTION or_and_expression : BOOLEAN;
1105
- RETURN (TRUE OR FALSE AND TRUE);
1106
- END_FUNCTION;
1107
-
1108
- FUNCTION and_or_expression : BOOLEAN;
1109
- RETURN (TRUE AND FALSE OR TRUE);
1110
- END_FUNCTION;
1111
-
1112
- FUNCTION parenthesis_or_and_expression : BOOLEAN;
1113
- RETURN ((TRUE OR FALSE) AND TRUE);
1114
- END_FUNCTION;
1115
-
1116
- FUNCTION and_parenthesis_or_expression : BOOLEAN;
1117
- RETURN (TRUE AND (FALSE OR TRUE));
1118
- END_FUNCTION;
1119
-
1120
- FUNCTION combine_expression : BOOLEAN;
1121
- RETURN (test || test);
1122
- END_FUNCTION;
1123
-
1124
- FUNCTION in_expression : BOOLEAN;
1125
- RETURN (TRUE IN [TRUE]);
1126
- END_FUNCTION;
1127
-
1128
- FUNCTION like_expression : BOOLEAN;
1129
- RETURN ('xxx' LIKE 'xxx');
1130
- END_FUNCTION;
1131
-
1132
- FUNCTION aggregate_initializer_expression : BOOLEAN;
1133
- RETURN ([4]);
1134
- END_FUNCTION;
1135
-
1136
- FUNCTION repeated_aggregate_initializer_expression : BOOLEAN;
1137
- RETURN ([4:2]);
1138
- END_FUNCTION;
1139
-
1140
- FUNCTION complex_aggregate_initializer_expression : BOOLEAN;
1141
- RETURN ([4 + 2]);
1142
- END_FUNCTION;
1143
-
1144
- FUNCTION complex_repeated_aggregate_initializer_expression : BOOLEAN;
1145
- RETURN ([4 + 2:4 + 2]);
1146
- END_FUNCTION;
1147
-
1148
- FUNCTION call_expression : BOOLEAN;
1149
- RETURN (parameter_function(TRUE));
1150
- END_FUNCTION;
1151
-
1152
- FUNCTION simple_reference_expression : BOOLEAN;
1153
- RETURN (simple_string_expression);
1154
- END_FUNCTION;
1155
-
1156
- FUNCTION attribute_reference_expression : BOOLEAN;
1157
- RETURN (simple_string_expression.test);
1158
- END_FUNCTION;
1159
-
1160
- FUNCTION group_reference_expression : BOOLEAN;
1161
- RETURN (simple_string_expression\test);
1162
- END_FUNCTION;
1163
-
1164
- FUNCTION index_reference_expression : BOOLEAN;
1165
- RETURN (simple_string_expression[1]);
1166
- END_FUNCTION;
1167
-
1168
- FUNCTION index2_reference_expression : BOOLEAN;
1169
- RETURN (simple_string_expression[1:9]);
1170
- END_FUNCTION;
1171
-
1172
- FUNCTION lt_lt_interval_expression : BOOLEAN;
1173
- RETURN ({1 < 5 < 9});
1174
- END_FUNCTION;
1175
-
1176
- FUNCTION lte_lt_interval_expression : BOOLEAN;
1177
- RETURN ({1 <= 5 < 9});
1178
- END_FUNCTION;
1179
-
1180
- FUNCTION lt_lte_interval_expression : BOOLEAN;
1181
- RETURN ({1 < 5 <= 9});
1182
- END_FUNCTION;
1183
-
1184
- FUNCTION lte_lte_interval_expression : BOOLEAN;
1185
- RETURN ({1 <= 5 <= 9});
1186
- END_FUNCTION;
1187
-
1188
- FUNCTION query_expression : BOOLEAN;
1189
- RETURN (QUERY(test <* test2 | TRUE));
1190
- END_FUNCTION;
758
+ RULE where_label_rule FOR (empty_entity);
759
+ WHERE
760
+ WR1 : TRUE;
761
+ END_RULE;
1191
762
  END_SCHEMA;