expressir 0.2.7-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (183) hide show
  1. checksums.yaml +7 -0
  2. data/.cross_rubies +30 -0
  3. data/.github/workflows/rake.yml +45 -0
  4. data/.github/workflows/release.yml +84 -0
  5. data/.gitignore +17 -0
  6. data/.gitmodules +3 -0
  7. data/.rspec +2 -0
  8. data/.rubocop.yml +508 -0
  9. data/Gemfile +4 -0
  10. data/README.adoc +147 -0
  11. data/Rakefile +11 -0
  12. data/bin/console +12 -0
  13. data/bin/rspec +29 -0
  14. data/bin/setup +8 -0
  15. data/demo.rb +18 -0
  16. data/docs/development.md +90 -0
  17. data/exe/expressir +20 -0
  18. data/exe/generate-parser +48 -0
  19. data/expressir.gemspec +43 -0
  20. data/lib/expressir.rb +21 -0
  21. data/lib/expressir/cli.rb +27 -0
  22. data/lib/expressir/cli/ui.rb +36 -0
  23. data/lib/expressir/config.rb +23 -0
  24. data/lib/expressir/express.rb +11 -0
  25. data/lib/expressir/express/aggregate_dimension.rb +38 -0
  26. data/lib/expressir/express/attribute.rb +15 -0
  27. data/lib/expressir/express/comment.rb +7 -0
  28. data/lib/expressir/express/defined_type.rb +36 -0
  29. data/lib/expressir/express/derived.rb +65 -0
  30. data/lib/expressir/express/derived_aggregate.rb +43 -0
  31. data/lib/expressir/express/entity.rb +137 -0
  32. data/lib/expressir/express/explicit.rb +70 -0
  33. data/lib/expressir/express/explicit_aggregate.rb +46 -0
  34. data/lib/expressir/express/explicit_or_derived.rb +16 -0
  35. data/lib/expressir/express/global_rule.rb +44 -0
  36. data/lib/expressir/express/interface_specification.rb +51 -0
  37. data/lib/expressir/express/interfaced_item.rb +38 -0
  38. data/lib/expressir/express/inverse.rb +46 -0
  39. data/lib/expressir/express/inverse_aggregate.rb +37 -0
  40. data/lib/expressir/express/model_element.rb +7 -0
  41. data/lib/expressir/express/named_type.rb +19 -0
  42. data/lib/expressir/express/remark.rb +8 -0
  43. data/lib/expressir/express/repository.rb +306 -0
  44. data/lib/expressir/express/schema_definition.rb +96 -0
  45. data/lib/expressir/express/subtype_constraint.rb +14 -0
  46. data/lib/expressir/express/type.rb +26 -0
  47. data/lib/expressir/express/type_aggregate.rb +42 -0
  48. data/lib/expressir/express/type_enum.rb +29 -0
  49. data/lib/expressir/express/type_parser.rb +45 -0
  50. data/lib/expressir/express/type_select.rb +82 -0
  51. data/lib/expressir/express/unique_rule.rb +35 -0
  52. data/lib/expressir/express/where_rule.rb +32 -0
  53. data/lib/expressir/express_exp/2.4/express_parser.so +0 -0
  54. data/lib/expressir/express_exp/2.5/express_parser.so +0 -0
  55. data/lib/expressir/express_exp/2.6/express_parser.so +0 -0
  56. data/lib/expressir/express_exp/2.7/express_parser.so +0 -0
  57. data/lib/expressir/express_exp/3.0/express_parser.so +0 -0
  58. data/lib/expressir/express_exp/formatter.rb +1450 -0
  59. data/lib/expressir/express_exp/parser.rb +41 -0
  60. data/lib/expressir/express_exp/visitor.rb +2464 -0
  61. data/lib/expressir/express_parser.rb +30 -0
  62. data/lib/expressir/model.rb +65 -0
  63. data/lib/expressir/model/attribute.rb +27 -0
  64. data/lib/expressir/model/constant.rb +17 -0
  65. data/lib/expressir/model/entity.rb +46 -0
  66. data/lib/expressir/model/enumeration_item.rb +11 -0
  67. data/lib/expressir/model/expressions/aggregate_initializer.rb +13 -0
  68. data/lib/expressir/model/expressions/aggregate_item.rb +15 -0
  69. data/lib/expressir/model/expressions/attribute_reference.rb +15 -0
  70. data/lib/expressir/model/expressions/binary_expression.rb +40 -0
  71. data/lib/expressir/model/expressions/call.rb +15 -0
  72. data/lib/expressir/model/expressions/entity_constructor.rb +15 -0
  73. data/lib/expressir/model/expressions/group_reference.rb +15 -0
  74. data/lib/expressir/model/expressions/index_reference.rb +17 -0
  75. data/lib/expressir/model/expressions/interval.rb +21 -0
  76. data/lib/expressir/model/expressions/query_expression.rb +26 -0
  77. data/lib/expressir/model/expressions/simple_reference.rb +13 -0
  78. data/lib/expressir/model/expressions/unary_expression.rb +19 -0
  79. data/lib/expressir/model/function.rb +62 -0
  80. data/lib/expressir/model/identifier.rb +10 -0
  81. data/lib/expressir/model/interface.rb +18 -0
  82. data/lib/expressir/model/literals/binary.rb +13 -0
  83. data/lib/expressir/model/literals/integer.rb +13 -0
  84. data/lib/expressir/model/literals/logical.rb +17 -0
  85. data/lib/expressir/model/literals/real.rb +13 -0
  86. data/lib/expressir/model/literals/string.rb +15 -0
  87. data/lib/expressir/model/parameter.rb +17 -0
  88. data/lib/expressir/model/procedure.rb +60 -0
  89. data/lib/expressir/model/renamed_ref.rb +13 -0
  90. data/lib/expressir/model/repository.rb +19 -0
  91. data/lib/expressir/model/rule.rb +62 -0
  92. data/lib/expressir/model/schema.rb +67 -0
  93. data/lib/expressir/model/scope.rb +17 -0
  94. data/lib/expressir/model/statements/alias.rb +26 -0
  95. data/lib/expressir/model/statements/assignment.rb +15 -0
  96. data/lib/expressir/model/statements/call.rb +15 -0
  97. data/lib/expressir/model/statements/case.rb +17 -0
  98. data/lib/expressir/model/statements/case_action.rb +15 -0
  99. data/lib/expressir/model/statements/compound.rb +13 -0
  100. data/lib/expressir/model/statements/escape.rb +8 -0
  101. data/lib/expressir/model/statements/if.rb +17 -0
  102. data/lib/expressir/model/statements/null.rb +8 -0
  103. data/lib/expressir/model/statements/repeat.rb +34 -0
  104. data/lib/expressir/model/statements/return.rb +13 -0
  105. data/lib/expressir/model/statements/skip.rb +8 -0
  106. data/lib/expressir/model/subtype_constraint.rb +27 -0
  107. data/lib/expressir/model/type.rb +24 -0
  108. data/lib/expressir/model/types/aggregate.rb +17 -0
  109. data/lib/expressir/model/types/array.rb +21 -0
  110. data/lib/expressir/model/types/bag.rb +17 -0
  111. data/lib/expressir/model/types/binary.rb +15 -0
  112. data/lib/expressir/model/types/boolean.rb +8 -0
  113. data/lib/expressir/model/types/enumeration.rb +19 -0
  114. data/lib/expressir/model/types/generic.rb +13 -0
  115. data/lib/expressir/model/types/generic_entity.rb +13 -0
  116. data/lib/expressir/model/types/integer.rb +8 -0
  117. data/lib/expressir/model/types/list.rb +19 -0
  118. data/lib/expressir/model/types/logical.rb +8 -0
  119. data/lib/expressir/model/types/number.rb +8 -0
  120. data/lib/expressir/model/types/real.rb +13 -0
  121. data/lib/expressir/model/types/select.rb +21 -0
  122. data/lib/expressir/model/types/set.rb +17 -0
  123. data/lib/expressir/model/types/string.rb +15 -0
  124. data/lib/expressir/model/unique.rb +15 -0
  125. data/lib/expressir/model/variable.rb +17 -0
  126. data/lib/expressir/model/where.rb +15 -0
  127. data/lib/expressir/parser.rb +6 -0
  128. data/lib/expressir/parser/owl_parser.rb +8 -0
  129. data/lib/expressir/version.rb +3 -0
  130. data/original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.exp +9589 -0
  131. data/original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.owl +36619 -0
  132. data/original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.xml +13294 -0
  133. data/original/examples/employment/eclipse/.project +17 -0
  134. data/original/examples/employment/eclipse/Export/Employment.png +0 -0
  135. data/original/examples/employment/eclipse/Express/employment_schema.exp +33 -0
  136. data/original/examples/employment/eclipse/Express/employment_schema.xmi +77 -0
  137. data/original/examples/employment/eclipse/Express/employment_schema.xml +93 -0
  138. data/original/examples/employment/eclipse/Models/Employment.uml +4 -0
  139. data/original/examples/employment/eclipse/Models/Employment.umldi +240 -0
  140. data/original/examples/employment/eclipse/readme.txt +7 -0
  141. data/original/examples/employment/employment_schema.exp +33 -0
  142. data/original/examples/employment/employment_schema.rb +232 -0
  143. data/original/examples/employment/employment_schema.xml +93 -0
  144. data/original/examples/employment/employment_schema___module.rb +46 -0
  145. data/original/examples/employment/employment_schema___p28attr.rb +126 -0
  146. data/original/examples/employment/employment_schema___p28inst.rb +26 -0
  147. data/original/examples/employment/example_employment_data.xml +1 -0
  148. data/original/examples/employment/example_employment_data_copy.xml +1 -0
  149. data/original/examples/employment/example_employment_reader.rb +30 -0
  150. data/original/examples/employment/example_employment_writer.rb +51 -0
  151. data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.exp +3710 -0
  152. data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.owl +35880 -0
  153. data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.xmi +15357 -0
  154. data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.xml +9468 -0
  155. data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.exp +8404 -0
  156. data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.owl +43147 -0
  157. data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.xmi +18341 -0
  158. data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.xml +11632 -0
  159. data/original/examples/syntax/remark.exp +146 -0
  160. data/original/examples/syntax/remark_formatted.exp +175 -0
  161. data/original/examples/syntax/syntax.exp +311 -0
  162. data/original/examples/syntax/syntax_formatted.exp +1191 -0
  163. data/original/exp2ruby.rb +525 -0
  164. data/original/expsm.rb +34 -0
  165. data/original/mapping_owl.rb +1018 -0
  166. data/original/mapping_sysml.rb +2281 -0
  167. data/original/mapping_uml2.rb +599 -0
  168. data/original/mapping_uml2_eclipse.rb +433 -0
  169. data/original/reeper.rb +134 -0
  170. data/rakelib/cross-ruby.rake +308 -0
  171. data/spec/acceptance/express_to_owl_spec.rb +18 -0
  172. data/spec/acceptance/version_spec.rb +12 -0
  173. data/spec/expressir/express/repository_spec.rb +25 -0
  174. data/spec/expressir/express_exp/ap233_spec.rb +22 -0
  175. data/spec/expressir/express_exp/format_remark_spec.rb +28 -0
  176. data/spec/expressir/express_exp/format_syntax_spec.rb +28 -0
  177. data/spec/expressir/express_exp/parse_remark_spec.rb +346 -0
  178. data/spec/expressir/express_exp/parse_syntax_spec.rb +3003 -0
  179. data/spec/expressir/model/find_spec.rb +110 -0
  180. data/spec/expressr_spec.rb +5 -0
  181. data/spec/spec_helper.rb +17 -0
  182. data/spec/support/console_helper.rb +29 -0
  183. metadata +357 -0
@@ -0,0 +1,1191 @@
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
84
+ test : BOOLEAN := TRUE;
85
+ END_ENTITY;
86
+
87
+ ENTITY derived_attribute_redeclared_entity;
88
+ DERIVE
89
+ SELF\attribute_entity.test : BOOLEAN := TRUE;
90
+ END_ENTITY;
91
+
92
+ ENTITY derived_attribute_redeclared_renamed_entity;
93
+ DERIVE
94
+ SELF\attribute_entity.test RENAMED test2 : BOOLEAN := TRUE;
95
+ END_ENTITY;
96
+
97
+ ENTITY inverse_attribute_entity;
98
+ INVERSE
99
+ test : attribute_entity FOR test;
100
+ END_ENTITY;
101
+
102
+ ENTITY inverse_attribute_entity_entity;
103
+ INVERSE
104
+ test : attribute_entity FOR attribute_entity.test;
105
+ END_ENTITY;
106
+
107
+ ENTITY inverse_attribute_set_entity;
108
+ INVERSE
109
+ test : SET OF attribute_entity FOR test;
110
+ END_ENTITY;
111
+
112
+ ENTITY inverse_attribute_set_bound_entity;
113
+ INVERSE
114
+ test : SET [1:9] OF attribute_entity FOR test;
115
+ END_ENTITY;
116
+
117
+ ENTITY inverse_attribute_bag_entity;
118
+ INVERSE
119
+ test : BAG OF attribute_entity FOR test;
120
+ END_ENTITY;
121
+
122
+ ENTITY inverse_attribute_bag_bound_entity;
123
+ INVERSE
124
+ test : BAG [1:9] OF attribute_entity FOR test;
125
+ END_ENTITY;
126
+
127
+ ENTITY inverse_attribute_redeclared_entity;
128
+ INVERSE
129
+ SELF\attribute_entity.test : attribute_entity FOR test;
130
+ END_ENTITY;
131
+
132
+ ENTITY inverse_attribute_redeclared_renamed_entity;
133
+ INVERSE
134
+ SELF\attribute_entity.test RENAMED test2 : attribute_entity FOR test;
135
+ END_ENTITY;
136
+
137
+ ENTITY unique_entity;
138
+ test : BOOLEAN;
139
+ UNIQUE
140
+ test;
141
+ END_ENTITY;
142
+
143
+ ENTITY unique_label_entity;
144
+ test : BOOLEAN;
145
+ UNIQUE
146
+ UR1 : test;
147
+ END_ENTITY;
148
+
149
+ ENTITY unique_qualified_entity;
150
+ UNIQUE
151
+ SELF\attribute_entity.test;
152
+ END_ENTITY;
153
+
154
+ ENTITY unique_label_qualified_entity;
155
+ UNIQUE
156
+ UR1 : SELF\attribute_entity.test;
157
+ END_ENTITY;
158
+
159
+ ENTITY where_entity;
160
+ WHERE
161
+ TRUE;
162
+ END_ENTITY;
163
+
164
+ ENTITY where_label_entity;
165
+ WHERE
166
+ WR1 : TRUE;
167
+ END_ENTITY;
168
+
169
+ SUBTYPE_CONSTRAINT empty_subtype_constraint FOR empty_entity;
170
+ END_SUBTYPE_CONSTRAINT;
171
+
172
+ SUBTYPE_CONSTRAINT abstract_supertype_subtype_constraint FOR empty_entity;
173
+ ABSTRACT SUPERTYPE;
174
+ END_SUBTYPE_CONSTRAINT;
175
+
176
+ SUBTYPE_CONSTRAINT total_over_subtype_constraint FOR empty_entity;
177
+ TOTAL_OVER(a);
178
+ END_SUBTYPE_CONSTRAINT;
179
+
180
+ SUBTYPE_CONSTRAINT supertype_expression_subtype_constraint FOR empty_entity;
181
+ a;
182
+ END_SUBTYPE_CONSTRAINT;
183
+
184
+ SUBTYPE_CONSTRAINT supertype_expression_andor_subtype_constraint FOR empty_entity;
185
+ a ANDOR b;
186
+ END_SUBTYPE_CONSTRAINT;
187
+
188
+ SUBTYPE_CONSTRAINT supertype_expression_and_subtype_constraint FOR empty_entity;
189
+ a AND b;
190
+ END_SUBTYPE_CONSTRAINT;
191
+
192
+ SUBTYPE_CONSTRAINT supertype_expression_andor_and_subtype_constraint FOR empty_entity;
193
+ a ANDOR b AND c;
194
+ END_SUBTYPE_CONSTRAINT;
195
+
196
+ SUBTYPE_CONSTRAINT supertype_expression_and_andor_subtype_constraint FOR empty_entity;
197
+ a AND b ANDOR c;
198
+ END_SUBTYPE_CONSTRAINT;
199
+
200
+ SUBTYPE_CONSTRAINT supertype_expression_parenthesis_andor_and_subtype_constraint FOR empty_entity;
201
+ (a ANDOR b) AND c;
202
+ END_SUBTYPE_CONSTRAINT;
203
+
204
+ SUBTYPE_CONSTRAINT supertype_expression_and_parenthesis_andor_subtype_constraint FOR empty_entity;
205
+ a AND (b ANDOR c);
206
+ END_SUBTYPE_CONSTRAINT;
207
+
208
+ SUBTYPE_CONSTRAINT supertype_expression_oneof_subtype_constraint FOR empty_entity;
209
+ ONEOF(a, b);
210
+ END_SUBTYPE_CONSTRAINT;
211
+
212
+ SUBTYPE_CONSTRAINT supertype_expression_and_oneof_subtype_constraint FOR empty_entity;
213
+ a AND ONEOF(b, c);
214
+ END_SUBTYPE_CONSTRAINT;
215
+
216
+ SUBTYPE_CONSTRAINT supertype_expression_andor_oneof_subtype_constraint FOR empty_entity;
217
+ a ANDOR ONEOF(b, c);
218
+ END_SUBTYPE_CONSTRAINT;
219
+
220
+ SUBTYPE_CONSTRAINT supertype_expression_oneof_and_subtype_constraint FOR empty_entity;
221
+ ONEOF(a, b) AND c;
222
+ END_SUBTYPE_CONSTRAINT;
223
+
224
+ SUBTYPE_CONSTRAINT supertype_expression_oneof_andor_subtype_constraint FOR empty_entity;
225
+ ONEOF(a, b) ANDOR c;
226
+ END_SUBTYPE_CONSTRAINT;
227
+
228
+ SUBTYPE_CONSTRAINT supertype_expression_oneof_and_oneof_subtype_constraint FOR empty_entity;
229
+ ONEOF(a, b) AND ONEOF(c, d);
230
+ END_SUBTYPE_CONSTRAINT;
231
+
232
+ SUBTYPE_CONSTRAINT supertype_expression_oneof_andor_oneof_subtype_constraint FOR empty_entity;
233
+ ONEOF(a, b) ANDOR ONEOF(c, d);
234
+ END_SUBTYPE_CONSTRAINT;
235
+
236
+ FUNCTION empty_function : BOOLEAN;
237
+ ;
238
+ END_FUNCTION;
239
+
240
+ FUNCTION parameter_function(test : BOOLEAN) : BOOLEAN;
241
+ ;
242
+ END_FUNCTION;
243
+
244
+ FUNCTION multiple_parameter_function(test : BOOLEAN; test2 : BOOLEAN) : BOOLEAN;
245
+ ;
246
+ END_FUNCTION;
247
+
248
+ FUNCTION multiple_shorthand_parameter_function(test : BOOLEAN; test2 : BOOLEAN) : BOOLEAN;
249
+ ;
250
+ END_FUNCTION;
251
+
252
+ FUNCTION type_function : BOOLEAN;
253
+ TYPE test = BOOLEAN;
254
+ END_TYPE;
255
+ ;
256
+ END_FUNCTION;
257
+
258
+ FUNCTION constant_function : BOOLEAN;
259
+ CONSTANT
260
+ test : BOOLEAN := TRUE;
261
+ END_CONSTANT;
262
+ ;
263
+ END_FUNCTION;
264
+
265
+ FUNCTION multiple_constant_function : BOOLEAN;
266
+ CONSTANT
267
+ test : BOOLEAN := TRUE;
268
+ test2 : BOOLEAN := TRUE;
269
+ END_CONSTANT;
270
+ ;
271
+ END_FUNCTION;
272
+
273
+ FUNCTION variable_function : BOOLEAN;
274
+ LOCAL
275
+ test : BOOLEAN;
276
+ END_LOCAL;
277
+ ;
278
+ END_FUNCTION;
279
+
280
+ FUNCTION multiple_variable_function : BOOLEAN;
281
+ LOCAL
282
+ test : BOOLEAN;
283
+ test2 : BOOLEAN;
284
+ END_LOCAL;
285
+ ;
286
+ END_FUNCTION;
287
+
288
+ FUNCTION multiple_shorthand_variable_function : BOOLEAN;
289
+ LOCAL
290
+ test : BOOLEAN;
291
+ test2 : BOOLEAN;
292
+ END_LOCAL;
293
+ ;
294
+ END_FUNCTION;
295
+
296
+ FUNCTION variable_expression_function : BOOLEAN;
297
+ LOCAL
298
+ test : BOOLEAN := TRUE;
299
+ END_LOCAL;
300
+ ;
301
+ END_FUNCTION;
302
+
303
+ FUNCTION multiple_variable_expression_function : BOOLEAN;
304
+ LOCAL
305
+ test : BOOLEAN := TRUE;
306
+ test2 : BOOLEAN := TRUE;
307
+ END_LOCAL;
308
+ ;
309
+ END_FUNCTION;
310
+
311
+ FUNCTION multiple_shorthand_variable_expression_function : BOOLEAN;
312
+ LOCAL
313
+ test : BOOLEAN := TRUE;
314
+ test2 : BOOLEAN := TRUE;
315
+ END_LOCAL;
316
+ ;
317
+ END_FUNCTION;
318
+
319
+ PROCEDURE empty_procedure;
320
+ END_PROCEDURE;
321
+
322
+ PROCEDURE parameter_procedure(test : BOOLEAN);
323
+ END_PROCEDURE;
324
+
325
+ PROCEDURE multiple_parameter_procedure(test : BOOLEAN; test2 : BOOLEAN);
326
+ END_PROCEDURE;
327
+
328
+ PROCEDURE multiple_shorthand_parameter_procedure(test : BOOLEAN; test2 : BOOLEAN);
329
+ END_PROCEDURE;
330
+
331
+ PROCEDURE variable_parameter_procedure(VAR test : BOOLEAN);
332
+ END_PROCEDURE;
333
+
334
+ PROCEDURE multiple_variable_parameter_procedure(VAR test : BOOLEAN; test2 : BOOLEAN);
335
+ END_PROCEDURE;
336
+
337
+ PROCEDURE multiple_variable_parameter2_procedure(test : BOOLEAN; VAR test2 : BOOLEAN);
338
+ END_PROCEDURE;
339
+
340
+ PROCEDURE multiple_shorthand_variable_parameter_procedure(VAR test : BOOLEAN; VAR test2 : BOOLEAN);
341
+ END_PROCEDURE;
342
+
343
+ PROCEDURE type_procedure;
344
+ TYPE test = BOOLEAN;
345
+ END_TYPE;
346
+ END_PROCEDURE;
347
+
348
+ PROCEDURE constant_procedure;
349
+ CONSTANT
350
+ test : BOOLEAN := TRUE;
351
+ END_CONSTANT;
352
+ END_PROCEDURE;
353
+
354
+ PROCEDURE multiple_constant_procedure;
355
+ CONSTANT
356
+ test : BOOLEAN := TRUE;
357
+ test2 : BOOLEAN := TRUE;
358
+ END_CONSTANT;
359
+ END_PROCEDURE;
360
+
361
+ PROCEDURE variable_procedure;
362
+ LOCAL
363
+ test : BOOLEAN;
364
+ END_LOCAL;
365
+ END_PROCEDURE;
366
+
367
+ PROCEDURE multiple_variable_procedure;
368
+ LOCAL
369
+ test : BOOLEAN;
370
+ test2 : BOOLEAN;
371
+ END_LOCAL;
372
+ END_PROCEDURE;
373
+
374
+ PROCEDURE multiple_shorthand_variable_procedure;
375
+ LOCAL
376
+ test : BOOLEAN;
377
+ test2 : BOOLEAN;
378
+ END_LOCAL;
379
+ END_PROCEDURE;
380
+
381
+ PROCEDURE variable_expression_procedure;
382
+ LOCAL
383
+ test : BOOLEAN := TRUE;
384
+ END_LOCAL;
385
+ END_PROCEDURE;
386
+
387
+ PROCEDURE multiple_variable_expression_procedure;
388
+ LOCAL
389
+ test : BOOLEAN := TRUE;
390
+ test2 : BOOLEAN := TRUE;
391
+ END_LOCAL;
392
+ END_PROCEDURE;
393
+
394
+ PROCEDURE multiple_shorthand_variable_expression_procedure;
395
+ LOCAL
396
+ test : BOOLEAN := TRUE;
397
+ test2 : BOOLEAN := TRUE;
398
+ END_LOCAL;
399
+ END_PROCEDURE;
400
+
401
+ PROCEDURE statement_procedure;
402
+ ;
403
+ END_PROCEDURE;
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
+
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;
1191
+ END_SCHEMA;