expressir 0.2.16-x86-linux → 0.2.17-x86-linux

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/exe/format +51 -13
  3. data/lib/expressir/express_exp/formatter.rb +185 -135
  4. data/lib/expressir/express_exp/parser.rb +29 -29
  5. data/lib/expressir/express_exp/schema_head_formatter.rb +1 -4
  6. data/lib/expressir/express_exp/visitor.rb +11 -6
  7. data/lib/expressir/model/entity.rb +6 -6
  8. data/lib/expressir/model/expressions/query_expression.rb +3 -3
  9. data/lib/expressir/model/function.rb +15 -11
  10. data/lib/expressir/model/informal_proposition.rb +4 -1
  11. data/lib/expressir/model/interfaced_item.rb +4 -1
  12. data/lib/expressir/model/model_element.rb +20 -7
  13. data/lib/expressir/model/procedure.rb +15 -11
  14. data/lib/expressir/model/repository.rb +3 -3
  15. data/lib/expressir/model/rule.rb +16 -12
  16. data/lib/expressir/model/schema.rb +52 -45
  17. data/lib/expressir/model/statements/alias.rb +3 -3
  18. data/lib/expressir/model/statements/repeat.rb +3 -3
  19. data/lib/expressir/model/subtype_constraint.rb +1 -6
  20. data/lib/expressir/model/type.rb +9 -5
  21. data/lib/expressir/version.rb +1 -1
  22. data/original/examples/syntax/{hyperlink.exp → multiple.exp} +8 -8
  23. data/original/examples/syntax/multiple.yaml +180 -0
  24. data/original/examples/syntax/multiple_formatted.exp +71 -0
  25. data/original/examples/syntax/multiple_hyperlink_formatted.exp +71 -0
  26. data/original/examples/syntax/multiple_schema_head_hyperlink_formatted.exp +13 -0
  27. data/original/examples/syntax/remark.exp +41 -41
  28. data/original/examples/syntax/remark.yaml +445 -0
  29. data/original/examples/syntax/remark_formatted.exp +62 -50
  30. data/original/examples/syntax/{simple.exp → single.exp} +1 -1
  31. data/original/examples/syntax/single.yaml +8 -0
  32. data/original/examples/syntax/single_formatted.exp +6 -0
  33. data/original/examples/syntax/single_formatted.yaml +18 -0
  34. data/original/examples/syntax/syntax.exp +29 -19
  35. data/original/examples/syntax/syntax.yaml +3438 -0
  36. data/original/examples/syntax/syntax_formatted.exp +271 -131
  37. data/original/examples/syntax/syntax_schema_head_formatted.exp +18 -0
  38. data/spec/expressir/express_exp/formatter_spec.rb +110 -0
  39. data/spec/expressir/express_exp/parser_spec.rb +98 -0
  40. data/spec/expressir/model/{model_element/find_spec.rb → model_element_spec.rb} +93 -10
  41. metadata +17 -16
  42. data/original/examples/syntax/hyperlink_formatted.exp +0 -51
  43. data/original/examples/syntax/source.exp +0 -16
  44. data/spec/expressir/express_exp/formatter/remark_spec.rb +0 -28
  45. data/spec/expressir/express_exp/formatter/syntax_spec.rb +0 -28
  46. data/spec/expressir/express_exp/hyperlink_formatter_spec.rb +0 -28
  47. data/spec/expressir/express_exp/parser/multiple_spec.rb +0 -37
  48. data/spec/expressir/express_exp/parser/remark_spec.rb +0 -411
  49. data/spec/expressir/express_exp/parser/source_spec.rb +0 -29
  50. data/spec/expressir/express_exp/parser/syntax_spec.rb +0 -3086
  51. data/spec/expressir/express_exp/schema_head_formatter_spec.rb +0 -40
  52. data/spec/expressir/model/model_element/hash_spec.rb +0 -66
@@ -1,223 +1,286 @@
1
1
  SCHEMA syntax_schema 'version';
2
+
2
3
  USE FROM contract_schema;
3
4
  USE FROM contract_schema
4
5
  (contract);
5
6
  USE FROM contract_schema
6
- (contract, contract2);
7
+ (contract,
8
+ contract2);
7
9
  USE FROM contract_schema
8
10
  (contract AS contract2);
9
11
  REFERENCE FROM contract_schema;
10
12
  REFERENCE FROM contract_schema
11
13
  (contract);
12
14
  REFERENCE FROM contract_schema
13
- (contract, contract2);
15
+ (contract,
16
+ contract2);
14
17
  REFERENCE FROM contract_schema
15
18
  (contract AS contract2);
19
+
16
20
  CONSTANT
17
21
  empty_constant : BOOLEAN := TRUE;
18
22
  END_CONSTANT;
23
+
19
24
  TYPE empty_type = BOOLEAN;
20
25
  END_TYPE;
26
+
21
27
  TYPE where_type = BOOLEAN;
22
- WHERE
23
- TRUE;
28
+ WHERE
29
+ TRUE;
24
30
  END_TYPE;
31
+
25
32
  TYPE where_label_type = BOOLEAN;
26
- WHERE
27
- WR1 : TRUE;
33
+ WHERE
34
+ WR1: TRUE;
28
35
  END_TYPE;
36
+
29
37
  ENTITY empty_entity;
30
38
  END_ENTITY;
39
+
31
40
  ENTITY abstract_entity
32
41
  ABSTRACT SUPERTYPE;
33
42
  END_ENTITY;
43
+
34
44
  ENTITY abstract_supertype_entity
35
45
  ABSTRACT SUPERTYPE;
36
46
  END_ENTITY;
47
+
37
48
  ENTITY abstract_supertype_constraint_entity
38
49
  ABSTRACT SUPERTYPE OF (empty_entity);
39
50
  END_ENTITY;
51
+
40
52
  ENTITY supertype_constraint_entity
41
53
  SUPERTYPE OF (empty_entity);
42
54
  END_ENTITY;
55
+
43
56
  ENTITY subtype_entity
44
57
  SUBTYPE OF (empty_entity);
45
58
  END_ENTITY;
59
+
46
60
  ENTITY supertype_constraint_subtype_entity
47
61
  SUPERTYPE OF (empty_entity)
48
62
  SUBTYPE OF (empty_entity);
49
63
  END_ENTITY;
64
+
50
65
  ENTITY attribute_entity;
51
66
  test : BOOLEAN;
52
67
  END_ENTITY;
68
+
53
69
  ENTITY attribute_optional_entity;
54
70
  test : OPTIONAL BOOLEAN;
55
71
  END_ENTITY;
72
+
56
73
  ENTITY attribute_multiple_entity;
57
74
  test : BOOLEAN;
58
75
  test2 : BOOLEAN;
59
76
  END_ENTITY;
77
+
60
78
  ENTITY attribute_multiple_shorthand_entity;
61
79
  test : BOOLEAN;
62
80
  test2 : BOOLEAN;
63
81
  END_ENTITY;
82
+
64
83
  ENTITY attribute_redeclared_entity
65
84
  SUBTYPE OF (attribute_entity);
66
85
  SELF\attribute_entity.test : BOOLEAN;
67
86
  END_ENTITY;
87
+
68
88
  ENTITY attribute_redeclared_renamed_entity
69
89
  SUBTYPE OF (attribute_entity);
70
90
  SELF\attribute_entity.test RENAMED test2 : BOOLEAN;
71
91
  END_ENTITY;
92
+
72
93
  ENTITY derived_attribute_entity;
73
- DERIVE
74
- test : BOOLEAN := TRUE;
94
+ DERIVE
95
+ test : BOOLEAN := TRUE;
75
96
  END_ENTITY;
97
+
76
98
  ENTITY derived_attribute_redeclared_entity
77
99
  SUBTYPE OF (attribute_entity);
78
- DERIVE
79
- SELF\attribute_entity.test : BOOLEAN := TRUE;
100
+ DERIVE
101
+ SELF\attribute_entity.test : BOOLEAN := TRUE;
80
102
  END_ENTITY;
103
+
81
104
  ENTITY derived_attribute_redeclared_renamed_entity
82
105
  SUBTYPE OF (attribute_entity);
83
- DERIVE
84
- SELF\attribute_entity.test RENAMED test2 : BOOLEAN := TRUE;
106
+ DERIVE
107
+ SELF\attribute_entity.test RENAMED test2 : BOOLEAN := TRUE;
85
108
  END_ENTITY;
109
+
86
110
  ENTITY inverse_attribute_entity;
87
- INVERSE
88
- test : attribute_entity FOR test;
111
+ INVERSE
112
+ test : attribute_entity FOR test;
89
113
  END_ENTITY;
114
+
90
115
  ENTITY inverse_attribute_entity_entity;
91
- INVERSE
92
- test : attribute_entity FOR attribute_entity.test;
116
+ INVERSE
117
+ test : attribute_entity FOR attribute_entity.test;
93
118
  END_ENTITY;
119
+
94
120
  ENTITY inverse_attribute_set_entity;
95
- INVERSE
96
- test : SET OF attribute_entity FOR test;
121
+ INVERSE
122
+ test : SET OF attribute_entity FOR test;
97
123
  END_ENTITY;
124
+
98
125
  ENTITY inverse_attribute_set_bound_entity;
99
- INVERSE
100
- test : SET [1:9] OF attribute_entity FOR test;
126
+ INVERSE
127
+ test : SET [1:9] OF attribute_entity FOR test;
101
128
  END_ENTITY;
129
+
102
130
  ENTITY inverse_attribute_bag_entity;
103
- INVERSE
104
- test : BAG OF attribute_entity FOR test;
131
+ INVERSE
132
+ test : BAG OF attribute_entity FOR test;
105
133
  END_ENTITY;
134
+
106
135
  ENTITY inverse_attribute_bag_bound_entity;
107
- INVERSE
108
- test : BAG [1:9] OF attribute_entity FOR test;
136
+ INVERSE
137
+ test : BAG [1:9] OF attribute_entity FOR test;
109
138
  END_ENTITY;
139
+
110
140
  ENTITY inverse_attribute_redeclared_entity
111
141
  SUBTYPE OF (attribute_entity);
112
- INVERSE
113
- SELF\attribute_entity.test : attribute_entity FOR test;
142
+ INVERSE
143
+ SELF\attribute_entity.test : attribute_entity FOR test;
114
144
  END_ENTITY;
145
+
115
146
  ENTITY inverse_attribute_redeclared_renamed_entity
116
147
  SUBTYPE OF (attribute_entity);
117
- INVERSE
118
- SELF\attribute_entity.test RENAMED test2 : attribute_entity FOR test;
148
+ INVERSE
149
+ SELF\attribute_entity.test RENAMED test2 : attribute_entity FOR test;
119
150
  END_ENTITY;
151
+
120
152
  ENTITY unique_entity;
121
153
  test : BOOLEAN;
122
- UNIQUE
123
- test;
154
+ UNIQUE
155
+ test;
124
156
  END_ENTITY;
157
+
125
158
  ENTITY unique_label_entity;
126
159
  test : BOOLEAN;
127
- UNIQUE
128
- UR1 : test;
160
+ UNIQUE
161
+ UR1: test;
129
162
  END_ENTITY;
163
+
130
164
  ENTITY unique_redeclared_entity
131
165
  SUBTYPE OF (attribute_entity);
132
- UNIQUE
133
- SELF\attribute_entity.test;
166
+ UNIQUE
167
+ SELF\attribute_entity.test;
134
168
  END_ENTITY;
169
+
135
170
  ENTITY unique_label_redeclared_entity
136
171
  SUBTYPE OF (attribute_entity);
137
- UNIQUE
138
- UR1 : SELF\attribute_entity.test;
172
+ UNIQUE
173
+ UR1: SELF\attribute_entity.test;
139
174
  END_ENTITY;
175
+
140
176
  ENTITY where_entity;
141
- WHERE
142
- TRUE;
177
+ WHERE
178
+ TRUE;
143
179
  END_ENTITY;
180
+
144
181
  ENTITY where_label_entity;
145
- WHERE
146
- WR1 : TRUE;
182
+ WHERE
183
+ WR1: TRUE;
147
184
  END_ENTITY;
185
+
148
186
  SUBTYPE_CONSTRAINT empty_subtype_constraint FOR empty_entity;
149
187
  END_SUBTYPE_CONSTRAINT;
188
+
150
189
  SUBTYPE_CONSTRAINT abstract_supertype_subtype_constraint FOR empty_entity;
151
190
  ABSTRACT SUPERTYPE;
152
191
  END_SUBTYPE_CONSTRAINT;
192
+
153
193
  SUBTYPE_CONSTRAINT total_over_subtype_constraint FOR empty_entity;
154
194
  TOTAL_OVER(a);
155
195
  END_SUBTYPE_CONSTRAINT;
196
+
156
197
  SUBTYPE_CONSTRAINT supertype_expression_subtype_constraint FOR empty_entity;
157
198
  a;
158
199
  END_SUBTYPE_CONSTRAINT;
200
+
159
201
  SUBTYPE_CONSTRAINT supertype_expression_andor_subtype_constraint FOR empty_entity;
160
202
  a ANDOR b;
161
203
  END_SUBTYPE_CONSTRAINT;
204
+
162
205
  SUBTYPE_CONSTRAINT supertype_expression_and_subtype_constraint FOR empty_entity;
163
206
  a AND b;
164
207
  END_SUBTYPE_CONSTRAINT;
208
+
165
209
  SUBTYPE_CONSTRAINT supertype_expression_andor_and_subtype_constraint FOR empty_entity;
166
210
  a ANDOR b AND c;
167
211
  END_SUBTYPE_CONSTRAINT;
212
+
168
213
  SUBTYPE_CONSTRAINT supertype_expression_and_andor_subtype_constraint FOR empty_entity;
169
214
  a AND b ANDOR c;
170
215
  END_SUBTYPE_CONSTRAINT;
216
+
171
217
  SUBTYPE_CONSTRAINT supertype_expression_parenthesis_andor_and_subtype_constraint FOR empty_entity;
172
218
  (a ANDOR b) AND c;
173
219
  END_SUBTYPE_CONSTRAINT;
220
+
174
221
  SUBTYPE_CONSTRAINT supertype_expression_and_parenthesis_andor_subtype_constraint FOR empty_entity;
175
222
  a AND (b ANDOR c);
176
223
  END_SUBTYPE_CONSTRAINT;
224
+
177
225
  SUBTYPE_CONSTRAINT supertype_expression_oneof_subtype_constraint FOR empty_entity;
178
226
  ONEOF(a, b);
179
227
  END_SUBTYPE_CONSTRAINT;
228
+
180
229
  SUBTYPE_CONSTRAINT supertype_expression_and_oneof_subtype_constraint FOR empty_entity;
181
230
  a AND ONEOF(b, c);
182
231
  END_SUBTYPE_CONSTRAINT;
232
+
183
233
  SUBTYPE_CONSTRAINT supertype_expression_andor_oneof_subtype_constraint FOR empty_entity;
184
234
  a ANDOR ONEOF(b, c);
185
235
  END_SUBTYPE_CONSTRAINT;
236
+
186
237
  SUBTYPE_CONSTRAINT supertype_expression_oneof_and_subtype_constraint FOR empty_entity;
187
238
  ONEOF(a, b) AND c;
188
239
  END_SUBTYPE_CONSTRAINT;
240
+
189
241
  SUBTYPE_CONSTRAINT supertype_expression_oneof_andor_subtype_constraint FOR empty_entity;
190
242
  ONEOF(a, b) ANDOR c;
191
243
  END_SUBTYPE_CONSTRAINT;
244
+
192
245
  SUBTYPE_CONSTRAINT supertype_expression_oneof_and_oneof_subtype_constraint FOR empty_entity;
193
246
  ONEOF(a, b) AND ONEOF(c, d);
194
247
  END_SUBTYPE_CONSTRAINT;
248
+
195
249
  SUBTYPE_CONSTRAINT supertype_expression_oneof_andor_oneof_subtype_constraint FOR empty_entity;
196
250
  ONEOF(a, b) ANDOR ONEOF(c, d);
197
251
  END_SUBTYPE_CONSTRAINT;
252
+
198
253
  FUNCTION empty_function : BOOLEAN;
199
254
  ;
200
255
  END_FUNCTION;
256
+
201
257
  FUNCTION parameter_function(test : BOOLEAN) : BOOLEAN;
202
258
  ;
203
259
  END_FUNCTION;
204
- FUNCTION multiple_parameter_function(test : BOOLEAN; test2 : BOOLEAN) : BOOLEAN;
260
+
261
+ FUNCTION multiple_parameter_function(test : BOOLEAN;
262
+ test2 : BOOLEAN) : BOOLEAN;
205
263
  ;
206
264
  END_FUNCTION;
207
- FUNCTION multiple_shorthand_parameter_function(test : BOOLEAN; test2 : BOOLEAN) : BOOLEAN;
265
+
266
+ FUNCTION multiple_shorthand_parameter_function(test : BOOLEAN;
267
+ test2 : BOOLEAN) : BOOLEAN;
208
268
  ;
209
269
  END_FUNCTION;
270
+
210
271
  FUNCTION type_function : BOOLEAN;
211
272
  TYPE test = BOOLEAN;
212
273
  END_TYPE;
213
274
  ;
214
275
  END_FUNCTION;
276
+
215
277
  FUNCTION constant_function : BOOLEAN;
216
278
  CONSTANT
217
279
  test : BOOLEAN := TRUE;
218
280
  END_CONSTANT;
219
281
  ;
220
282
  END_FUNCTION;
283
+
221
284
  FUNCTION multiple_constant_function : BOOLEAN;
222
285
  CONSTANT
223
286
  test : BOOLEAN := TRUE;
@@ -225,12 +288,14 @@ FUNCTION multiple_constant_function : BOOLEAN;
225
288
  END_CONSTANT;
226
289
  ;
227
290
  END_FUNCTION;
291
+
228
292
  FUNCTION variable_function : BOOLEAN;
229
293
  LOCAL
230
294
  test : BOOLEAN;
231
295
  END_LOCAL;
232
296
  ;
233
297
  END_FUNCTION;
298
+
234
299
  FUNCTION multiple_variable_function : BOOLEAN;
235
300
  LOCAL
236
301
  test : BOOLEAN;
@@ -238,6 +303,7 @@ FUNCTION multiple_variable_function : BOOLEAN;
238
303
  END_LOCAL;
239
304
  ;
240
305
  END_FUNCTION;
306
+
241
307
  FUNCTION multiple_shorthand_variable_function : BOOLEAN;
242
308
  LOCAL
243
309
  test : BOOLEAN;
@@ -245,12 +311,14 @@ FUNCTION multiple_shorthand_variable_function : BOOLEAN;
245
311
  END_LOCAL;
246
312
  ;
247
313
  END_FUNCTION;
314
+
248
315
  FUNCTION variable_expression_function : BOOLEAN;
249
316
  LOCAL
250
317
  test : BOOLEAN := TRUE;
251
318
  END_LOCAL;
252
319
  ;
253
320
  END_FUNCTION;
321
+
254
322
  FUNCTION multiple_variable_expression_function : BOOLEAN;
255
323
  LOCAL
256
324
  test : BOOLEAN := TRUE;
@@ -258,6 +326,7 @@ FUNCTION multiple_variable_expression_function : BOOLEAN;
258
326
  END_LOCAL;
259
327
  ;
260
328
  END_FUNCTION;
329
+
261
330
  FUNCTION multiple_shorthand_variable_expression_function : BOOLEAN;
262
331
  LOCAL
263
332
  test : BOOLEAN := TRUE;
@@ -265,74 +334,190 @@ FUNCTION multiple_shorthand_variable_expression_function : BOOLEAN;
265
334
  END_LOCAL;
266
335
  ;
267
336
  END_FUNCTION;
337
+
338
+ RULE empty_rule FOR (empty_entity);
339
+ WHERE
340
+ TRUE;
341
+ END_RULE;
342
+
343
+ RULE type_rule FOR (empty_entity);
344
+ TYPE test = BOOLEAN;
345
+ END_TYPE;
346
+ WHERE
347
+ TRUE;
348
+ END_RULE;
349
+
350
+ RULE constant_rule FOR (empty_entity);
351
+ CONSTANT
352
+ test : BOOLEAN := TRUE;
353
+ END_CONSTANT;
354
+ WHERE
355
+ TRUE;
356
+ END_RULE;
357
+
358
+ RULE multiple_constant_rule FOR (empty_entity);
359
+ CONSTANT
360
+ test : BOOLEAN := TRUE;
361
+ test2 : BOOLEAN := TRUE;
362
+ END_CONSTANT;
363
+ WHERE
364
+ TRUE;
365
+ END_RULE;
366
+
367
+ RULE variable_rule FOR (empty_entity);
368
+ LOCAL
369
+ test : BOOLEAN;
370
+ END_LOCAL;
371
+ WHERE
372
+ TRUE;
373
+ END_RULE;
374
+
375
+ RULE multiple_variable_rule FOR (empty_entity);
376
+ LOCAL
377
+ test : BOOLEAN;
378
+ test2 : BOOLEAN;
379
+ END_LOCAL;
380
+ WHERE
381
+ TRUE;
382
+ END_RULE;
383
+
384
+ RULE multiple_shorthand_variable_rule FOR (empty_entity);
385
+ LOCAL
386
+ test : BOOLEAN;
387
+ test2 : BOOLEAN;
388
+ END_LOCAL;
389
+ WHERE
390
+ TRUE;
391
+ END_RULE;
392
+
393
+ RULE variable_expression_rule FOR (empty_entity);
394
+ LOCAL
395
+ test : BOOLEAN := TRUE;
396
+ END_LOCAL;
397
+ WHERE
398
+ TRUE;
399
+ END_RULE;
400
+
401
+ RULE multiple_variable_expression_rule FOR (empty_entity);
402
+ LOCAL
403
+ test : BOOLEAN := TRUE;
404
+ test2 : BOOLEAN := TRUE;
405
+ END_LOCAL;
406
+ WHERE
407
+ TRUE;
408
+ END_RULE;
409
+
410
+ RULE multiple_shorthand_variable_expression_rule FOR (empty_entity);
411
+ LOCAL
412
+ test : BOOLEAN := TRUE;
413
+ test2 : BOOLEAN := TRUE;
414
+ END_LOCAL;
415
+ WHERE
416
+ TRUE;
417
+ END_RULE;
418
+
419
+ RULE statement_rule FOR (empty_entity);
420
+ ;
421
+ WHERE
422
+ TRUE;
423
+ END_RULE;
424
+
425
+ RULE where_label_rule FOR (empty_entity);
426
+ WHERE
427
+ WR1: TRUE;
428
+ END_RULE;
429
+
268
430
  PROCEDURE empty_procedure;
269
431
  END_PROCEDURE;
432
+
270
433
  PROCEDURE parameter_procedure(test : BOOLEAN);
271
434
  END_PROCEDURE;
272
- PROCEDURE multiple_parameter_procedure(test : BOOLEAN; test2 : BOOLEAN);
435
+
436
+ PROCEDURE multiple_parameter_procedure(test : BOOLEAN;
437
+ test2 : BOOLEAN);
273
438
  END_PROCEDURE;
274
- PROCEDURE multiple_shorthand_parameter_procedure(test : BOOLEAN; test2 : BOOLEAN);
439
+
440
+ PROCEDURE multiple_shorthand_parameter_procedure(test : BOOLEAN;
441
+ test2 : BOOLEAN);
275
442
  END_PROCEDURE;
443
+
276
444
  PROCEDURE variable_parameter_procedure(VAR test : BOOLEAN);
277
445
  END_PROCEDURE;
278
- PROCEDURE multiple_variable_parameter_procedure(VAR test : BOOLEAN; test2 : BOOLEAN);
446
+
447
+ PROCEDURE multiple_variable_parameter_procedure(VAR test : BOOLEAN;
448
+ test2 : BOOLEAN);
279
449
  END_PROCEDURE;
280
- PROCEDURE multiple_variable_parameter2_procedure(test : BOOLEAN; VAR test2 : BOOLEAN);
450
+
451
+ PROCEDURE multiple_variable_parameter2_procedure(test : BOOLEAN;
452
+ VAR test2 : BOOLEAN);
281
453
  END_PROCEDURE;
282
- PROCEDURE multiple_shorthand_variable_parameter_procedure(VAR test : BOOLEAN; VAR test2 : BOOLEAN);
454
+
455
+ PROCEDURE multiple_shorthand_variable_parameter_procedure(VAR test : BOOLEAN;
456
+ VAR test2 : BOOLEAN);
283
457
  END_PROCEDURE;
458
+
284
459
  PROCEDURE type_procedure;
285
460
  TYPE test = BOOLEAN;
286
461
  END_TYPE;
287
462
  END_PROCEDURE;
463
+
288
464
  PROCEDURE constant_procedure;
289
465
  CONSTANT
290
466
  test : BOOLEAN := TRUE;
291
467
  END_CONSTANT;
292
468
  END_PROCEDURE;
469
+
293
470
  PROCEDURE multiple_constant_procedure;
294
471
  CONSTANT
295
472
  test : BOOLEAN := TRUE;
296
473
  test2 : BOOLEAN := TRUE;
297
474
  END_CONSTANT;
298
475
  END_PROCEDURE;
476
+
299
477
  PROCEDURE variable_procedure;
300
478
  LOCAL
301
479
  test : BOOLEAN;
302
480
  END_LOCAL;
303
481
  END_PROCEDURE;
482
+
304
483
  PROCEDURE multiple_variable_procedure;
305
484
  LOCAL
306
485
  test : BOOLEAN;
307
486
  test2 : BOOLEAN;
308
487
  END_LOCAL;
309
488
  END_PROCEDURE;
489
+
310
490
  PROCEDURE multiple_shorthand_variable_procedure;
311
491
  LOCAL
312
492
  test : BOOLEAN;
313
493
  test2 : BOOLEAN;
314
494
  END_LOCAL;
315
495
  END_PROCEDURE;
496
+
316
497
  PROCEDURE variable_expression_procedure;
317
498
  LOCAL
318
499
  test : BOOLEAN := TRUE;
319
500
  END_LOCAL;
320
501
  END_PROCEDURE;
502
+
321
503
  PROCEDURE multiple_variable_expression_procedure;
322
504
  LOCAL
323
505
  test : BOOLEAN := TRUE;
324
506
  test2 : BOOLEAN := TRUE;
325
507
  END_LOCAL;
326
508
  END_PROCEDURE;
509
+
327
510
  PROCEDURE multiple_shorthand_variable_expression_procedure;
328
511
  LOCAL
329
512
  test : BOOLEAN := TRUE;
330
513
  test2 : BOOLEAN := TRUE;
331
514
  END_LOCAL;
332
515
  END_PROCEDURE;
516
+
333
517
  PROCEDURE statement_procedure;
334
518
  ;
335
519
  END_PROCEDURE;
520
+
336
521
  PROCEDURE statements;
337
522
  PROCEDURE alias_simple_reference_statement;
338
523
  ALIAS test FOR test;
@@ -506,6 +691,7 @@ PROCEDURE statements;
506
691
  SKIP;
507
692
  END_PROCEDURE;
508
693
  END_PROCEDURE;
694
+
509
695
  PROCEDURE types;
510
696
  TYPE binary_type = BINARY;
511
697
  END_TYPE;
@@ -561,23 +747,56 @@ PROCEDURE types;
561
747
  END_TYPE;
562
748
  TYPE select_extensible_generic_entity_type = EXTENSIBLE GENERIC_ENTITY SELECT;
563
749
  END_TYPE;
564
- TYPE select_list_type = SELECT (empty_type);
750
+ TYPE select_list_type = SELECT
751
+ (empty_type);
752
+ END_TYPE;
753
+ TYPE select_list_multiple_type = SELECT
754
+ (empty_type,
755
+ empty_type);
565
756
  END_TYPE;
566
757
  TYPE select_extension_type_ref_type = SELECT BASED_ON select_type;
567
758
  END_TYPE;
568
- TYPE select_extension_type_ref_list_type = SELECT BASED_ON select_type WITH (empty_type);
759
+ TYPE select_extension_type_ref_list_type = SELECT BASED_ON select_type WITH
760
+ (empty_type);
761
+ END_TYPE;
762
+ TYPE select_extension_type_ref_list_multiple_type = SELECT BASED_ON select_type WITH
763
+ (empty_type,
764
+ empty_type);
569
765
  END_TYPE;
570
766
  TYPE enumeration_type = ENUMERATION;
571
767
  END_TYPE;
572
768
  TYPE enumeration_extensible_type = EXTENSIBLE ENUMERATION;
573
769
  END_TYPE;
574
- TYPE enumeration_list_type = ENUMERATION OF (test);
770
+ TYPE enumeration_list_type = ENUMERATION OF
771
+ (test);
772
+ END_TYPE;
773
+ TYPE enumeration_list_multiple_type = ENUMERATION OF
774
+ (test,
775
+ test2);
575
776
  END_TYPE;
576
777
  TYPE enumeration_extension_type_ref_type = ENUMERATION BASED_ON enumeration_type;
577
778
  END_TYPE;
578
- TYPE enumeration_extension_type_ref_list_type = ENUMERATION BASED_ON enumeration_type WITH (test);
779
+ TYPE enumeration_extension_type_ref_list_type = ENUMERATION BASED_ON enumeration_type WITH
780
+ (test);
781
+ END_TYPE;
782
+ TYPE enumeration_extension_type_ref_list_multiple_type = ENUMERATION BASED_ON enumeration_type WITH
783
+ (test,
784
+ test2);
579
785
  END_TYPE;
786
+ FUNCTION generic_type : GENERIC;
787
+ ;
788
+ END_FUNCTION;
789
+ FUNCTION generic_label_type : GENERIC:label;
790
+ ;
791
+ END_FUNCTION;
792
+ FUNCTION generic_entity_type : GENERIC_ENTITY;
793
+ ;
794
+ END_FUNCTION;
795
+ FUNCTION generic_entity_label_type : GENERIC_ENTITY:label;
796
+ ;
797
+ END_FUNCTION;
580
798
  END_PROCEDURE;
799
+
581
800
  PROCEDURE expressions;
582
801
  LOCAL
583
802
  binary_expression : BOOLEAN := %011110000111100001111000;
@@ -679,84 +898,5 @@ PROCEDURE expressions;
679
898
  query_expression : BOOLEAN := QUERY(test <* test2 | TRUE);
680
899
  END_LOCAL;
681
900
  END_PROCEDURE;
682
- RULE empty_rule FOR (empty_entity);
683
- WHERE
684
- TRUE;
685
- END_RULE;
686
- RULE type_rule FOR (empty_entity);
687
- TYPE test = BOOLEAN;
688
- END_TYPE;
689
- WHERE
690
- TRUE;
691
- END_RULE;
692
- RULE constant_rule FOR (empty_entity);
693
- CONSTANT
694
- test : BOOLEAN := TRUE;
695
- END_CONSTANT;
696
- WHERE
697
- TRUE;
698
- END_RULE;
699
- RULE multiple_constant_rule FOR (empty_entity);
700
- CONSTANT
701
- test : BOOLEAN := TRUE;
702
- test2 : BOOLEAN := TRUE;
703
- END_CONSTANT;
704
- WHERE
705
- TRUE;
706
- END_RULE;
707
- RULE variable_rule FOR (empty_entity);
708
- LOCAL
709
- test : BOOLEAN;
710
- END_LOCAL;
711
- WHERE
712
- TRUE;
713
- END_RULE;
714
- RULE multiple_variable_rule FOR (empty_entity);
715
- LOCAL
716
- test : BOOLEAN;
717
- test2 : BOOLEAN;
718
- END_LOCAL;
719
- WHERE
720
- TRUE;
721
- END_RULE;
722
- RULE multiple_shorthand_variable_rule FOR (empty_entity);
723
- LOCAL
724
- test : BOOLEAN;
725
- test2 : BOOLEAN;
726
- END_LOCAL;
727
- WHERE
728
- TRUE;
729
- END_RULE;
730
- RULE variable_expression_rule FOR (empty_entity);
731
- LOCAL
732
- test : BOOLEAN := TRUE;
733
- END_LOCAL;
734
- WHERE
735
- TRUE;
736
- END_RULE;
737
- RULE multiple_variable_expression_rule FOR (empty_entity);
738
- LOCAL
739
- test : BOOLEAN := TRUE;
740
- test2 : BOOLEAN := TRUE;
741
- END_LOCAL;
742
- WHERE
743
- TRUE;
744
- END_RULE;
745
- RULE multiple_shorthand_variable_expression_rule FOR (empty_entity);
746
- LOCAL
747
- test : BOOLEAN := TRUE;
748
- test2 : BOOLEAN := TRUE;
749
- END_LOCAL;
750
- WHERE
751
- TRUE;
752
- END_RULE;
753
- RULE statement_rule FOR (empty_entity);
754
- ;
755
- WHERE
756
- TRUE;
757
- END_RULE;
758
- RULE where_label_rule FOR (empty_entity);
759
- WHERE
760
- WR1 : TRUE;
761
- END_RULE;
901
+
762
902
  END_SCHEMA;