expressir 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +46 -0
  3. data/.github/workflows/release.yml +74 -0
  4. data/.gitignore +1 -2
  5. data/.gitmodules +3 -0
  6. data/Gemfile +2 -0
  7. data/Rakefile +20 -0
  8. data/exe/generate-parser +48 -0
  9. data/expressir.gemspec +5 -2
  10. data/ext/express-parser/antlrgen/Express.interp +532 -0
  11. data/ext/express-parser/antlrgen/Express.tokens +190 -0
  12. data/ext/express-parser/antlrgen/ExpressBaseListener.cpp +7 -0
  13. data/ext/express-parser/antlrgen/ExpressBaseListener.h +623 -0
  14. data/ext/express-parser/antlrgen/ExpressBaseVisitor.cpp +7 -0
  15. data/ext/express-parser/antlrgen/ExpressBaseVisitor.h +816 -0
  16. data/ext/express-parser/antlrgen/ExpressLexer.cpp +1169 -0
  17. data/ext/express-parser/antlrgen/ExpressLexer.h +85 -0
  18. data/ext/express-parser/antlrgen/ExpressLexer.interp +534 -0
  19. data/ext/express-parser/antlrgen/ExpressLexer.tokens +190 -0
  20. data/ext/express-parser/antlrgen/ExpressListener.cpp +7 -0
  21. data/ext/express-parser/antlrgen/ExpressListener.h +616 -0
  22. data/ext/express-parser/antlrgen/ExpressParser.cpp +17284 -0
  23. data/ext/express-parser/antlrgen/ExpressParser.h +3696 -0
  24. data/ext/express-parser/antlrgen/ExpressVisitor.cpp +7 -0
  25. data/ext/express-parser/antlrgen/ExpressVisitor.h +422 -0
  26. data/ext/express-parser/express_parser.cpp +17931 -0
  27. data/ext/express-parser/extconf.rb +34 -0
  28. data/lib/expressir/express_exp/formatter.rb +50 -44
  29. data/lib/expressir/express_exp/parser.rb +12 -6
  30. data/lib/expressir/express_exp/visitor.rb +1377 -1068
  31. data/lib/expressir/model.rb +3 -0
  32. data/lib/expressir/model/attribute.rb +4 -5
  33. data/lib/expressir/model/constant.rb +3 -4
  34. data/lib/expressir/model/entity.rb +4 -4
  35. data/lib/expressir/model/enumeration_item.rb +1 -4
  36. data/lib/expressir/model/expressions/query_expression.rb +4 -4
  37. data/lib/expressir/model/function.rb +4 -4
  38. data/lib/expressir/model/identifier.rb +9 -0
  39. data/lib/expressir/model/parameter.rb +4 -5
  40. data/lib/expressir/model/procedure.rb +4 -4
  41. data/lib/expressir/model/repository.rb +2 -0
  42. data/lib/expressir/model/rule.rb +4 -4
  43. data/lib/expressir/model/schema.rb +3 -3
  44. data/lib/expressir/model/scope.rb +17 -0
  45. data/lib/expressir/model/statements/alias.rb +4 -4
  46. data/lib/expressir/model/statements/repeat.rb +4 -4
  47. data/lib/expressir/model/subtype_constraint.rb +9 -4
  48. data/lib/expressir/model/type.rb +4 -4
  49. data/lib/expressir/model/types/aggregate.rb +4 -5
  50. data/lib/expressir/model/types/generic.rb +2 -5
  51. data/lib/expressir/model/types/generic_entity.rb +2 -5
  52. data/lib/expressir/model/unique.rb +3 -4
  53. data/lib/expressir/model/variable.rb +3 -4
  54. data/lib/expressir/model/where.rb +3 -4
  55. data/lib/expressir/version.rb +1 -1
  56. data/original/examples/syntax/remark_formatted.exp +73 -71
  57. data/original/examples/syntax/syntax_formatted.exp +109 -98
  58. data/spec/expressir/express_exp/ap233_spec.rb +1 -1
  59. data/spec/expressir/express_exp/parse_syntax_spec.rb +30 -30
  60. data/spec/expressir/model/find_spec.rb +110 -0
  61. metadata +61 -15
  62. data/.github/workflows/macos.yml +0 -38
  63. data/.github/workflows/ubuntu.yml +0 -56
  64. data/.github/workflows/windows.yml +0 -40
  65. data/generate-parser.sh +0 -29
  66. data/lib/expressir/express_exp/generated/ExpressBaseVisitor.rb +0 -779
  67. data/lib/expressir/express_exp/generated/ExpressLexer.rb +0 -844
  68. data/lib/expressir/express_exp/generated/ExpressParser.rb +0 -12162
  69. data/lib/expressir/express_exp/generated/ExpressVisitor.rb +0 -394
@@ -1,14 +1,13 @@
1
1
  module Expressir
2
2
  module Model
3
3
  class Where
4
- attr_accessor :id
5
- attr_accessor :expression
4
+ include Identifier
6
5
 
7
- attr_accessor :parent
8
- attr_accessor :remarks
6
+ attr_accessor :expression
9
7
 
10
8
  def initialize(options = {})
11
9
  @id = options[:id]
10
+
12
11
  @expression = options[:expression]
13
12
  end
14
13
  end
@@ -1,3 +1,3 @@
1
1
  module Expressir
2
- VERSION = "0.2.3".freeze
2
+ VERSION = "0.2.4".freeze
3
3
  end
@@ -7,27 +7,14 @@ END_TYPE;
7
7
 
8
8
  ENTITY remark_entity;
9
9
  remark_attribute : STRING;
10
- DERIVE remark_derived_attribute : STRING := 'xxx';
11
- INVERSE remark_inverse_attribute : remark_entity FOR remark_attribute;
10
+ DERIVE
11
+ remark_derived_attribute : STRING := 'xxx';
12
+ INVERSE
13
+ remark_inverse_attribute : remark_entity FOR remark_attribute;
12
14
  UNIQUE
13
15
  remark_unique : remark_attribute;
14
16
  WHERE
15
17
  remark_where : TRUE;
16
- --"remark_entity.remark_attribute" entity scope - entity attribute
17
- --"remark_entity.remark_attribute" schema scope - entity attribute
18
- --"remark_entity.remark_attribute" universal scope - entity attribute
19
- --"remark_entity.remark_derived_attribute" entity scope - entity derived attribute
20
- --"remark_entity.remark_derived_attribute" schema scope - entity derived attribute
21
- --"remark_entity.remark_derived_attribute" universal scope - entity derived attribute
22
- --"remark_entity.remark_inverse_attribute" entity scope - entity inverse attribute
23
- --"remark_entity.remark_inverse_attribute" schema scope - entity inverse attribute
24
- --"remark_entity.remark_inverse_attribute" universal scope - entity inverse attribute
25
- --"remark_entity.remark_unique" entity scope - entity unique
26
- --"remark_entity.remark_unique" schema scope - entity unique
27
- --"remark_entity.remark_unique" universal scope - entity unique
28
- --"remark_entity.remark_where" entity scope - entity where
29
- --"remark_entity.remark_where" schema scope - entity where
30
- --"remark_entity.remark_where" universal scope - entity where
31
18
  END_ENTITY;
32
19
 
33
20
  SUBTYPE_CONSTRAINT remark_subtype_constraint FOR remark_entity;
@@ -53,21 +40,6 @@ FUNCTION remark_function(remark_parameter : STRING) : BOOLEAN;
53
40
  remark_variable := QUERY(remark_query <* remark_variable | TRUE
54
41
  --"remark_query" function query scope - function query
55
42
  );
56
- --"remark_function.remark_parameter" function scope - function parameter
57
- --"remark_function.remark_parameter" schema scope - function parameter
58
- --"remark_function.remark_parameter" universal scope - function parameter
59
- --"remark_function.remark_type" function scope - function type
60
- --"remark_function.remark_type" schema scope - function type
61
- --"remark_function.remark_type" universal scope - function type
62
- --"remark_function.remark_enumeration_item" function scope - function enumeration item
63
- --"remark_function.remark_enumeration_item" schema scope - function enumeration item
64
- --"remark_function.remark_enumeration_item" universal scope - function enumeration item
65
- --"remark_function.remark_constant" function scope - function constant
66
- --"remark_function.remark_constant" schema scope - function constant
67
- --"remark_function.remark_constant" universal scope - function constant
68
- --"remark_function.remark_variable" function scope - function variable
69
- --"remark_function.remark_variable" schema scope - function variable
70
- --"remark_function.remark_variable" universal scope - function variable
71
43
  END_FUNCTION;
72
44
 
73
45
  PROCEDURE remark_procedure(remark_parameter : STRING);
@@ -90,21 +62,6 @@ PROCEDURE remark_procedure(remark_parameter : STRING);
90
62
  remark_variable := QUERY(remark_query <* remark_variable | TRUE
91
63
  --"remark_query" procedure query scope - procedure query
92
64
  );
93
- --"remark_procedure.remark_parameter" procedure scope - procedure parameter
94
- --"remark_procedure.remark_parameter" schema scope - procedure parameter
95
- --"remark_procedure.remark_parameter" universal scope - procedure parameter
96
- --"remark_procedure.remark_type" procedure scope - procedure type
97
- --"remark_procedure.remark_type" schema scope - procedure type
98
- --"remark_procedure.remark_type" universal scope - procedure type
99
- --"remark_procedure.remark_enumeration_item" procedure scope - procedure enumeration item
100
- --"remark_procedure.remark_enumeration_item" schema scope - procedure enumeration item
101
- --"remark_procedure.remark_enumeration_item" universal scope - procedure enumeration item
102
- --"remark_procedure.remark_constant" procedure scope - procedure constant
103
- --"remark_procedure.remark_constant" schema scope - procedure constant
104
- --"remark_procedure.remark_constant" universal scope - procedure constant
105
- --"remark_procedure.remark_variable" procedure scope - procedure variable
106
- --"remark_procedure.remark_variable" schema scope - procedure variable
107
- --"remark_procedure.remark_variable" universal scope - procedure variable
108
65
  END_PROCEDURE;
109
66
 
110
67
  RULE remark_rule FOR (remark_entity);
@@ -129,22 +86,16 @@ RULE remark_rule FOR (remark_entity);
129
86
  );
130
87
  WHERE
131
88
  remark_where : TRUE;
132
- --"remark_rule.remark_type" rule scope - rule type
133
- --"remark_rule.remark_type" schema scope - rule type
134
- --"remark_rule.remark_type" universal scope - rule type
135
- --"remark_rule.remark_enumeration_item" rule scope - rule enumeration item
136
- --"remark_rule.remark_enumeration_item" schema scope - rule enumeration item
137
- --"remark_rule.remark_enumeration_item" universal scope - rule enumeration item
138
- --"remark_rule.remark_constant" rule scope - rule constant
139
- --"remark_rule.remark_constant" schema scope - rule constant
140
- --"remark_rule.remark_constant" universal scope - rule constant
141
- --"remark_rule.remark_variable" rule scope - rule variable
142
- --"remark_rule.remark_variable" schema scope - rule variable
143
- --"remark_rule.remark_variable" universal scope - rule variable
144
- --"remark_rule.remark_where" rule scope - rule where
145
- --"remark_rule.remark_where" schema scope - rule where
146
- --"remark_rule.remark_where" universal scope - rule where
147
89
  END_RULE;
90
+ END_SCHEMA;
91
+ (*"remark_schema"
92
+ Any character within the EXPRESS character set may occur between the start and end of
93
+ an embedded remark including the newline character; therefore, embedded remarks can span
94
+ several physical lines.
95
+ *)
96
+ --"remark_schema" The tail remark is written at the end of a physical line.
97
+ --"remark_schema" universal scope - schema before
98
+ --"remark_schema" universal scope - schema
148
99
  --"remark_schema.remark_constant" schema scope - constant
149
100
  --"remark_schema.remark_constant" universal scope - constant
150
101
  --"remark_schema.remark_type" schema scope - type
@@ -153,20 +104,71 @@ END_RULE;
153
104
  --"remark_schema.remark_enumeration_item" universal scope - enumeration item
154
105
  --"remark_schema.remark_entity" schema scope - entity
155
106
  --"remark_schema.remark_entity" universal scope - entity
107
+ --"remark_schema.remark_entity.remark_attribute" entity scope - entity attribute
108
+ --"remark_schema.remark_entity.remark_attribute" schema scope - entity attribute
109
+ --"remark_schema.remark_entity.remark_attribute" universal scope - entity attribute
110
+ --"remark_schema.remark_entity.remark_derived_attribute" entity scope - entity derived attribute
111
+ --"remark_schema.remark_entity.remark_derived_attribute" schema scope - entity derived attribute
112
+ --"remark_schema.remark_entity.remark_derived_attribute" universal scope - entity derived attribute
113
+ --"remark_schema.remark_entity.remark_inverse_attribute" entity scope - entity inverse attribute
114
+ --"remark_schema.remark_entity.remark_inverse_attribute" schema scope - entity inverse attribute
115
+ --"remark_schema.remark_entity.remark_inverse_attribute" universal scope - entity inverse attribute
116
+ --"remark_schema.remark_entity.remark_unique" entity scope - entity unique
117
+ --"remark_schema.remark_entity.remark_unique" schema scope - entity unique
118
+ --"remark_schema.remark_entity.remark_unique" universal scope - entity unique
119
+ --"remark_schema.remark_entity.remark_where" entity scope - entity where
120
+ --"remark_schema.remark_entity.remark_where" schema scope - entity where
121
+ --"remark_schema.remark_entity.remark_where" universal scope - entity where
156
122
  --"remark_schema.remark_subtype_constraint" schema scope - subtype constraint
157
123
  --"remark_schema.remark_subtype_constraint" universal scope - subtype constraint
158
124
  --"remark_schema.remark_function" schema scope - function
159
125
  --"remark_schema.remark_function" universal scope - function
126
+ --"remark_schema.remark_function.remark_parameter" function scope - function parameter
127
+ --"remark_schema.remark_function.remark_parameter" schema scope - function parameter
128
+ --"remark_schema.remark_function.remark_parameter" universal scope - function parameter
129
+ --"remark_schema.remark_function.remark_type" function scope - function type
130
+ --"remark_schema.remark_function.remark_type" schema scope - function type
131
+ --"remark_schema.remark_function.remark_type" universal scope - function type
132
+ --"remark_schema.remark_function.remark_enumeration_item" function scope - function enumeration item
133
+ --"remark_schema.remark_function.remark_enumeration_item" schema scope - function enumeration item
134
+ --"remark_schema.remark_function.remark_enumeration_item" universal scope - function enumeration item
135
+ --"remark_schema.remark_function.remark_constant" function scope - function constant
136
+ --"remark_schema.remark_function.remark_constant" schema scope - function constant
137
+ --"remark_schema.remark_function.remark_constant" universal scope - function constant
138
+ --"remark_schema.remark_function.remark_variable" function scope - function variable
139
+ --"remark_schema.remark_function.remark_variable" schema scope - function variable
140
+ --"remark_schema.remark_function.remark_variable" universal scope - function variable
160
141
  --"remark_schema.remark_procedure" schema scope - procedure
161
142
  --"remark_schema.remark_procedure" universal scope - procedure
143
+ --"remark_schema.remark_procedure.remark_parameter" procedure scope - procedure parameter
144
+ --"remark_schema.remark_procedure.remark_parameter" schema scope - procedure parameter
145
+ --"remark_schema.remark_procedure.remark_parameter" universal scope - procedure parameter
146
+ --"remark_schema.remark_procedure.remark_type" procedure scope - procedure type
147
+ --"remark_schema.remark_procedure.remark_type" schema scope - procedure type
148
+ --"remark_schema.remark_procedure.remark_type" universal scope - procedure type
149
+ --"remark_schema.remark_procedure.remark_enumeration_item" procedure scope - procedure enumeration item
150
+ --"remark_schema.remark_procedure.remark_enumeration_item" schema scope - procedure enumeration item
151
+ --"remark_schema.remark_procedure.remark_enumeration_item" universal scope - procedure enumeration item
152
+ --"remark_schema.remark_procedure.remark_constant" procedure scope - procedure constant
153
+ --"remark_schema.remark_procedure.remark_constant" schema scope - procedure constant
154
+ --"remark_schema.remark_procedure.remark_constant" universal scope - procedure constant
155
+ --"remark_schema.remark_procedure.remark_variable" procedure scope - procedure variable
156
+ --"remark_schema.remark_procedure.remark_variable" schema scope - procedure variable
157
+ --"remark_schema.remark_procedure.remark_variable" universal scope - procedure variable
162
158
  --"remark_schema.remark_rule" schema scope - rule
163
159
  --"remark_schema.remark_rule" universal scope - rule
164
- END_SCHEMA;
165
- (*"remark_schema"
166
- Any character within the EXPRESS character set may occur between the start and end of
167
- an embedded remark including the newline character; therefore, embedded remarks can span
168
- several physical lines.
169
- *)
170
- --"remark_schema" The tail remark is written at the end of a physical line.
171
- --"remark_schema" universal scope - schema before
172
- --"remark_schema" universal scope - schema
160
+ --"remark_schema.remark_rule.remark_type" rule scope - rule type
161
+ --"remark_schema.remark_rule.remark_type" schema scope - rule type
162
+ --"remark_schema.remark_rule.remark_type" universal scope - rule type
163
+ --"remark_schema.remark_rule.remark_enumeration_item" rule scope - rule enumeration item
164
+ --"remark_schema.remark_rule.remark_enumeration_item" schema scope - rule enumeration item
165
+ --"remark_schema.remark_rule.remark_enumeration_item" universal scope - rule enumeration item
166
+ --"remark_schema.remark_rule.remark_constant" rule scope - rule constant
167
+ --"remark_schema.remark_rule.remark_constant" schema scope - rule constant
168
+ --"remark_schema.remark_rule.remark_constant" universal scope - rule constant
169
+ --"remark_schema.remark_rule.remark_variable" rule scope - rule variable
170
+ --"remark_schema.remark_rule.remark_variable" schema scope - rule variable
171
+ --"remark_schema.remark_rule.remark_variable" universal scope - rule variable
172
+ --"remark_schema.remark_rule.remark_where" rule scope - rule where
173
+ --"remark_schema.remark_rule.remark_where" schema scope - rule where
174
+ --"remark_schema.remark_rule.remark_where" universal scope - rule where
@@ -80,47 +80,58 @@ ENTITY attribute_redeclared_renamed_entity;
80
80
  END_ENTITY;
81
81
 
82
82
  ENTITY derived_attribute_entity;
83
- DERIVE test : BOOLEAN := TRUE;
83
+ DERIVE
84
+ test : BOOLEAN := TRUE;
84
85
  END_ENTITY;
85
86
 
86
87
  ENTITY derived_attribute_redeclared_entity;
87
- DERIVE SELF\attribute_entity.test : BOOLEAN := TRUE;
88
+ DERIVE
89
+ SELF\attribute_entity.test : BOOLEAN := TRUE;
88
90
  END_ENTITY;
89
91
 
90
92
  ENTITY derived_attribute_redeclared_renamed_entity;
91
- DERIVE SELF\attribute_entity.test RENAMED test2 : BOOLEAN := TRUE;
93
+ DERIVE
94
+ SELF\attribute_entity.test RENAMED test2 : BOOLEAN := TRUE;
92
95
  END_ENTITY;
93
96
 
94
97
  ENTITY inverse_attribute_entity;
95
- INVERSE test : attribute_entity FOR test;
98
+ INVERSE
99
+ test : attribute_entity FOR test;
96
100
  END_ENTITY;
97
101
 
98
102
  ENTITY inverse_attribute_entity_entity;
99
- INVERSE test : attribute_entity FOR attribute_entity.test;
103
+ INVERSE
104
+ test : attribute_entity FOR attribute_entity.test;
100
105
  END_ENTITY;
101
106
 
102
107
  ENTITY inverse_attribute_set_entity;
103
- INVERSE test : SET OF attribute_entity FOR test;
108
+ INVERSE
109
+ test : SET OF attribute_entity FOR test;
104
110
  END_ENTITY;
105
111
 
106
112
  ENTITY inverse_attribute_set_bound_entity;
107
- INVERSE test : SET [1:9] OF attribute_entity FOR test;
113
+ INVERSE
114
+ test : SET [1:9] OF attribute_entity FOR test;
108
115
  END_ENTITY;
109
116
 
110
117
  ENTITY inverse_attribute_bag_entity;
111
- INVERSE test : BAG OF attribute_entity FOR test;
118
+ INVERSE
119
+ test : BAG OF attribute_entity FOR test;
112
120
  END_ENTITY;
113
121
 
114
122
  ENTITY inverse_attribute_bag_bound_entity;
115
- INVERSE test : BAG [1:9] OF attribute_entity FOR test;
123
+ INVERSE
124
+ test : BAG [1:9] OF attribute_entity FOR test;
116
125
  END_ENTITY;
117
126
 
118
127
  ENTITY inverse_attribute_redeclared_entity;
119
- INVERSE SELF\attribute_entity.test : attribute_entity FOR test;
128
+ INVERSE
129
+ SELF\attribute_entity.test : attribute_entity FOR test;
120
130
  END_ENTITY;
121
131
 
122
132
  ENTITY inverse_attribute_redeclared_renamed_entity;
123
- INVERSE SELF\attribute_entity.test RENAMED test2 : attribute_entity FOR test;
133
+ INVERSE
134
+ SELF\attribute_entity.test RENAMED test2 : attribute_entity FOR test;
124
135
  END_ENTITY;
125
136
 
126
137
  ENTITY unique_entity;
@@ -391,6 +402,93 @@ PROCEDURE statement_procedure;
391
402
  ;
392
403
  END_PROCEDURE;
393
404
 
405
+ RULE empty_rule FOR (empty_entity);
406
+ WHERE
407
+ TRUE;
408
+ END_RULE;
409
+
410
+ RULE type_rule FOR (empty_entity);
411
+ TYPE test = BOOLEAN;
412
+ END_TYPE;
413
+ WHERE
414
+ TRUE;
415
+ END_RULE;
416
+
417
+ RULE constant_rule FOR (empty_entity);
418
+ CONSTANT
419
+ test : BOOLEAN := TRUE;
420
+ END_CONSTANT;
421
+ WHERE
422
+ TRUE;
423
+ END_RULE;
424
+
425
+ RULE multiple_constant_rule FOR (empty_entity);
426
+ CONSTANT
427
+ test : BOOLEAN := TRUE;
428
+ test2 : BOOLEAN := TRUE;
429
+ END_CONSTANT;
430
+ WHERE
431
+ TRUE;
432
+ END_RULE;
433
+
434
+ RULE variable_rule FOR (empty_entity);
435
+ LOCAL
436
+ test : BOOLEAN;
437
+ END_LOCAL;
438
+ WHERE
439
+ TRUE;
440
+ END_RULE;
441
+
442
+ RULE multiple_variable_rule FOR (empty_entity);
443
+ LOCAL
444
+ test : BOOLEAN;
445
+ test2 : BOOLEAN;
446
+ END_LOCAL;
447
+ WHERE
448
+ TRUE;
449
+ END_RULE;
450
+
451
+ RULE multiple_shorthand_variable_rule FOR (empty_entity);
452
+ LOCAL
453
+ test : BOOLEAN;
454
+ test2 : BOOLEAN;
455
+ END_LOCAL;
456
+ WHERE
457
+ TRUE;
458
+ END_RULE;
459
+
460
+ RULE variable_expression_rule FOR (empty_entity);
461
+ LOCAL
462
+ test : BOOLEAN := TRUE;
463
+ END_LOCAL;
464
+ WHERE
465
+ TRUE;
466
+ END_RULE;
467
+
468
+ RULE multiple_variable_expression_rule FOR (empty_entity);
469
+ LOCAL
470
+ test : BOOLEAN := TRUE;
471
+ test2 : BOOLEAN := TRUE;
472
+ END_LOCAL;
473
+ WHERE
474
+ TRUE;
475
+ END_RULE;
476
+
477
+ RULE multiple_shorthand_variable_expression_rule FOR (empty_entity);
478
+ LOCAL
479
+ test : BOOLEAN := TRUE;
480
+ test2 : BOOLEAN := TRUE;
481
+ END_LOCAL;
482
+ WHERE
483
+ TRUE;
484
+ END_RULE;
485
+
486
+ RULE statement_rule FOR (empty_entity);
487
+ ;
488
+ WHERE
489
+ TRUE;
490
+ END_RULE;
491
+
394
492
  TYPE binary_type = BINARY;
395
493
  END_TYPE;
396
494
 
@@ -1086,91 +1184,4 @@ END_FUNCTION;
1086
1184
  FUNCTION query_expression : BOOLEAN;
1087
1185
  RETURN (QUERY(test <* test2 | TRUE));
1088
1186
  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
1187
  END_SCHEMA;