expressir 0.2.2 → 0.2.3

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