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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/release.yml +1 -7
  3. data/exe/format +20 -0
  4. data/expressir.gemspec +3 -2
  5. data/lib/expressir/express_exp/2.4/express_parser.so +0 -0
  6. data/lib/expressir/express_exp/2.5/express_parser.so +0 -0
  7. data/lib/expressir/express_exp/2.6/express_parser.so +0 -0
  8. data/lib/expressir/express_exp/2.7/express_parser.so +0 -0
  9. data/lib/expressir/express_exp/3.0/express_parser.so +0 -0
  10. data/lib/expressir/express_exp/formatter.rb +147 -110
  11. data/lib/expressir/express_exp/hyperlink_formatter.rb +25 -0
  12. data/lib/expressir/express_exp/parser.rb +14 -1
  13. data/lib/expressir/express_exp/schema_head_formatter.rb +14 -0
  14. data/lib/expressir/express_exp/visitor.rb +197 -111
  15. data/lib/expressir/model.rb +3 -1
  16. data/lib/expressir/model/attribute.rb +5 -1
  17. data/lib/expressir/model/constant.rb +5 -1
  18. data/lib/expressir/model/entity.rb +14 -20
  19. data/lib/expressir/model/enumeration_item.rb +5 -1
  20. data/lib/expressir/model/expressions/aggregate_initializer.rb +4 -2
  21. data/lib/expressir/model/expressions/aggregate_item.rb +3 -1
  22. data/lib/expressir/model/expressions/attribute_reference.rb +3 -1
  23. data/lib/expressir/model/expressions/binary_expression.rb +3 -1
  24. data/lib/expressir/model/expressions/call.rb +4 -2
  25. data/lib/expressir/model/expressions/entity_constructor.rb +4 -2
  26. data/lib/expressir/model/expressions/group_reference.rb +3 -1
  27. data/lib/expressir/model/expressions/index_reference.rb +3 -1
  28. data/lib/expressir/model/expressions/interval.rb +3 -1
  29. data/lib/expressir/model/expressions/query_expression.rb +5 -2
  30. data/lib/expressir/model/expressions/simple_reference.rb +3 -1
  31. data/lib/expressir/model/expressions/unary_expression.rb +3 -1
  32. data/lib/expressir/model/function.rb +28 -39
  33. data/lib/expressir/model/identifier.rb +1 -3
  34. data/lib/expressir/model/informal_proposition.rb +15 -0
  35. data/lib/expressir/model/interface.rb +4 -2
  36. data/lib/expressir/model/literals/binary.rb +3 -1
  37. data/lib/expressir/model/literals/integer.rb +3 -1
  38. data/lib/expressir/model/literals/logical.rb +3 -1
  39. data/lib/expressir/model/literals/real.rb +3 -1
  40. data/lib/expressir/model/literals/string.rb +3 -1
  41. data/lib/expressir/model/model_element.rb +140 -0
  42. data/lib/expressir/model/parameter.rb +5 -1
  43. data/lib/expressir/model/procedure.rb +29 -40
  44. data/lib/expressir/model/renamed_ref.rb +3 -1
  45. data/lib/expressir/model/repository.rb +5 -5
  46. data/lib/expressir/model/rule.rb +33 -41
  47. data/lib/expressir/model/schema.rb +44 -46
  48. data/lib/expressir/model/statements/alias.rb +6 -3
  49. data/lib/expressir/model/statements/assignment.rb +3 -1
  50. data/lib/expressir/model/statements/call.rb +4 -2
  51. data/lib/expressir/model/statements/case.rb +4 -2
  52. data/lib/expressir/model/statements/case_action.rb +4 -2
  53. data/lib/expressir/model/statements/compound.rb +4 -2
  54. data/lib/expressir/model/statements/escape.rb +1 -1
  55. data/lib/expressir/model/statements/if.rb +5 -3
  56. data/lib/expressir/model/statements/null.rb +1 -1
  57. data/lib/expressir/model/statements/repeat.rb +6 -3
  58. data/lib/expressir/model/statements/return.rb +3 -1
  59. data/lib/expressir/model/statements/skip.rb +1 -1
  60. data/lib/expressir/model/subtype_constraint.rb +5 -2
  61. data/lib/expressir/model/type.rb +11 -4
  62. data/lib/expressir/model/types/aggregate.rb +5 -1
  63. data/lib/expressir/model/types/array.rb +3 -1
  64. data/lib/expressir/model/types/bag.rb +3 -1
  65. data/lib/expressir/model/types/binary.rb +3 -1
  66. data/lib/expressir/model/types/boolean.rb +1 -1
  67. data/lib/expressir/model/types/enumeration.rb +5 -3
  68. data/lib/expressir/model/types/generic.rb +5 -1
  69. data/lib/expressir/model/types/generic_entity.rb +5 -1
  70. data/lib/expressir/model/types/integer.rb +1 -1
  71. data/lib/expressir/model/types/list.rb +3 -1
  72. data/lib/expressir/model/types/logical.rb +1 -1
  73. data/lib/expressir/model/types/number.rb +1 -1
  74. data/lib/expressir/model/types/real.rb +3 -1
  75. data/lib/expressir/model/types/select.rb +5 -3
  76. data/lib/expressir/model/types/set.rb +3 -1
  77. data/lib/expressir/model/types/string.rb +3 -1
  78. data/lib/expressir/model/unique.rb +6 -2
  79. data/lib/expressir/model/variable.rb +5 -1
  80. data/lib/expressir/model/where.rb +5 -1
  81. data/lib/expressir/version.rb +1 -1
  82. data/original/examples/syntax/hyperlink.exp +8 -0
  83. data/original/examples/syntax/hyperlink_formatted.exp +19 -0
  84. data/original/examples/syntax/remark.exp +63 -20
  85. data/original/examples/syntax/remark_formatted.exp +62 -24
  86. data/original/examples/syntax/simple.exp +3 -0
  87. data/original/examples/syntax/source.exp +16 -0
  88. data/original/examples/syntax/syntax.exp +201 -190
  89. data/original/examples/syntax/syntax_formatted.exp +370 -799
  90. data/spec/expressir/express_exp/{format_remark_spec.rb → formatter/remark_spec.rb} +2 -2
  91. data/spec/expressir/express_exp/{format_syntax_spec.rb → formatter/syntax_spec.rb} +2 -2
  92. data/spec/expressir/express_exp/hyperlink_formatter_spec.rb +24 -0
  93. data/spec/expressir/express_exp/parser/head_source_spec.rb +38 -0
  94. data/spec/expressir/express_exp/parser/multiple_spec.rb +32 -0
  95. data/spec/expressir/express_exp/{parse_remark_spec.rb → parser/remark_spec.rb} +120 -55
  96. data/spec/expressir/express_exp/{source_spec.rb → parser/source_spec.rb} +3 -6
  97. data/spec/expressir/express_exp/parser/syntax_spec.rb +3080 -0
  98. data/spec/expressir/express_exp/schema_head_formatter_spec.rb +36 -0
  99. data/spec/expressir/model/{find_spec.rb → model_element/find_spec.rb} +26 -8
  100. data/spec/expressir/model/model_element/hash_spec.rb +66 -0
  101. metadata +38 -13
  102. data/lib/expressir/model/scope.rb +0 -32
  103. data/spec/expressir/express_exp/ap233_spec.rb +0 -22
  104. data/spec/expressir/express_exp/find_spec.rb +0 -28
  105. data/spec/expressir/express_exp/parse_syntax_spec.rb +0 -3003
@@ -3,8 +3,9 @@ CONSTANT
3
3
  remark_constant : STRING := 'xxx';
4
4
  END_CONSTANT;
5
5
  TYPE remark_type = ENUMERATION OF (remark_enumeration_item);
6
+ WHERE
7
+ WR1 : TRUE;
6
8
  END_TYPE;
7
-
8
9
  ENTITY remark_entity;
9
10
  remark_attribute : STRING;
10
11
  DERIVE
@@ -14,12 +15,10 @@ ENTITY remark_entity;
14
15
  UNIQUE
15
16
  remark_unique : remark_attribute;
16
17
  WHERE
17
- remark_where : TRUE;
18
+ WR1 : TRUE;
18
19
  END_ENTITY;
19
-
20
20
  SUBTYPE_CONSTRAINT remark_subtype_constraint FOR remark_entity;
21
21
  END_SUBTYPE_CONSTRAINT;
22
-
23
22
  FUNCTION remark_function(remark_parameter : STRING) : BOOLEAN;
24
23
  TYPE remark_type = ENUMERATION OF (remark_enumeration_item);
25
24
  END_TYPE;
@@ -41,7 +40,6 @@ FUNCTION remark_function(remark_parameter : STRING) : BOOLEAN;
41
40
  --"remark_query" function query scope - function query
42
41
  );
43
42
  END_FUNCTION;
44
-
45
43
  PROCEDURE remark_procedure(remark_parameter : STRING);
46
44
  TYPE remark_type = ENUMERATION OF (remark_enumeration_item);
47
45
  END_TYPE;
@@ -63,7 +61,6 @@ PROCEDURE remark_procedure(remark_parameter : STRING);
63
61
  --"remark_query" procedure query scope - procedure query
64
62
  );
65
63
  END_PROCEDURE;
66
-
67
64
  RULE remark_rule FOR (remark_entity);
68
65
  TYPE remark_type = ENUMERATION OF (remark_enumeration_item);
69
66
  END_TYPE;
@@ -85,7 +82,7 @@ RULE remark_rule FOR (remark_entity);
85
82
  --"remark_query" rule query scope - rule query
86
83
  );
87
84
  WHERE
88
- remark_where : TRUE;
85
+ WR1 : TRUE;
89
86
  END_RULE;
90
87
  END_SCHEMA;
91
88
  (*"remark_schema"
@@ -101,8 +98,22 @@ several physical lines.
101
98
  --"remark_schema.remark_constant" universal scope - constant
102
99
  --"remark_schema.remark_type" schema scope - type
103
100
  --"remark_schema.remark_type" universal scope - type
104
- --"remark_schema.remark_enumeration_item" schema scope - enumeration item
105
- --"remark_schema.remark_enumeration_item" universal scope - enumeration item
101
+ --"remark_schema.remark_type.remark_enumeration_item" schema scope - enumeration item
102
+ --"remark_schema.remark_type.remark_enumeration_item" schema scope - enumeration item, on the same level as the type
103
+ --"remark_schema.remark_type.remark_enumeration_item" universal scope - enumeration item
104
+ --"remark_schema.remark_type.remark_enumeration_item" universal scope - enumeration item, on the same level as the type
105
+ --"remark_schema.remark_type.WR1" type scope - type where
106
+ --"remark_schema.remark_type.WR1" type scope - type where, with prefix
107
+ --"remark_schema.remark_type.WR1" schema scope - type where
108
+ --"remark_schema.remark_type.WR1" schema scope - type where, with prefix
109
+ --"remark_schema.remark_type.WR1" universal scope - type where
110
+ --"remark_schema.remark_type.WR1" universal scope - type where, with prefix
111
+ --"remark_schema.remark_type.IP1" type scope - type informal proposition
112
+ --"remark_schema.remark_type.IP1" type scope - type informal proposition, with prefix
113
+ --"remark_schema.remark_type.IP1" schema scope - type informal proposition
114
+ --"remark_schema.remark_type.IP1" schema scope - type informal proposition, with prefix
115
+ --"remark_schema.remark_type.IP1" universal scope - type informal proposition
116
+ --"remark_schema.remark_type.IP1" universal scope - type informal proposition, with prefix
106
117
  --"remark_schema.remark_entity" schema scope - entity
107
118
  --"remark_schema.remark_entity" universal scope - entity
108
119
  --"remark_schema.remark_entity.remark_attribute" entity scope - entity attribute
@@ -117,9 +128,18 @@ several physical lines.
117
128
  --"remark_schema.remark_entity.remark_unique" entity scope - entity unique
118
129
  --"remark_schema.remark_entity.remark_unique" schema scope - entity unique
119
130
  --"remark_schema.remark_entity.remark_unique" universal scope - entity unique
120
- --"remark_schema.remark_entity.remark_where" entity scope - entity where
121
- --"remark_schema.remark_entity.remark_where" schema scope - entity where
122
- --"remark_schema.remark_entity.remark_where" universal scope - entity where
131
+ --"remark_schema.remark_entity.WR1" entity scope - entity where
132
+ --"remark_schema.remark_entity.WR1" entity scope - entity where, with prefix
133
+ --"remark_schema.remark_entity.WR1" schema scope - entity where
134
+ --"remark_schema.remark_entity.WR1" schema scope - entity where, with prefix
135
+ --"remark_schema.remark_entity.WR1" universal scope - entity where
136
+ --"remark_schema.remark_entity.WR1" universal scope - entity where, with prefix
137
+ --"remark_schema.remark_entity.IP1" entity scope - entity informal proposition
138
+ --"remark_schema.remark_entity.IP1" entity scope - entity informal proposition, with prefix
139
+ --"remark_schema.remark_entity.IP1" schema scope - entity informal proposition
140
+ --"remark_schema.remark_entity.IP1" schema scope - entity informal proposition, with prefix
141
+ --"remark_schema.remark_entity.IP1" universal scope - entity informal proposition
142
+ --"remark_schema.remark_entity.IP1" universal scope - entity informal proposition, with prefix
123
143
  --"remark_schema.remark_subtype_constraint" schema scope - subtype constraint
124
144
  --"remark_schema.remark_subtype_constraint" universal scope - subtype constraint
125
145
  --"remark_schema.remark_function" schema scope - function
@@ -130,9 +150,12 @@ several physical lines.
130
150
  --"remark_schema.remark_function.remark_type" function scope - function type
131
151
  --"remark_schema.remark_function.remark_type" schema scope - function type
132
152
  --"remark_schema.remark_function.remark_type" universal scope - function type
133
- --"remark_schema.remark_function.remark_enumeration_item" function scope - function enumeration item
134
- --"remark_schema.remark_function.remark_enumeration_item" schema scope - function enumeration item
135
- --"remark_schema.remark_function.remark_enumeration_item" universal scope - function enumeration item
153
+ --"remark_schema.remark_function.remark_type.remark_enumeration_item" function scope - function enumeration item
154
+ --"remark_schema.remark_function.remark_type.remark_enumeration_item" function scope - function enumeration item, on the same level as the type
155
+ --"remark_schema.remark_function.remark_type.remark_enumeration_item" schema scope - function enumeration item
156
+ --"remark_schema.remark_function.remark_type.remark_enumeration_item" schema scope - function enumeration item, on the same level as the type
157
+ --"remark_schema.remark_function.remark_type.remark_enumeration_item" universal scope - function enumeration item
158
+ --"remark_schema.remark_function.remark_type.remark_enumeration_item" universal scope - function enumeration item, on the same level as the type
136
159
  --"remark_schema.remark_function.remark_constant" function scope - function constant
137
160
  --"remark_schema.remark_function.remark_constant" schema scope - function constant
138
161
  --"remark_schema.remark_function.remark_constant" universal scope - function constant
@@ -147,9 +170,12 @@ several physical lines.
147
170
  --"remark_schema.remark_procedure.remark_type" procedure scope - procedure type
148
171
  --"remark_schema.remark_procedure.remark_type" schema scope - procedure type
149
172
  --"remark_schema.remark_procedure.remark_type" universal scope - procedure type
150
- --"remark_schema.remark_procedure.remark_enumeration_item" procedure scope - procedure enumeration item
151
- --"remark_schema.remark_procedure.remark_enumeration_item" schema scope - procedure enumeration item
152
- --"remark_schema.remark_procedure.remark_enumeration_item" universal scope - procedure enumeration item
173
+ --"remark_schema.remark_procedure.remark_type.remark_enumeration_item" procedure scope - procedure enumeration item
174
+ --"remark_schema.remark_procedure.remark_type.remark_enumeration_item" procedure scope - procedure enumeration item, on the same level as the type
175
+ --"remark_schema.remark_procedure.remark_type.remark_enumeration_item" schema scope - procedure enumeration item
176
+ --"remark_schema.remark_procedure.remark_type.remark_enumeration_item" schema scope - procedure enumeration item, on the same level as the type
177
+ --"remark_schema.remark_procedure.remark_type.remark_enumeration_item" universal scope - procedure enumeration item
178
+ --"remark_schema.remark_procedure.remark_type.remark_enumeration_item" universal scope - procedure enumeration item, on the same level as the type
153
179
  --"remark_schema.remark_procedure.remark_constant" procedure scope - procedure constant
154
180
  --"remark_schema.remark_procedure.remark_constant" schema scope - procedure constant
155
181
  --"remark_schema.remark_procedure.remark_constant" universal scope - procedure constant
@@ -161,15 +187,27 @@ several physical lines.
161
187
  --"remark_schema.remark_rule.remark_type" rule scope - rule type
162
188
  --"remark_schema.remark_rule.remark_type" schema scope - rule type
163
189
  --"remark_schema.remark_rule.remark_type" universal scope - rule type
164
- --"remark_schema.remark_rule.remark_enumeration_item" rule scope - rule enumeration item
165
- --"remark_schema.remark_rule.remark_enumeration_item" schema scope - rule enumeration item
166
- --"remark_schema.remark_rule.remark_enumeration_item" universal scope - rule enumeration item
190
+ --"remark_schema.remark_rule.remark_type.remark_enumeration_item" rule scope - rule enumeration item
191
+ --"remark_schema.remark_rule.remark_type.remark_enumeration_item" rule scope - rule enumeration item, on the same level as the type
192
+ --"remark_schema.remark_rule.remark_type.remark_enumeration_item" schema scope - rule enumeration item
193
+ --"remark_schema.remark_rule.remark_type.remark_enumeration_item" schema scope - rule enumeration item, on the same level as the type
194
+ --"remark_schema.remark_rule.remark_type.remark_enumeration_item" universal scope - rule enumeration item
195
+ --"remark_schema.remark_rule.remark_type.remark_enumeration_item" universal scope - rule enumeration item, on the same level as the type
167
196
  --"remark_schema.remark_rule.remark_constant" rule scope - rule constant
168
197
  --"remark_schema.remark_rule.remark_constant" schema scope - rule constant
169
198
  --"remark_schema.remark_rule.remark_constant" universal scope - rule constant
170
199
  --"remark_schema.remark_rule.remark_variable" rule scope - rule variable
171
200
  --"remark_schema.remark_rule.remark_variable" schema scope - rule variable
172
201
  --"remark_schema.remark_rule.remark_variable" universal scope - rule variable
173
- --"remark_schema.remark_rule.remark_where" rule scope - rule where
174
- --"remark_schema.remark_rule.remark_where" schema scope - rule where
175
- --"remark_schema.remark_rule.remark_where" universal scope - rule where
202
+ --"remark_schema.remark_rule.WR1" rule scope - rule where
203
+ --"remark_schema.remark_rule.WR1" rule scope - rule where, with prefix
204
+ --"remark_schema.remark_rule.WR1" schema scope - rule where
205
+ --"remark_schema.remark_rule.WR1" schema scope - rule where, with prefix
206
+ --"remark_schema.remark_rule.WR1" universal scope - rule where
207
+ --"remark_schema.remark_rule.WR1" universal scope - rule where, with prefix
208
+ --"remark_schema.remark_rule.IP1" rule scope - rule informal proposition
209
+ --"remark_schema.remark_rule.IP1" rule scope - rule informal proposition, with prefix
210
+ --"remark_schema.remark_rule.IP1" schema scope - rule informal proposition
211
+ --"remark_schema.remark_rule.IP1" schema scope - rule informal proposition, with prefix
212
+ --"remark_schema.remark_rule.IP1" universal scope - rule informal proposition
213
+ --"remark_schema.remark_rule.IP1" universal scope - rule informal proposition, with prefix
@@ -0,0 +1,3 @@
1
+ SCHEMA simple_schema;
2
+ ENTITY empty_entity; END_ENTITY;
3
+ END_SCHEMA;
@@ -0,0 +1,16 @@
1
+ SCHEMA entity_schema;
2
+ -- body
3
+ ENTITY empty_entity; END_ENTITY;
4
+ END_SCHEMA;
5
+
6
+ SCHEMA version_entity_schema 'version';
7
+ -- body
8
+ ENTITY empty_entity; END_ENTITY;
9
+ END_SCHEMA;
10
+
11
+ SCHEMA version_interface_entity_schema 'version';
12
+ USE FROM contract_schema;
13
+ REFERENCE FROM contract_schema;
14
+ -- body
15
+ ENTITY empty_entity; END_ENTITY;
16
+ END_SCHEMA;
@@ -4,9 +4,11 @@ SCHEMA syntax_schema 'version';
4
4
  -- interfaces
5
5
  USE FROM contract_schema;
6
6
  USE FROM contract_schema (contract);
7
+ USE FROM contract_schema (contract, contract2);
7
8
  USE FROM contract_schema (contract AS contract2);
8
9
  REFERENCE FROM contract_schema;
9
10
  REFERENCE FROM contract_schema (contract);
11
+ REFERENCE FROM contract_schema (contract, contract2);
10
12
  REFERENCE FROM contract_schema (contract AS contract2);
11
13
 
12
14
  -- constants
@@ -15,7 +17,7 @@ CONSTANT empty_constant : BOOLEAN := TRUE; END_CONSTANT;
15
17
  -- types
16
18
  TYPE empty_type = BOOLEAN; END_TYPE;
17
19
  TYPE where_type = BOOLEAN; WHERE TRUE; END_TYPE;
18
- TYPE where_label_type = BOOLEAN; WHERE WR1 : TRUE; END_TYPE;
20
+ TYPE where_label_type = BOOLEAN; WHERE WR1 : TRUE; END_TYPE;
19
21
 
20
22
  -- entities
21
23
  ENTITY empty_entity; END_ENTITY;
@@ -29,23 +31,23 @@ ENTITY attribute_entity; test : BOOLEAN; END_ENTITY;
29
31
  ENTITY attribute_optional_entity; test : OPTIONAL BOOLEAN; END_ENTITY;
30
32
  ENTITY attribute_multiple_entity; test : BOOLEAN; test2 : BOOLEAN; END_ENTITY;
31
33
  ENTITY attribute_multiple_shorthand_entity; test, test2 : BOOLEAN; END_ENTITY;
32
- ENTITY attribute_redeclared_entity; SELF\attribute_entity.test : BOOLEAN; END_ENTITY;
33
- ENTITY attribute_redeclared_renamed_entity; SELF\attribute_entity.test RENAMED test2 : BOOLEAN; END_ENTITY;
34
+ ENTITY attribute_redeclared_entity SUBTYPE OF (attribute_entity); SELF\attribute_entity.test : BOOLEAN; END_ENTITY;
35
+ ENTITY attribute_redeclared_renamed_entity SUBTYPE OF (attribute_entity); SELF\attribute_entity.test RENAMED test2 : BOOLEAN; END_ENTITY;
34
36
  ENTITY derived_attribute_entity; DERIVE test : BOOLEAN := TRUE; END_ENTITY;
35
- ENTITY derived_attribute_redeclared_entity; DERIVE SELF\attribute_entity.test : BOOLEAN := TRUE; END_ENTITY;
36
- ENTITY derived_attribute_redeclared_renamed_entity; DERIVE SELF\attribute_entity.test RENAMED test2 : BOOLEAN := TRUE; END_ENTITY;
37
+ ENTITY derived_attribute_redeclared_entity SUBTYPE OF (attribute_entity); DERIVE SELF\attribute_entity.test : BOOLEAN := TRUE; END_ENTITY;
38
+ ENTITY derived_attribute_redeclared_renamed_entity SUBTYPE OF (attribute_entity); DERIVE SELF\attribute_entity.test RENAMED test2 : BOOLEAN := TRUE; END_ENTITY;
37
39
  ENTITY inverse_attribute_entity; INVERSE test : attribute_entity FOR test; END_ENTITY;
38
40
  ENTITY inverse_attribute_entity_entity; INVERSE test : attribute_entity FOR attribute_entity.test; END_ENTITY;
39
41
  ENTITY inverse_attribute_set_entity; INVERSE test : SET OF attribute_entity FOR test; END_ENTITY;
40
42
  ENTITY inverse_attribute_set_bound_entity; INVERSE test : SET [1:9] OF attribute_entity FOR test; END_ENTITY;
41
43
  ENTITY inverse_attribute_bag_entity; INVERSE test : BAG OF attribute_entity FOR test; END_ENTITY;
42
44
  ENTITY inverse_attribute_bag_bound_entity; INVERSE test : BAG [1:9] OF attribute_entity FOR test; END_ENTITY;
43
- ENTITY inverse_attribute_redeclared_entity; INVERSE SELF\attribute_entity.test : attribute_entity FOR test; END_ENTITY;
44
- ENTITY inverse_attribute_redeclared_renamed_entity; INVERSE SELF\attribute_entity.test RENAMED test2 : attribute_entity FOR test; END_ENTITY;
45
+ ENTITY inverse_attribute_redeclared_entity SUBTYPE OF (attribute_entity); INVERSE SELF\attribute_entity.test : attribute_entity FOR test; END_ENTITY;
46
+ ENTITY inverse_attribute_redeclared_renamed_entity SUBTYPE OF (attribute_entity); INVERSE SELF\attribute_entity.test RENAMED test2 : attribute_entity FOR test; END_ENTITY;
45
47
  ENTITY unique_entity; test : BOOLEAN; UNIQUE test; END_ENTITY;
46
48
  ENTITY unique_label_entity; test : BOOLEAN; UNIQUE UR1 : test; END_ENTITY;
47
- ENTITY unique_qualified_entity; UNIQUE SELF\attribute_entity.test; END_ENTITY;
48
- ENTITY unique_label_qualified_entity; UNIQUE UR1 : SELF\attribute_entity.test; END_ENTITY;
49
+ ENTITY unique_redeclared_entity SUBTYPE OF (attribute_entity); UNIQUE SELF\attribute_entity.test; END_ENTITY;
50
+ ENTITY unique_label_redeclared_entity SUBTYPE OF (attribute_entity); UNIQUE UR1 : SELF\attribute_entity.test; END_ENTITY;
49
51
  ENTITY where_entity; WHERE TRUE; END_ENTITY;
50
52
  ENTITY where_label_entity; WHERE WR1 : TRUE; END_ENTITY;
51
53
 
@@ -115,198 +117,207 @@ RULE variable_expression_rule FOR (empty_entity); LOCAL test : BOOLEAN := TRUE;
115
117
  RULE multiple_variable_expression_rule FOR (empty_entity); LOCAL test : BOOLEAN := TRUE; test2 : BOOLEAN := TRUE; END_LOCAL; WHERE TRUE; END_RULE;
116
118
  RULE multiple_shorthand_variable_expression_rule FOR (empty_entity); LOCAL test, test2 : BOOLEAN := TRUE; END_LOCAL; WHERE TRUE; END_RULE;
117
119
  RULE statement_rule FOR (empty_entity); ; WHERE TRUE; END_RULE;
120
+ RULE where_label_rule FOR (empty_entity); WHERE WR1 : TRUE; END_RULE;
118
121
 
119
- -- simple types
120
- TYPE binary_type = BINARY; END_TYPE;
121
- TYPE binary_width_type = BINARY (3); END_TYPE;
122
- TYPE binary_width_fixed_type = BINARY (3) FIXED; END_TYPE;
123
- TYPE boolean_type = BOOLEAN; END_TYPE;
124
- TYPE integer_type = INTEGER; END_TYPE;
125
- TYPE logical_type = LOGICAL; END_TYPE;
126
- TYPE number_type = NUMBER; END_TYPE;
127
- TYPE real_type = REAL; END_TYPE;
128
- TYPE real_precision_type = REAL (3); END_TYPE;
129
- TYPE string_type = STRING; END_TYPE;
130
- TYPE string_width_type = STRING (3); END_TYPE;
131
- TYPE string_width_fixed_type = STRING (3) FIXED; END_TYPE;
122
+ PROCEDURE statements;
123
+ -- statements
124
+ PROCEDURE alias_simple_reference_statement; ALIAS test FOR test; ; END_ALIAS; END_PROCEDURE;
125
+ PROCEDURE alias_group_reference_statement; ALIAS test FOR test\test2; ; END_ALIAS; END_PROCEDURE;
126
+ PROCEDURE alias_index_reference_statement; ALIAS test FOR test[1]; ; END_ALIAS; END_PROCEDURE;
127
+ PROCEDURE alias_index2_reference_statement; ALIAS test FOR test[1:9]; ; END_ALIAS; END_PROCEDURE;
128
+ PROCEDURE alias_attribute_reference_statement; ALIAS test FOR test.test2; ; END_ALIAS; END_PROCEDURE;
129
+ PROCEDURE assignment_simple_reference_statement; test := TRUE; END_PROCEDURE;
130
+ PROCEDURE assignment_group_reference_statement; test\test2 := TRUE; END_PROCEDURE;
131
+ PROCEDURE assignment_index_reference_statement; test[1] := TRUE; END_PROCEDURE;
132
+ PROCEDURE assignment_index2_reference_statement; test[1:9] := TRUE; END_PROCEDURE;
133
+ PROCEDURE assignment_attribute_reference_statement; test.test2 := TRUE; END_PROCEDURE;
134
+ PROCEDURE case_statement; CASE test OF TRUE : ; END_CASE; END_PROCEDURE;
135
+ PROCEDURE case_multiple_statement; CASE test OF TRUE : ; TRUE : ; END_CASE; END_PROCEDURE;
136
+ PROCEDURE case_multiple_shorthand_statement; CASE test OF TRUE, TRUE : ; END_CASE; END_PROCEDURE;
137
+ PROCEDURE case_otherwise_statement; CASE test OF TRUE : ; OTHERWISE : ; END_CASE; END_PROCEDURE;
138
+ PROCEDURE compound_statement; BEGIN ; END; END_PROCEDURE;
139
+ PROCEDURE escape_statement; ESCAPE; END_PROCEDURE;
140
+ PROCEDURE if_statement; IF TRUE THEN ; END_IF; END_PROCEDURE;
141
+ PROCEDURE if2_statement; IF TRUE THEN ; ; END_IF; END_PROCEDURE;
142
+ PROCEDURE if_else_statement; IF TRUE THEN ; ELSE ; END_IF; END_PROCEDURE;
143
+ PROCEDURE if2_else_statement; IF TRUE THEN ; ; ELSE ; END_IF; END_PROCEDURE;
144
+ PROCEDURE if_else2_statement; IF TRUE THEN ; ELSE ; ; END_IF; END_PROCEDURE;
145
+ PROCEDURE if2_else2_statement; IF TRUE THEN ; ; ELSE ; ; END_IF; END_PROCEDURE;
146
+ PROCEDURE null_statement; ; END_PROCEDURE;
147
+ PROCEDURE call_statement; empty_procedure; END_PROCEDURE;
148
+ PROCEDURE call_parameter_statement; empty_procedure(TRUE); END_PROCEDURE;
149
+ PROCEDURE call_parameter2_statement; empty_procedure(TRUE, TRUE); END_PROCEDURE;
150
+ PROCEDURE call_insert_statement; INSERT(TRUE); END_PROCEDURE;
151
+ PROCEDURE call_remove_statement; REMOVE(TRUE); END_PROCEDURE;
152
+ PROCEDURE repeat_statement; REPEAT; ; END_REPEAT; END_PROCEDURE;
153
+ PROCEDURE repeat_variable_statement; REPEAT test := 1 TO 9; ; END_REPEAT; END_PROCEDURE;
154
+ PROCEDURE repeat_variable_increment_statement; REPEAT test := 1 TO 9 BY 2; ; END_REPEAT; END_PROCEDURE;
155
+ PROCEDURE repeat_while_statement; REPEAT WHILE TRUE; ; END_REPEAT; END_PROCEDURE;
156
+ PROCEDURE repeat_until_statement; REPEAT UNTIL TRUE; ; END_REPEAT; END_PROCEDURE;
157
+ PROCEDURE return_statement; RETURN; END_PROCEDURE;
158
+ PROCEDURE return_expression_statement; RETURN (TRUE); END_PROCEDURE;
159
+ PROCEDURE skip_statement; SKIP; END_PROCEDURE;
160
+ END_PROCEDURE;
132
161
 
133
- -- aggregation types
134
- TYPE array_type = ARRAY [1:9] OF STRING; END_TYPE;
135
- TYPE array_optional_type = ARRAY [1:9] OF OPTIONAL STRING; END_TYPE;
136
- TYPE array_unique_type = ARRAY [1:9] OF UNIQUE STRING; END_TYPE;
137
- TYPE array_optional_unique_type = ARRAY [1:9] OF OPTIONAL UNIQUE STRING; END_TYPE;
138
- TYPE bag_type = BAG OF STRING; END_TYPE;
139
- TYPE bag_bound_type = BAG [1:9] OF STRING; END_TYPE;
140
- TYPE list_type = LIST OF STRING; END_TYPE;
141
- TYPE list_bound_type = LIST [1:9] OF STRING; END_TYPE;
142
- TYPE list_unique_type = LIST OF UNIQUE STRING; END_TYPE;
143
- TYPE list_bound_unique_type = LIST [1:9] OF UNIQUE STRING; END_TYPE;
144
- TYPE set_type = SET OF STRING; END_TYPE;
145
- TYPE set_bound_type = SET [1:9] OF STRING; END_TYPE;
162
+ PROCEDURE types;
163
+ -- simple types
164
+ TYPE binary_type = BINARY; END_TYPE;
165
+ TYPE binary_width_type = BINARY (3); END_TYPE;
166
+ TYPE binary_width_fixed_type = BINARY (3) FIXED; END_TYPE;
167
+ TYPE boolean_type = BOOLEAN; END_TYPE;
168
+ TYPE integer_type = INTEGER; END_TYPE;
169
+ TYPE logical_type = LOGICAL; END_TYPE;
170
+ TYPE number_type = NUMBER; END_TYPE;
171
+ TYPE real_type = REAL; END_TYPE;
172
+ TYPE real_precision_type = REAL (3); END_TYPE;
173
+ TYPE string_type = STRING; END_TYPE;
174
+ TYPE string_width_type = STRING (3); END_TYPE;
175
+ TYPE string_width_fixed_type = STRING (3) FIXED; END_TYPE;
146
176
 
147
- -- constructed types
148
- TYPE select_type = SELECT; END_TYPE;
149
- TYPE select_extensible_type = EXTENSIBLE SELECT; END_TYPE;
150
- TYPE select_extensible_generic_entity_type = EXTENSIBLE GENERIC_ENTITY SELECT; END_TYPE;
151
- TYPE select_list_type = SELECT (empty_type); END_TYPE;
152
- TYPE select_extension_type_ref_type = SELECT BASED_ON select_type; END_TYPE;
153
- TYPE select_extension_type_ref_list_type = SELECT BASED_ON select_type WITH (empty_type); END_TYPE;
154
- TYPE enumeration_type = ENUMERATION; END_TYPE;
155
- TYPE enumeration_extensible_type = EXTENSIBLE ENUMERATION; END_TYPE;
156
- TYPE enumeration_list_type = ENUMERATION OF (test); END_TYPE;
157
- TYPE enumeration_extension_type_ref_type = ENUMERATION BASED_ON enumeration_type; END_TYPE;
158
- TYPE enumeration_extension_type_ref_list_type = ENUMERATION BASED_ON enumeration_type WITH (test); END_TYPE;
177
+ -- aggregation types
178
+ TYPE array_type = ARRAY [1:9] OF STRING; END_TYPE;
179
+ TYPE array_optional_type = ARRAY [1:9] OF OPTIONAL STRING; END_TYPE;
180
+ TYPE array_unique_type = ARRAY [1:9] OF UNIQUE STRING; END_TYPE;
181
+ TYPE array_optional_unique_type = ARRAY [1:9] OF OPTIONAL UNIQUE STRING; END_TYPE;
182
+ TYPE bag_type = BAG OF STRING; END_TYPE;
183
+ TYPE bag_bound_type = BAG [1:9] OF STRING; END_TYPE;
184
+ TYPE list_type = LIST OF STRING; END_TYPE;
185
+ TYPE list_bound_type = LIST [1:9] OF STRING; END_TYPE;
186
+ TYPE list_unique_type = LIST OF UNIQUE STRING; END_TYPE;
187
+ TYPE list_bound_unique_type = LIST [1:9] OF UNIQUE STRING; END_TYPE;
188
+ TYPE set_type = SET OF STRING; END_TYPE;
189
+ TYPE set_bound_type = SET [1:9] OF STRING; END_TYPE;
159
190
 
160
- -- statements
161
- FUNCTION alias_simple_reference_statement : BOOLEAN; ALIAS test FOR test; ; END_ALIAS; END_FUNCTION;
162
- FUNCTION alias_attribute_reference_statement : BOOLEAN; ALIAS test FOR test.test; ; END_ALIAS; END_FUNCTION;
163
- FUNCTION alias_group_reference_statement : BOOLEAN; ALIAS test FOR test\test; ; END_ALIAS; END_FUNCTION;
164
- FUNCTION alias_index_reference_statement : BOOLEAN; ALIAS test FOR test[1]; ; END_ALIAS; END_FUNCTION;
165
- FUNCTION alias_index2_reference_statement : BOOLEAN; ALIAS test FOR test[1:9]; ; END_ALIAS; END_FUNCTION;
166
- FUNCTION assignment_simple_reference_statement : BOOLEAN; test := TRUE; END_FUNCTION;
167
- FUNCTION assignment_attribute_reference_statement : BOOLEAN; test.test := TRUE; END_FUNCTION;
168
- FUNCTION assignment_group_reference_statement : BOOLEAN; test\test := TRUE; END_FUNCTION;
169
- FUNCTION assignment_index_reference_statement : BOOLEAN; test[1] := TRUE; END_FUNCTION;
170
- FUNCTION assignment_index2_reference_statement : BOOLEAN; test[1:9] := TRUE; END_FUNCTION;
171
- FUNCTION case_statement : BOOLEAN; CASE test OF TRUE : ; END_CASE; END_FUNCTION;
172
- FUNCTION case_multiple_statement : BOOLEAN; CASE test OF TRUE : ; TRUE : ; END_CASE; END_FUNCTION;
173
- FUNCTION case_multiple_shorthand_statement : BOOLEAN; CASE test OF TRUE, TRUE : ; END_CASE; END_FUNCTION;
174
- FUNCTION case_otherwise_statement : BOOLEAN; CASE test OF TRUE : ; OTHERWISE : ; END_CASE; END_FUNCTION;
175
- FUNCTION compound_statement : BOOLEAN; BEGIN ; END; END_FUNCTION;
176
- FUNCTION escape_statement : BOOLEAN; ESCAPE; END_FUNCTION;
177
- FUNCTION if_statement : BOOLEAN; IF TRUE THEN ; END_IF; END_FUNCTION;
178
- FUNCTION if2_statement : BOOLEAN; IF TRUE THEN ; ; END_IF; END_FUNCTION;
179
- FUNCTION if_else_statement : BOOLEAN; IF TRUE THEN ; ELSE ; END_IF; END_FUNCTION;
180
- FUNCTION if2_else_statement : BOOLEAN; IF TRUE THEN ; ; ELSE ; END_IF; END_FUNCTION;
181
- FUNCTION if_else2_statement : BOOLEAN; IF TRUE THEN ; ELSE ; ; END_IF; END_FUNCTION;
182
- FUNCTION if2_else2_statement : BOOLEAN; IF TRUE THEN ; ; ELSE ; ; END_IF; END_FUNCTION;
183
- FUNCTION null_statement : BOOLEAN; ; END_FUNCTION;
184
- FUNCTION call_statement : BOOLEAN; empty_procedure; END_FUNCTION;
185
- FUNCTION call_parameter_statement : BOOLEAN; empty_procedure(TRUE); END_FUNCTION;
186
- FUNCTION call_parameter2_statement : BOOLEAN; empty_procedure(TRUE, TRUE); END_FUNCTION;
187
- FUNCTION call_insert_statement : BOOLEAN; INSERT(TRUE); END_FUNCTION;
188
- FUNCTION call_remove_statement : BOOLEAN; REMOVE(TRUE); END_FUNCTION;
189
- FUNCTION repeat_statement : BOOLEAN; REPEAT; ; END_REPEAT; END_FUNCTION;
190
- FUNCTION repeat_variable_statement : BOOLEAN; REPEAT test := 1 TO 9; ; END_REPEAT; END_FUNCTION;
191
- FUNCTION repeat_variable_increment_statement : BOOLEAN; REPEAT test := 1 TO 9 BY 2; ; END_REPEAT; END_FUNCTION;
192
- FUNCTION repeat_while_statement : BOOLEAN; REPEAT WHILE TRUE; ; END_REPEAT; END_FUNCTION;
193
- FUNCTION repeat_until_statement : BOOLEAN; REPEAT UNTIL TRUE; ; END_REPEAT; END_FUNCTION;
194
- FUNCTION return_statement : BOOLEAN; RETURN; END_FUNCTION;
195
- FUNCTION return_expression_statement : BOOLEAN; RETURN (TRUE); END_FUNCTION;
196
- FUNCTION skip_statement : BOOLEAN; SKIP; END_FUNCTION;
191
+ -- constructed types
192
+ TYPE select_type = SELECT; END_TYPE;
193
+ TYPE select_extensible_type = EXTENSIBLE SELECT; END_TYPE;
194
+ TYPE select_extensible_generic_entity_type = EXTENSIBLE GENERIC_ENTITY SELECT; END_TYPE;
195
+ TYPE select_list_type = SELECT (empty_type); END_TYPE;
196
+ TYPE select_extension_type_ref_type = SELECT BASED_ON select_type; END_TYPE;
197
+ TYPE select_extension_type_ref_list_type = SELECT BASED_ON select_type WITH (empty_type); END_TYPE;
198
+ TYPE enumeration_type = ENUMERATION; END_TYPE;
199
+ TYPE enumeration_extensible_type = EXTENSIBLE ENUMERATION; END_TYPE;
200
+ TYPE enumeration_list_type = ENUMERATION OF (test); END_TYPE;
201
+ TYPE enumeration_extension_type_ref_type = ENUMERATION BASED_ON enumeration_type; END_TYPE;
202
+ TYPE enumeration_extension_type_ref_list_type = ENUMERATION BASED_ON enumeration_type WITH (test); END_TYPE;
203
+ END_PROCEDURE;
197
204
 
198
- -- literal expressions
199
- FUNCTION binary_expression : BOOLEAN; RETURN (%011110000111100001111000); END_FUNCTION;
200
- FUNCTION integer_expression : BOOLEAN; RETURN (999); END_FUNCTION;
201
- FUNCTION true_logical_expression : BOOLEAN; RETURN (TRUE); END_FUNCTION;
202
- FUNCTION false_logical_expression : BOOLEAN; RETURN (FALSE); END_FUNCTION;
203
- FUNCTION unknown_logical_expression : BOOLEAN; RETURN (UNKNOWN); END_FUNCTION;
204
- FUNCTION real_expression : BOOLEAN; RETURN (999.999); END_FUNCTION;
205
- FUNCTION simple_string_expression : BOOLEAN; RETURN ('xxx'); END_FUNCTION;
206
- FUNCTION utf8_simple_string_expression : BOOLEAN; RETURN ('UTF8 test: Příliš žluťoučký kůň úpěl ďábelské ódy.'); END_FUNCTION;
207
- FUNCTION encoded_string_expression : BOOLEAN; RETURN ("000000780000007800000078"); END_FUNCTION;
205
+ PROCEDURE expressions;
206
+ LOCAL
207
+ -- literal expressions
208
+ binary_expression : BOOLEAN := %011110000111100001111000;
209
+ integer_expression : BOOLEAN := 999;
210
+ true_logical_expression : BOOLEAN := TRUE;
211
+ false_logical_expression : BOOLEAN := FALSE;
212
+ unknown_logical_expression : BOOLEAN := UNKNOWN;
213
+ real_expression : BOOLEAN := 999.999;
214
+ simple_string_expression : BOOLEAN := 'xxx';
215
+ utf8_simple_string_expression : BOOLEAN := 'UTF8 test: Příliš žluťoučký kůň úpěl ďábelské ódy.';
216
+ encoded_string_expression : BOOLEAN := "000000780000007800000078";
208
217
 
209
- -- constant expressions
210
- FUNCTION const_e_expression : BOOLEAN; RETURN (CONST_E); END_FUNCTION;
211
- FUNCTION indeterminate_expression : BOOLEAN; RETURN (?); END_FUNCTION;
212
- FUNCTION pi_expression : BOOLEAN; RETURN (PI); END_FUNCTION;
213
- FUNCTION self_expression : BOOLEAN; RETURN (SELF); END_FUNCTION;
218
+ -- constant expressions
219
+ const_e_expression : BOOLEAN := CONST_E;
220
+ indeterminate_expression : BOOLEAN := ?;
221
+ pi_expression : BOOLEAN := PI;
222
+ self_expression : BOOLEAN := SELF;
214
223
 
215
- -- function expressions
216
- FUNCTION abs_expression : BOOLEAN; RETURN (ABS(TRUE)); END_FUNCTION;
217
- FUNCTION acos_expression : BOOLEAN; RETURN (ACOS(TRUE)); END_FUNCTION;
218
- FUNCTION asin_expression : BOOLEAN; RETURN (ASIN(TRUE)); END_FUNCTION;
219
- FUNCTION atan_expression : BOOLEAN; RETURN (ATAN(TRUE)); END_FUNCTION;
220
- FUNCTION blength_expression : BOOLEAN; RETURN (BLENGTH(TRUE)); END_FUNCTION;
221
- FUNCTION cos_expression : BOOLEAN; RETURN (COS(TRUE)); END_FUNCTION;
222
- FUNCTION exists_expression : BOOLEAN; RETURN (EXISTS(TRUE)); END_FUNCTION;
223
- FUNCTION exp_expression : BOOLEAN; RETURN (EXP(TRUE)); END_FUNCTION;
224
- FUNCTION format_expression : BOOLEAN; RETURN (FORMAT(TRUE)); END_FUNCTION;
225
- FUNCTION hibound_expression : BOOLEAN; RETURN (HIBOUND(TRUE)); END_FUNCTION;
226
- FUNCTION hiindex_expression : BOOLEAN; RETURN (HIINDEX(TRUE)); END_FUNCTION;
227
- FUNCTION length_expression : BOOLEAN; RETURN (LENGTH(TRUE)); END_FUNCTION;
228
- FUNCTION lobound_expression : BOOLEAN; RETURN (LOBOUND(TRUE)); END_FUNCTION;
229
- FUNCTION loindex_expression : BOOLEAN; RETURN (LOINDEX(TRUE)); END_FUNCTION;
230
- FUNCTION log_expression : BOOLEAN; RETURN (LOG(TRUE)); END_FUNCTION;
231
- FUNCTION log2_expression : BOOLEAN; RETURN (LOG2(TRUE)); END_FUNCTION;
232
- FUNCTION log10_expression : BOOLEAN; RETURN (LOG10(TRUE)); END_FUNCTION;
233
- FUNCTION nvl_expression : BOOLEAN; RETURN (NVL(TRUE)); END_FUNCTION;
234
- FUNCTION odd_expression : BOOLEAN; RETURN (ODD(TRUE)); END_FUNCTION;
235
- FUNCTION rolesof_expression : BOOLEAN; RETURN (ROLESOF(TRUE)); END_FUNCTION;
236
- FUNCTION sin_expression : BOOLEAN; RETURN (SIN(TRUE)); END_FUNCTION;
237
- FUNCTION sizeof_expression : BOOLEAN; RETURN (SIZEOF(TRUE)); END_FUNCTION;
238
- FUNCTION sqrt_expression : BOOLEAN; RETURN (SQRT(TRUE)); END_FUNCTION;
239
- FUNCTION tan_expression : BOOLEAN; RETURN (TAN(TRUE)); END_FUNCTION;
240
- FUNCTION typeof_expression : BOOLEAN; RETURN (TYPEOF(TRUE)); END_FUNCTION;
241
- FUNCTION usedin_expression : BOOLEAN; RETURN (USEDIN(TRUE)); END_FUNCTION;
242
- FUNCTION value_expression : BOOLEAN; RETURN (VALUE(TRUE)); END_FUNCTION;
243
- FUNCTION value_in_expression : BOOLEAN; RETURN (VALUE_IN(TRUE)); END_FUNCTION;
244
- FUNCTION value_unique_expression : BOOLEAN; RETURN (VALUE_UNIQUE(TRUE)); END_FUNCTION;
224
+ -- function expressions
225
+ abs_expression : BOOLEAN := ABS(TRUE);
226
+ acos_expression : BOOLEAN := ACOS(TRUE);
227
+ asin_expression : BOOLEAN := ASIN(TRUE);
228
+ atan_expression : BOOLEAN := ATAN(TRUE);
229
+ blength_expression : BOOLEAN := BLENGTH(TRUE);
230
+ cos_expression : BOOLEAN := COS(TRUE);
231
+ exists_expression : BOOLEAN := EXISTS(TRUE);
232
+ exp_expression : BOOLEAN := EXP(TRUE);
233
+ format_expression : BOOLEAN := FORMAT(TRUE);
234
+ hibound_expression : BOOLEAN := HIBOUND(TRUE);
235
+ hiindex_expression : BOOLEAN := HIINDEX(TRUE);
236
+ length_expression : BOOLEAN := LENGTH(TRUE);
237
+ lobound_expression : BOOLEAN := LOBOUND(TRUE);
238
+ loindex_expression : BOOLEAN := LOINDEX(TRUE);
239
+ log_expression : BOOLEAN := LOG(TRUE);
240
+ log2_expression : BOOLEAN := LOG2(TRUE);
241
+ log10_expression : BOOLEAN := LOG10(TRUE);
242
+ nvl_expression : BOOLEAN := NVL(TRUE);
243
+ odd_expression : BOOLEAN := ODD(TRUE);
244
+ rolesof_expression : BOOLEAN := ROLESOF(TRUE);
245
+ sin_expression : BOOLEAN := SIN(TRUE);
246
+ sizeof_expression : BOOLEAN := SIZEOF(TRUE);
247
+ sqrt_expression : BOOLEAN := SQRT(TRUE);
248
+ tan_expression : BOOLEAN := TAN(TRUE);
249
+ typeof_expression : BOOLEAN := TYPEOF(TRUE);
250
+ usedin_expression : BOOLEAN := USEDIN(TRUE);
251
+ value_expression : BOOLEAN := VALUE(TRUE);
252
+ value_in_expression : BOOLEAN := VALUE_IN(TRUE);
253
+ value_unique_expression : BOOLEAN := VALUE_UNIQUE(TRUE);
245
254
 
246
- -- operator expressions
247
- FUNCTION plus_expression : BOOLEAN; RETURN (+4); END_FUNCTION;
248
- FUNCTION plus_addition_expression : BOOLEAN; RETURN (+(4 + 2)); END_FUNCTION;
249
- FUNCTION minus_expression : BOOLEAN; RETURN (-4); END_FUNCTION;
250
- FUNCTION minus_addition_expression : BOOLEAN; RETURN (-(4 + 2)); END_FUNCTION;
251
- FUNCTION addition_expression : BOOLEAN; RETURN (4 + 2); END_FUNCTION;
252
- FUNCTION subtraction_expression : BOOLEAN; RETURN (4 - 2); END_FUNCTION;
253
- FUNCTION multiplication_expression : BOOLEAN; RETURN (4 * 2); END_FUNCTION;
254
- FUNCTION real_division_expression : BOOLEAN; RETURN (4 / 2); END_FUNCTION;
255
- FUNCTION integer_division_expression : BOOLEAN; RETURN (4 DIV 2); END_FUNCTION;
256
- FUNCTION modulo_expression : BOOLEAN; RETURN (4 MOD 2); END_FUNCTION;
257
- FUNCTION exponentiation_expression : BOOLEAN; RETURN (4 ** 2); END_FUNCTION;
258
- FUNCTION addition_addition_expression : BOOLEAN; RETURN (4 + 2 + 1); END_FUNCTION;
259
- FUNCTION subtraction_subtraction_expression : BOOLEAN; RETURN (4 - 2 - 1); END_FUNCTION;
260
- FUNCTION addition_subtraction_expression : BOOLEAN; RETURN (4 + 2 - 1); END_FUNCTION;
261
- FUNCTION subtraction_addition_expression : BOOLEAN; RETURN (4 - 2 + 1); END_FUNCTION;
262
- FUNCTION addition_multiplication_expression : BOOLEAN; RETURN (8 + 4 * 2); END_FUNCTION;
263
- FUNCTION multiplication_addition_expression : BOOLEAN; RETURN (8 * 4 + 2); END_FUNCTION;
264
- FUNCTION parenthesis_addition_multiplication_expression : BOOLEAN; RETURN ((8 + 4) * 2); END_FUNCTION;
265
- FUNCTION multiplication_parenthesis_addition_expression : BOOLEAN; RETURN (8 * (4 + 2)); END_FUNCTION;
266
- FUNCTION equal_expression : BOOLEAN; RETURN (4 = 2); END_FUNCTION;
267
- FUNCTION not_equal_expression : BOOLEAN; RETURN (4 <> 2); END_FUNCTION;
268
- FUNCTION instance_equal_expression : BOOLEAN; RETURN (4 :=: 2); END_FUNCTION;
269
- FUNCTION instance_not_equal_expression : BOOLEAN; RETURN (4 :<>: 2); END_FUNCTION;
270
- FUNCTION lt_expression : BOOLEAN; RETURN (4 < 2); END_FUNCTION;
271
- FUNCTION gt_expression : BOOLEAN; RETURN (4 > 2); END_FUNCTION;
272
- FUNCTION lte_expression : BOOLEAN; RETURN (4 <= 2); END_FUNCTION;
273
- FUNCTION gte_expression : BOOLEAN; RETURN (4 >= 2); END_FUNCTION;
274
- FUNCTION not_expression : BOOLEAN; RETURN (NOT TRUE); END_FUNCTION;
275
- FUNCTION not_or_expression : BOOLEAN; RETURN (NOT (TRUE OR FALSE)); END_FUNCTION;
276
- FUNCTION or_expression : BOOLEAN; RETURN (TRUE OR FALSE); END_FUNCTION;
277
- FUNCTION and_expression : BOOLEAN; RETURN (TRUE AND FALSE); END_FUNCTION;
278
- FUNCTION or_or_expression : BOOLEAN; RETURN (TRUE OR FALSE OR TRUE); END_FUNCTION;
279
- FUNCTION and_and_expression : BOOLEAN; RETURN (TRUE AND FALSE AND TRUE); END_FUNCTION;
280
- FUNCTION or_and_expression : BOOLEAN; RETURN (TRUE OR FALSE AND TRUE); END_FUNCTION;
281
- FUNCTION and_or_expression : BOOLEAN; RETURN (TRUE AND FALSE OR TRUE); END_FUNCTION;
282
- FUNCTION parenthesis_or_and_expression : BOOLEAN; RETURN ((TRUE OR FALSE) AND TRUE); END_FUNCTION;
283
- FUNCTION and_parenthesis_or_expression : BOOLEAN; RETURN (TRUE AND (FALSE OR TRUE)); END_FUNCTION;
284
- FUNCTION combine_expression : BOOLEAN; RETURN (test || test); END_FUNCTION;
285
- FUNCTION in_expression : BOOLEAN; RETURN (TRUE IN [TRUE]); END_FUNCTION;
286
- FUNCTION like_expression : BOOLEAN; RETURN ('xxx' LIKE 'xxx'); END_FUNCTION;
255
+ -- operator expressions
256
+ plus_expression : BOOLEAN := +4;
257
+ plus_addition_expression : BOOLEAN := +(4 + 2);
258
+ minus_expression : BOOLEAN := -4;
259
+ minus_addition_expression : BOOLEAN := -(4 + 2);
260
+ addition_expression : BOOLEAN := 4 + 2;
261
+ subtraction_expression : BOOLEAN := 4 - 2;
262
+ multiplication_expression : BOOLEAN := 4 * 2;
263
+ real_division_expression : BOOLEAN := 4 / 2;
264
+ integer_division_expression : BOOLEAN := 4 DIV 2;
265
+ modulo_expression : BOOLEAN := 4 MOD 2;
266
+ exponentiation_expression : BOOLEAN := 4 ** 2;
267
+ addition_addition_expression : BOOLEAN := 4 + 2 + 1;
268
+ subtraction_subtraction_expression : BOOLEAN := 4 - 2 - 1;
269
+ addition_subtraction_expression : BOOLEAN := 4 + 2 - 1;
270
+ subtraction_addition_expression : BOOLEAN := 4 - 2 + 1;
271
+ addition_multiplication_expression : BOOLEAN := 8 + 4 * 2;
272
+ multiplication_addition_expression : BOOLEAN := 8 * 4 + 2;
273
+ parenthesis_addition_multiplication_expression : BOOLEAN := (8 + 4) * 2;
274
+ multiplication_parenthesis_addition_expression : BOOLEAN := 8 * (4 + 2);
275
+ equal_expression : BOOLEAN := 4 = 2;
276
+ not_equal_expression : BOOLEAN := 4 <> 2;
277
+ instance_equal_expression : BOOLEAN := 4 :=: 2;
278
+ instance_not_equal_expression : BOOLEAN := 4 :<>: 2;
279
+ lt_expression : BOOLEAN := 4 < 2;
280
+ gt_expression : BOOLEAN := 4 > 2;
281
+ lte_expression : BOOLEAN := 4 <= 2;
282
+ gte_expression : BOOLEAN := 4 >= 2;
283
+ not_expression : BOOLEAN := NOT TRUE;
284
+ not_or_expression : BOOLEAN := NOT (TRUE OR FALSE);
285
+ or_expression : BOOLEAN := TRUE OR FALSE;
286
+ and_expression : BOOLEAN := TRUE AND FALSE;
287
+ or_or_expression : BOOLEAN := TRUE OR FALSE OR TRUE;
288
+ and_and_expression : BOOLEAN := TRUE AND FALSE AND TRUE;
289
+ or_and_expression : BOOLEAN := TRUE OR FALSE AND TRUE;
290
+ and_or_expression : BOOLEAN := TRUE AND FALSE OR TRUE;
291
+ parenthesis_or_and_expression : BOOLEAN := (TRUE OR FALSE) AND TRUE;
292
+ and_parenthesis_or_expression : BOOLEAN := TRUE AND (FALSE OR TRUE);
293
+ combine_expression : BOOLEAN := test || test2;
294
+ in_expression : BOOLEAN := TRUE IN [TRUE];
295
+ like_expression : BOOLEAN := 'xxx' LIKE 'xxx';
287
296
 
288
- -- aggregate initializer expressions
289
- FUNCTION aggregate_initializer_expression : BOOLEAN; RETURN ([4]); END_FUNCTION;
290
- FUNCTION repeated_aggregate_initializer_expression : BOOLEAN; RETURN ([4:2]); END_FUNCTION;
291
- FUNCTION complex_aggregate_initializer_expression : BOOLEAN; RETURN ([4 + 2]); END_FUNCTION;
292
- FUNCTION complex_repeated_aggregate_initializer_expression : BOOLEAN; RETURN ([4 + 2:4 + 2]); END_FUNCTION;
297
+ -- aggregate initializer expressions
298
+ aggregate_initializer_expression : BOOLEAN := [4];
299
+ repeated_aggregate_initializer_expression : BOOLEAN := [4:2];
300
+ complex_aggregate_initializer_expression : BOOLEAN := [4 + 2];
301
+ complex_repeated_aggregate_initializer_expression : BOOLEAN := [4 + 2:4 + 2];
293
302
 
294
- -- function call or entity constructor expressions
295
- FUNCTION call_expression : BOOLEAN; RETURN (parameter_function(TRUE)); END_FUNCTION;
303
+ -- function call or entity constructor expressions
304
+ call_expression : BOOLEAN := parameter_function(TRUE);
296
305
 
297
- -- reference expressions
298
- FUNCTION simple_reference_expression : BOOLEAN; RETURN (simple_string_expression); END_FUNCTION;
299
- FUNCTION attribute_reference_expression : BOOLEAN; RETURN (simple_string_expression.test); END_FUNCTION;
300
- FUNCTION group_reference_expression : BOOLEAN; RETURN (simple_string_expression\test); END_FUNCTION;
301
- FUNCTION index_reference_expression : BOOLEAN; RETURN (simple_string_expression[1]); END_FUNCTION;
302
- FUNCTION index2_reference_expression : BOOLEAN; RETURN (simple_string_expression[1:9]); END_FUNCTION;
306
+ -- reference expressions
307
+ simple_reference_expression : BOOLEAN := test;
308
+ group_reference_expression : BOOLEAN := test\test2;
309
+ index_reference_expression : BOOLEAN := test[1];
310
+ index2_reference_expression : BOOLEAN := test[1:9];
311
+ attribute_reference_expression : BOOLEAN := test.test2;
303
312
 
304
- -- interval expressions
305
- FUNCTION lt_lt_interval_expression : BOOLEAN; RETURN ({1 < 5 < 9}); END_FUNCTION;
306
- FUNCTION lte_lt_interval_expression : BOOLEAN; RETURN ({1 <= 5 < 9}); END_FUNCTION;
307
- FUNCTION lt_lte_interval_expression : BOOLEAN; RETURN ({1 < 5 <= 9}); END_FUNCTION;
308
- FUNCTION lte_lte_interval_expression : BOOLEAN; RETURN ({1 <= 5 <= 9}); END_FUNCTION;
313
+ -- interval expressions
314
+ lt_lt_interval_expression : BOOLEAN := {1 < 5 < 9};
315
+ lte_lt_interval_expression : BOOLEAN := {1 <= 5 < 9};
316
+ lt_lte_interval_expression : BOOLEAN := {1 < 5 <= 9};
317
+ lte_lte_interval_expression : BOOLEAN := {1 <= 5 <= 9};
309
318
 
310
- -- query expressions
311
- FUNCTION query_expression : BOOLEAN; RETURN (QUERY(test <* test2 | TRUE)); END_FUNCTION;
319
+ -- query expressions
320
+ query_expression : BOOLEAN := QUERY(test <* test2 | TRUE);
321
+ END_LOCAL;
322
+ END_PROCEDURE;
312
323
  END_SCHEMA;