expressir 0.2.7-x86-linux
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.cross_rubies +30 -0
- data/.github/workflows/rake.yml +45 -0
- data/.github/workflows/release.yml +84 -0
- data/.gitignore +17 -0
- data/.gitmodules +3 -0
- data/.rspec +2 -0
- data/.rubocop.yml +508 -0
- data/Gemfile +4 -0
- data/README.adoc +147 -0
- data/Rakefile +11 -0
- data/bin/console +12 -0
- data/bin/rspec +29 -0
- data/bin/setup +8 -0
- data/demo.rb +18 -0
- data/docs/development.md +90 -0
- data/exe/expressir +20 -0
- data/exe/generate-parser +48 -0
- data/expressir.gemspec +43 -0
- data/lib/expressir/cli/ui.rb +36 -0
- data/lib/expressir/cli.rb +27 -0
- data/lib/expressir/config.rb +23 -0
- data/lib/expressir/express/aggregate_dimension.rb +38 -0
- data/lib/expressir/express/attribute.rb +15 -0
- data/lib/expressir/express/comment.rb +7 -0
- data/lib/expressir/express/defined_type.rb +36 -0
- data/lib/expressir/express/derived.rb +65 -0
- data/lib/expressir/express/derived_aggregate.rb +43 -0
- data/lib/expressir/express/entity.rb +137 -0
- data/lib/expressir/express/explicit.rb +70 -0
- data/lib/expressir/express/explicit_aggregate.rb +46 -0
- data/lib/expressir/express/explicit_or_derived.rb +16 -0
- data/lib/expressir/express/global_rule.rb +44 -0
- data/lib/expressir/express/interface_specification.rb +51 -0
- data/lib/expressir/express/interfaced_item.rb +38 -0
- data/lib/expressir/express/inverse.rb +46 -0
- data/lib/expressir/express/inverse_aggregate.rb +37 -0
- data/lib/expressir/express/model_element.rb +7 -0
- data/lib/expressir/express/named_type.rb +19 -0
- data/lib/expressir/express/remark.rb +8 -0
- data/lib/expressir/express/repository.rb +306 -0
- data/lib/expressir/express/schema_definition.rb +96 -0
- data/lib/expressir/express/subtype_constraint.rb +14 -0
- data/lib/expressir/express/type.rb +26 -0
- data/lib/expressir/express/type_aggregate.rb +42 -0
- data/lib/expressir/express/type_enum.rb +29 -0
- data/lib/expressir/express/type_parser.rb +45 -0
- data/lib/expressir/express/type_select.rb +82 -0
- data/lib/expressir/express/unique_rule.rb +35 -0
- data/lib/expressir/express/where_rule.rb +32 -0
- data/lib/expressir/express.rb +11 -0
- data/lib/expressir/express_exp/2.4/express_parser.so +0 -0
- data/lib/expressir/express_exp/2.5/express_parser.so +0 -0
- data/lib/expressir/express_exp/2.6/express_parser.so +0 -0
- data/lib/expressir/express_exp/2.7/express_parser.so +0 -0
- data/lib/expressir/express_exp/3.0/express_parser.so +0 -0
- data/lib/expressir/express_exp/formatter.rb +1450 -0
- data/lib/expressir/express_exp/parser.rb +41 -0
- data/lib/expressir/express_exp/visitor.rb +2464 -0
- data/lib/expressir/express_parser.rb +30 -0
- data/lib/expressir/model/attribute.rb +27 -0
- data/lib/expressir/model/constant.rb +17 -0
- data/lib/expressir/model/entity.rb +46 -0
- data/lib/expressir/model/enumeration_item.rb +11 -0
- data/lib/expressir/model/expressions/aggregate_initializer.rb +13 -0
- data/lib/expressir/model/expressions/aggregate_item.rb +15 -0
- data/lib/expressir/model/expressions/attribute_reference.rb +15 -0
- data/lib/expressir/model/expressions/binary_expression.rb +40 -0
- data/lib/expressir/model/expressions/call.rb +15 -0
- data/lib/expressir/model/expressions/entity_constructor.rb +15 -0
- data/lib/expressir/model/expressions/group_reference.rb +15 -0
- data/lib/expressir/model/expressions/index_reference.rb +17 -0
- data/lib/expressir/model/expressions/interval.rb +21 -0
- data/lib/expressir/model/expressions/query_expression.rb +26 -0
- data/lib/expressir/model/expressions/simple_reference.rb +13 -0
- data/lib/expressir/model/expressions/unary_expression.rb +19 -0
- data/lib/expressir/model/function.rb +62 -0
- data/lib/expressir/model/identifier.rb +10 -0
- data/lib/expressir/model/interface.rb +18 -0
- data/lib/expressir/model/literals/binary.rb +13 -0
- data/lib/expressir/model/literals/integer.rb +13 -0
- data/lib/expressir/model/literals/logical.rb +17 -0
- data/lib/expressir/model/literals/real.rb +13 -0
- data/lib/expressir/model/literals/string.rb +15 -0
- data/lib/expressir/model/parameter.rb +17 -0
- data/lib/expressir/model/procedure.rb +60 -0
- data/lib/expressir/model/renamed_ref.rb +13 -0
- data/lib/expressir/model/repository.rb +19 -0
- data/lib/expressir/model/rule.rb +62 -0
- data/lib/expressir/model/schema.rb +67 -0
- data/lib/expressir/model/scope.rb +17 -0
- data/lib/expressir/model/statements/alias.rb +26 -0
- data/lib/expressir/model/statements/assignment.rb +15 -0
- data/lib/expressir/model/statements/call.rb +15 -0
- data/lib/expressir/model/statements/case.rb +17 -0
- data/lib/expressir/model/statements/case_action.rb +15 -0
- data/lib/expressir/model/statements/compound.rb +13 -0
- data/lib/expressir/model/statements/escape.rb +8 -0
- data/lib/expressir/model/statements/if.rb +17 -0
- data/lib/expressir/model/statements/null.rb +8 -0
- data/lib/expressir/model/statements/repeat.rb +34 -0
- data/lib/expressir/model/statements/return.rb +13 -0
- data/lib/expressir/model/statements/skip.rb +8 -0
- data/lib/expressir/model/subtype_constraint.rb +27 -0
- data/lib/expressir/model/type.rb +24 -0
- data/lib/expressir/model/types/aggregate.rb +17 -0
- data/lib/expressir/model/types/array.rb +21 -0
- data/lib/expressir/model/types/bag.rb +17 -0
- data/lib/expressir/model/types/binary.rb +15 -0
- data/lib/expressir/model/types/boolean.rb +8 -0
- data/lib/expressir/model/types/enumeration.rb +19 -0
- data/lib/expressir/model/types/generic.rb +13 -0
- data/lib/expressir/model/types/generic_entity.rb +13 -0
- data/lib/expressir/model/types/integer.rb +8 -0
- data/lib/expressir/model/types/list.rb +19 -0
- data/lib/expressir/model/types/logical.rb +8 -0
- data/lib/expressir/model/types/number.rb +8 -0
- data/lib/expressir/model/types/real.rb +13 -0
- data/lib/expressir/model/types/select.rb +21 -0
- data/lib/expressir/model/types/set.rb +17 -0
- data/lib/expressir/model/types/string.rb +15 -0
- data/lib/expressir/model/unique.rb +15 -0
- data/lib/expressir/model/variable.rb +17 -0
- data/lib/expressir/model/where.rb +15 -0
- data/lib/expressir/model.rb +65 -0
- data/lib/expressir/parser/owl_parser.rb +8 -0
- data/lib/expressir/parser.rb +6 -0
- data/lib/expressir/version.rb +3 -0
- data/lib/expressir.rb +21 -0
- data/original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.exp +9589 -0
- data/original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.owl +36619 -0
- data/original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.xml +13294 -0
- data/original/examples/employment/eclipse/.project +17 -0
- data/original/examples/employment/eclipse/Export/Employment.png +0 -0
- data/original/examples/employment/eclipse/Express/employment_schema.exp +33 -0
- data/original/examples/employment/eclipse/Express/employment_schema.xmi +77 -0
- data/original/examples/employment/eclipse/Express/employment_schema.xml +93 -0
- data/original/examples/employment/eclipse/Models/Employment.uml +4 -0
- data/original/examples/employment/eclipse/Models/Employment.umldi +240 -0
- data/original/examples/employment/eclipse/readme.txt +7 -0
- data/original/examples/employment/employment_schema.exp +33 -0
- data/original/examples/employment/employment_schema.rb +232 -0
- data/original/examples/employment/employment_schema.xml +93 -0
- data/original/examples/employment/employment_schema___module.rb +46 -0
- data/original/examples/employment/employment_schema___p28attr.rb +126 -0
- data/original/examples/employment/employment_schema___p28inst.rb +26 -0
- data/original/examples/employment/example_employment_data.xml +1 -0
- data/original/examples/employment/example_employment_data_copy.xml +1 -0
- data/original/examples/employment/example_employment_reader.rb +30 -0
- data/original/examples/employment/example_employment_writer.rb +51 -0
- data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.exp +3710 -0
- data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.owl +35880 -0
- data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.xmi +15357 -0
- data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.xml +9468 -0
- data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.exp +8404 -0
- data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.owl +43147 -0
- data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.xmi +18341 -0
- data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.xml +11632 -0
- data/original/examples/syntax/remark.exp +146 -0
- data/original/examples/syntax/remark_formatted.exp +175 -0
- data/original/examples/syntax/syntax.exp +311 -0
- data/original/examples/syntax/syntax_formatted.exp +1191 -0
- data/original/exp2ruby.rb +525 -0
- data/original/expsm.rb +34 -0
- data/original/mapping_owl.rb +1018 -0
- data/original/mapping_sysml.rb +2281 -0
- data/original/mapping_uml2.rb +599 -0
- data/original/mapping_uml2_eclipse.rb +433 -0
- data/original/reeper.rb +134 -0
- data/rakelib/cross-ruby.rake +308 -0
- data/spec/acceptance/express_to_owl_spec.rb +18 -0
- data/spec/acceptance/version_spec.rb +12 -0
- data/spec/expressir/express/repository_spec.rb +25 -0
- data/spec/expressir/express_exp/ap233_spec.rb +22 -0
- data/spec/expressir/express_exp/format_remark_spec.rb +28 -0
- data/spec/expressir/express_exp/format_syntax_spec.rb +28 -0
- data/spec/expressir/express_exp/parse_remark_spec.rb +346 -0
- data/spec/expressir/express_exp/parse_syntax_spec.rb +3003 -0
- data/spec/expressir/model/find_spec.rb +110 -0
- data/spec/expressr_spec.rb +5 -0
- data/spec/spec_helper.rb +17 -0
- data/spec/support/console_helper.rb +29 -0
- metadata +357 -0
@@ -0,0 +1,146 @@
|
|
1
|
+
(*"remark_schema"
|
2
|
+
Any character within the EXPRESS character set may occur between the start and end of
|
3
|
+
an embedded remark including the newline character; therefore, embedded remarks can span
|
4
|
+
several physical lines.
|
5
|
+
*)
|
6
|
+
--"remark_schema" The tail remark is written at the end of a physical line.
|
7
|
+
--"remark_schema" UTF8 test: Příliš žluťoučký kůň úpěl ďábelské ódy.
|
8
|
+
|
9
|
+
--"remark_schema" universal scope - schema before
|
10
|
+
|
11
|
+
SCHEMA remark_schema;
|
12
|
+
|
13
|
+
CONSTANT remark_constant : STRING := 'xxx'; END_CONSTANT;
|
14
|
+
TYPE remark_type = ENUMERATION OF (remark_enumeration_item); END_TYPE;
|
15
|
+
ENTITY remark_entity;
|
16
|
+
remark_attribute : STRING;
|
17
|
+
DERIVE remark_derived_attribute : STRING := 'xxx';
|
18
|
+
INVERSE remark_inverse_attribute : remark_entity FOR remark_attribute;
|
19
|
+
UNIQUE remark_unique : remark_attribute;
|
20
|
+
WHERE remark_where : TRUE;
|
21
|
+
--"remark_attribute" entity scope - entity attribute
|
22
|
+
--"remark_derived_attribute" entity scope - entity derived attribute
|
23
|
+
--"remark_inverse_attribute" entity scope - entity inverse attribute
|
24
|
+
--"remark_unique" entity scope - entity unique
|
25
|
+
--"remark_where" entity scope - entity where
|
26
|
+
END_ENTITY;
|
27
|
+
SUBTYPE_CONSTRAINT remark_subtype_constraint FOR remark_entity; END_SUBTYPE_CONSTRAINT;
|
28
|
+
FUNCTION remark_function(remark_parameter : STRING) : BOOLEAN;
|
29
|
+
TYPE remark_type = ENUMERATION OF (remark_enumeration_item); END_TYPE;
|
30
|
+
CONSTANT remark_constant : STRING := 'xxx'; END_CONSTANT;
|
31
|
+
LOCAL remark_variable : STRING; END_LOCAL;
|
32
|
+
ALIAS remark_alias FOR remark_variable; ;
|
33
|
+
--"remark_alias" function alias scope - function alias
|
34
|
+
END_ALIAS;
|
35
|
+
REPEAT remark_repeat := 1 TO 9; ;
|
36
|
+
--"remark_repeat" function repeat scope - function repeat
|
37
|
+
END_REPEAT;
|
38
|
+
remark_variable := QUERY(remark_query <* remark_variable | TRUE
|
39
|
+
--"remark_query" function query scope - function query
|
40
|
+
);
|
41
|
+
--"remark_parameter" function scope - function parameter
|
42
|
+
--"remark_type" function scope - function type
|
43
|
+
--"remark_enumeration_item" function scope - function enumeration item
|
44
|
+
--"remark_constant" function scope - function constant
|
45
|
+
--"remark_variable" function scope - function variable
|
46
|
+
END_FUNCTION;
|
47
|
+
PROCEDURE remark_procedure(remark_parameter : STRING);
|
48
|
+
TYPE remark_type = ENUMERATION OF (remark_enumeration_item); END_TYPE;
|
49
|
+
CONSTANT remark_constant : STRING := 'xxx'; END_CONSTANT;
|
50
|
+
LOCAL remark_variable : STRING; END_LOCAL;
|
51
|
+
ALIAS remark_alias FOR remark_variable; ;
|
52
|
+
--"remark_alias" procedure alias scope - procedure alias
|
53
|
+
END_ALIAS;
|
54
|
+
REPEAT remark_repeat := 1 TO 9; ;
|
55
|
+
--"remark_repeat" procedure repeat scope - procedure repeat
|
56
|
+
END_REPEAT;
|
57
|
+
remark_variable := QUERY(remark_query <* remark_variable | TRUE
|
58
|
+
--"remark_query" procedure query scope - procedure query
|
59
|
+
);
|
60
|
+
--"remark_parameter" procedure scope - procedure parameter
|
61
|
+
--"remark_type" procedure scope - procedure type
|
62
|
+
--"remark_enumeration_item" procedure scope - procedure enumeration item
|
63
|
+
--"remark_constant" procedure scope - procedure constant
|
64
|
+
--"remark_variable" procedure scope - procedure variable
|
65
|
+
END_PROCEDURE;
|
66
|
+
RULE remark_rule FOR (remark_entity);
|
67
|
+
TYPE remark_type = ENUMERATION OF (remark_enumeration_item); END_TYPE;
|
68
|
+
CONSTANT remark_constant : STRING := 'xxx'; END_CONSTANT;
|
69
|
+
LOCAL remark_variable : STRING; END_LOCAL;
|
70
|
+
ALIAS remark_alias FOR remark_variable; ;
|
71
|
+
--"remark_alias" rule alias scope - rule alias
|
72
|
+
END_ALIAS;
|
73
|
+
REPEAT remark_repeat := 1 TO 9; ;
|
74
|
+
--"remark_repeat" rule repeat scope - rule repeat
|
75
|
+
END_REPEAT;
|
76
|
+
remark_variable := QUERY(remark_query <* remark_variable | TRUE
|
77
|
+
--"remark_query" rule query scope - rule query
|
78
|
+
);
|
79
|
+
WHERE remark_where : TRUE;
|
80
|
+
--"remark_type" rule scope - rule type
|
81
|
+
--"remark_enumeration_item" rule scope - rule enumeration item
|
82
|
+
--"remark_constant" rule scope - rule constant
|
83
|
+
--"remark_variable" rule scope - rule variable
|
84
|
+
--"remark_where" rule scope - rule where
|
85
|
+
END_RULE;
|
86
|
+
|
87
|
+
--"remark_constant" schema scope - constant
|
88
|
+
--"remark_type" schema scope - type
|
89
|
+
--"remark_enumeration_item" schema scope - enumeration item
|
90
|
+
--"remark_entity" schema scope - entity
|
91
|
+
--"remark_entity.remark_attribute" schema scope - entity attribute
|
92
|
+
--"remark_entity.remark_derived_attribute" schema scope - entity derived attribute
|
93
|
+
--"remark_entity.remark_inverse_attribute" schema scope - entity inverse attribute
|
94
|
+
--"remark_entity.remark_unique" schema scope - entity unique
|
95
|
+
--"remark_entity.remark_where" schema scope - entity where
|
96
|
+
--"remark_subtype_constraint" schema scope - subtype constraint
|
97
|
+
--"remark_function" schema scope - function
|
98
|
+
--"remark_function.remark_parameter" schema scope - function parameter
|
99
|
+
--"remark_function.remark_type" schema scope - function type
|
100
|
+
--"remark_function.remark_enumeration_item" schema scope - function enumeration item
|
101
|
+
--"remark_function.remark_constant" schema scope - function constant
|
102
|
+
--"remark_function.remark_variable" schema scope - function variable
|
103
|
+
--"remark_procedure" schema scope - procedure
|
104
|
+
--"remark_procedure.remark_parameter" schema scope - procedure parameter
|
105
|
+
--"remark_procedure.remark_type" schema scope - procedure type
|
106
|
+
--"remark_procedure.remark_enumeration_item" schema scope - procedure enumeration item
|
107
|
+
--"remark_procedure.remark_constant" schema scope - procedure constant
|
108
|
+
--"remark_procedure.remark_variable" schema scope - procedure variable
|
109
|
+
--"remark_rule" schema scope - rule
|
110
|
+
--"remark_rule.remark_type" schema scope - rule type
|
111
|
+
--"remark_rule.remark_enumeration_item" schema scope - rule enumeration item
|
112
|
+
--"remark_rule.remark_constant" schema scope - rule constant
|
113
|
+
--"remark_rule.remark_variable" schema scope - rule variable
|
114
|
+
--"remark_rule.remark_where" schema scope - rule where
|
115
|
+
|
116
|
+
END_SCHEMA;
|
117
|
+
|
118
|
+
--"remark_schema" universal scope - schema
|
119
|
+
--"remark_schema.remark_constant" universal scope - constant
|
120
|
+
--"remark_schema.remark_type" universal scope - type
|
121
|
+
--"remark_schema.remark_enumeration_item" universal scope - enumeration item
|
122
|
+
--"remark_schema.remark_entity" universal scope - entity
|
123
|
+
--"remark_schema.remark_entity.remark_attribute" universal scope - entity attribute
|
124
|
+
--"remark_schema.remark_entity.remark_derived_attribute" universal scope - entity derived attribute
|
125
|
+
--"remark_schema.remark_entity.remark_inverse_attribute" universal scope - entity inverse attribute
|
126
|
+
--"remark_schema.remark_entity.remark_unique" universal scope - entity unique
|
127
|
+
--"remark_schema.remark_entity.remark_where" universal scope - entity where
|
128
|
+
--"remark_schema.remark_subtype_constraint" universal scope - subtype constraint
|
129
|
+
--"remark_schema.remark_function" universal scope - function
|
130
|
+
--"remark_schema.remark_function.remark_parameter" universal scope - function parameter
|
131
|
+
--"remark_schema.remark_function.remark_type" universal scope - function type
|
132
|
+
--"remark_schema.remark_function.remark_enumeration_item" universal scope - function enumeration item
|
133
|
+
--"remark_schema.remark_function.remark_constant" universal scope - function constant
|
134
|
+
--"remark_schema.remark_function.remark_variable" universal scope - function variable
|
135
|
+
--"remark_schema.remark_procedure" universal scope - procedure
|
136
|
+
--"remark_schema.remark_procedure.remark_parameter" universal scope - procedure parameter
|
137
|
+
--"remark_schema.remark_procedure.remark_type" universal scope - procedure type
|
138
|
+
--"remark_schema.remark_procedure.remark_enumeration_item" universal scope - procedure enumeration item
|
139
|
+
--"remark_schema.remark_procedure.remark_constant" universal scope - procedure constant
|
140
|
+
--"remark_schema.remark_procedure.remark_variable" universal scope - procedure variable
|
141
|
+
--"remark_schema.remark_rule" universal scope - rule
|
142
|
+
--"remark_schema.remark_rule.remark_type" universal scope - rule type
|
143
|
+
--"remark_schema.remark_rule.remark_enumeration_item" universal scope - rule enumeration item
|
144
|
+
--"remark_schema.remark_rule.remark_constant" universal scope - rule constant
|
145
|
+
--"remark_schema.remark_rule.remark_variable" universal scope - rule variable
|
146
|
+
--"remark_schema.remark_rule.remark_where" universal scope - rule where
|
@@ -0,0 +1,175 @@
|
|
1
|
+
SCHEMA remark_schema;
|
2
|
+
CONSTANT
|
3
|
+
remark_constant : STRING := 'xxx';
|
4
|
+
END_CONSTANT;
|
5
|
+
TYPE remark_type = ENUMERATION OF (remark_enumeration_item);
|
6
|
+
END_TYPE;
|
7
|
+
|
8
|
+
ENTITY remark_entity;
|
9
|
+
remark_attribute : STRING;
|
10
|
+
DERIVE
|
11
|
+
remark_derived_attribute : STRING := 'xxx';
|
12
|
+
INVERSE
|
13
|
+
remark_inverse_attribute : remark_entity FOR remark_attribute;
|
14
|
+
UNIQUE
|
15
|
+
remark_unique : remark_attribute;
|
16
|
+
WHERE
|
17
|
+
remark_where : TRUE;
|
18
|
+
END_ENTITY;
|
19
|
+
|
20
|
+
SUBTYPE_CONSTRAINT remark_subtype_constraint FOR remark_entity;
|
21
|
+
END_SUBTYPE_CONSTRAINT;
|
22
|
+
|
23
|
+
FUNCTION remark_function(remark_parameter : STRING) : BOOLEAN;
|
24
|
+
TYPE remark_type = ENUMERATION OF (remark_enumeration_item);
|
25
|
+
END_TYPE;
|
26
|
+
CONSTANT
|
27
|
+
remark_constant : STRING := 'xxx';
|
28
|
+
END_CONSTANT;
|
29
|
+
LOCAL
|
30
|
+
remark_variable : STRING;
|
31
|
+
END_LOCAL;
|
32
|
+
ALIAS remark_alias FOR remark_variable;
|
33
|
+
;
|
34
|
+
--"remark_alias" function alias scope - function alias
|
35
|
+
END_ALIAS;
|
36
|
+
REPEAT remark_repeat := 1 TO 9;
|
37
|
+
;
|
38
|
+
--"remark_repeat" function repeat scope - function repeat
|
39
|
+
END_REPEAT;
|
40
|
+
remark_variable := QUERY(remark_query <* remark_variable | TRUE
|
41
|
+
--"remark_query" function query scope - function query
|
42
|
+
);
|
43
|
+
END_FUNCTION;
|
44
|
+
|
45
|
+
PROCEDURE remark_procedure(remark_parameter : STRING);
|
46
|
+
TYPE remark_type = ENUMERATION OF (remark_enumeration_item);
|
47
|
+
END_TYPE;
|
48
|
+
CONSTANT
|
49
|
+
remark_constant : STRING := 'xxx';
|
50
|
+
END_CONSTANT;
|
51
|
+
LOCAL
|
52
|
+
remark_variable : STRING;
|
53
|
+
END_LOCAL;
|
54
|
+
ALIAS remark_alias FOR remark_variable;
|
55
|
+
;
|
56
|
+
--"remark_alias" procedure alias scope - procedure alias
|
57
|
+
END_ALIAS;
|
58
|
+
REPEAT remark_repeat := 1 TO 9;
|
59
|
+
;
|
60
|
+
--"remark_repeat" procedure repeat scope - procedure repeat
|
61
|
+
END_REPEAT;
|
62
|
+
remark_variable := QUERY(remark_query <* remark_variable | TRUE
|
63
|
+
--"remark_query" procedure query scope - procedure query
|
64
|
+
);
|
65
|
+
END_PROCEDURE;
|
66
|
+
|
67
|
+
RULE remark_rule FOR (remark_entity);
|
68
|
+
TYPE remark_type = ENUMERATION OF (remark_enumeration_item);
|
69
|
+
END_TYPE;
|
70
|
+
CONSTANT
|
71
|
+
remark_constant : STRING := 'xxx';
|
72
|
+
END_CONSTANT;
|
73
|
+
LOCAL
|
74
|
+
remark_variable : STRING;
|
75
|
+
END_LOCAL;
|
76
|
+
ALIAS remark_alias FOR remark_variable;
|
77
|
+
;
|
78
|
+
--"remark_alias" rule alias scope - rule alias
|
79
|
+
END_ALIAS;
|
80
|
+
REPEAT remark_repeat := 1 TO 9;
|
81
|
+
;
|
82
|
+
--"remark_repeat" rule repeat scope - rule repeat
|
83
|
+
END_REPEAT;
|
84
|
+
remark_variable := QUERY(remark_query <* remark_variable | TRUE
|
85
|
+
--"remark_query" rule query scope - rule query
|
86
|
+
);
|
87
|
+
WHERE
|
88
|
+
remark_where : TRUE;
|
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" UTF8 test: Příliš žluťoučký kůň úpěl ďábelské ódy.
|
98
|
+
--"remark_schema" universal scope - schema before
|
99
|
+
--"remark_schema" universal scope - schema
|
100
|
+
--"remark_schema.remark_constant" schema scope - constant
|
101
|
+
--"remark_schema.remark_constant" universal scope - constant
|
102
|
+
--"remark_schema.remark_type" schema scope - type
|
103
|
+
--"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
|
106
|
+
--"remark_schema.remark_entity" schema scope - entity
|
107
|
+
--"remark_schema.remark_entity" universal scope - entity
|
108
|
+
--"remark_schema.remark_entity.remark_attribute" entity scope - entity attribute
|
109
|
+
--"remark_schema.remark_entity.remark_attribute" schema scope - entity attribute
|
110
|
+
--"remark_schema.remark_entity.remark_attribute" universal scope - entity attribute
|
111
|
+
--"remark_schema.remark_entity.remark_derived_attribute" entity scope - entity derived attribute
|
112
|
+
--"remark_schema.remark_entity.remark_derived_attribute" schema scope - entity derived attribute
|
113
|
+
--"remark_schema.remark_entity.remark_derived_attribute" universal scope - entity derived attribute
|
114
|
+
--"remark_schema.remark_entity.remark_inverse_attribute" entity scope - entity inverse attribute
|
115
|
+
--"remark_schema.remark_entity.remark_inverse_attribute" schema scope - entity inverse attribute
|
116
|
+
--"remark_schema.remark_entity.remark_inverse_attribute" universal scope - entity inverse attribute
|
117
|
+
--"remark_schema.remark_entity.remark_unique" entity scope - entity unique
|
118
|
+
--"remark_schema.remark_entity.remark_unique" schema scope - entity unique
|
119
|
+
--"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
|
123
|
+
--"remark_schema.remark_subtype_constraint" schema scope - subtype constraint
|
124
|
+
--"remark_schema.remark_subtype_constraint" universal scope - subtype constraint
|
125
|
+
--"remark_schema.remark_function" schema scope - function
|
126
|
+
--"remark_schema.remark_function" universal scope - function
|
127
|
+
--"remark_schema.remark_function.remark_parameter" function scope - function parameter
|
128
|
+
--"remark_schema.remark_function.remark_parameter" schema scope - function parameter
|
129
|
+
--"remark_schema.remark_function.remark_parameter" universal scope - function parameter
|
130
|
+
--"remark_schema.remark_function.remark_type" function scope - function type
|
131
|
+
--"remark_schema.remark_function.remark_type" schema scope - function type
|
132
|
+
--"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
|
136
|
+
--"remark_schema.remark_function.remark_constant" function scope - function constant
|
137
|
+
--"remark_schema.remark_function.remark_constant" schema scope - function constant
|
138
|
+
--"remark_schema.remark_function.remark_constant" universal scope - function constant
|
139
|
+
--"remark_schema.remark_function.remark_variable" function scope - function variable
|
140
|
+
--"remark_schema.remark_function.remark_variable" schema scope - function variable
|
141
|
+
--"remark_schema.remark_function.remark_variable" universal scope - function variable
|
142
|
+
--"remark_schema.remark_procedure" schema scope - procedure
|
143
|
+
--"remark_schema.remark_procedure" universal scope - procedure
|
144
|
+
--"remark_schema.remark_procedure.remark_parameter" procedure scope - procedure parameter
|
145
|
+
--"remark_schema.remark_procedure.remark_parameter" schema scope - procedure parameter
|
146
|
+
--"remark_schema.remark_procedure.remark_parameter" universal scope - procedure parameter
|
147
|
+
--"remark_schema.remark_procedure.remark_type" procedure scope - procedure type
|
148
|
+
--"remark_schema.remark_procedure.remark_type" schema scope - procedure type
|
149
|
+
--"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
|
153
|
+
--"remark_schema.remark_procedure.remark_constant" procedure scope - procedure constant
|
154
|
+
--"remark_schema.remark_procedure.remark_constant" schema scope - procedure constant
|
155
|
+
--"remark_schema.remark_procedure.remark_constant" universal scope - procedure constant
|
156
|
+
--"remark_schema.remark_procedure.remark_variable" procedure scope - procedure variable
|
157
|
+
--"remark_schema.remark_procedure.remark_variable" schema scope - procedure variable
|
158
|
+
--"remark_schema.remark_procedure.remark_variable" universal scope - procedure variable
|
159
|
+
--"remark_schema.remark_rule" schema scope - rule
|
160
|
+
--"remark_schema.remark_rule" universal scope - rule
|
161
|
+
--"remark_schema.remark_rule.remark_type" rule scope - rule type
|
162
|
+
--"remark_schema.remark_rule.remark_type" schema scope - rule type
|
163
|
+
--"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
|
167
|
+
--"remark_schema.remark_rule.remark_constant" rule scope - rule constant
|
168
|
+
--"remark_schema.remark_rule.remark_constant" schema scope - rule constant
|
169
|
+
--"remark_schema.remark_rule.remark_constant" universal scope - rule constant
|
170
|
+
--"remark_schema.remark_rule.remark_variable" rule scope - rule variable
|
171
|
+
--"remark_schema.remark_rule.remark_variable" schema scope - rule variable
|
172
|
+
--"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
|
@@ -0,0 +1,311 @@
|
|
1
|
+
SCHEMA syntax_schema 'version';
|
2
|
+
|
3
|
+
-- interfaces
|
4
|
+
USE FROM contract_schema;
|
5
|
+
USE FROM contract_schema (contract);
|
6
|
+
USE FROM contract_schema (contract AS contract2);
|
7
|
+
REFERENCE FROM contract_schema;
|
8
|
+
REFERENCE FROM contract_schema (contract);
|
9
|
+
REFERENCE FROM contract_schema (contract AS contract2);
|
10
|
+
|
11
|
+
-- constants
|
12
|
+
CONSTANT empty_constant : BOOLEAN := TRUE; END_CONSTANT;
|
13
|
+
|
14
|
+
-- types
|
15
|
+
TYPE empty_type = BOOLEAN; END_TYPE;
|
16
|
+
TYPE where_type = BOOLEAN; WHERE TRUE; END_TYPE;
|
17
|
+
TYPE where_label_type = BOOLEAN; WHERE WR1 : TRUE; END_TYPE;
|
18
|
+
|
19
|
+
-- entities
|
20
|
+
ENTITY empty_entity; END_ENTITY;
|
21
|
+
ENTITY abstract_entity ABSTRACT; END_ENTITY;
|
22
|
+
ENTITY abstract_supertype_entity ABSTRACT SUPERTYPE; END_ENTITY;
|
23
|
+
ENTITY abstract_supertype_constraint_entity ABSTRACT SUPERTYPE OF (empty_entity); END_ENTITY;
|
24
|
+
ENTITY supertype_constraint_entity SUPERTYPE OF (empty_entity); END_ENTITY;
|
25
|
+
ENTITY subtype_entity SUBTYPE OF (empty_entity); END_ENTITY;
|
26
|
+
ENTITY supertype_constraint_subtype_entity SUPERTYPE OF (empty_entity) SUBTYPE OF (empty_entity); END_ENTITY;
|
27
|
+
ENTITY attribute_entity; test : BOOLEAN; END_ENTITY;
|
28
|
+
ENTITY attribute_optional_entity; test : OPTIONAL BOOLEAN; END_ENTITY;
|
29
|
+
ENTITY attribute_multiple_entity; test : BOOLEAN; test2 : BOOLEAN; END_ENTITY;
|
30
|
+
ENTITY attribute_multiple_shorthand_entity; test, test2 : BOOLEAN; END_ENTITY;
|
31
|
+
ENTITY attribute_redeclared_entity; SELF\attribute_entity.test : BOOLEAN; END_ENTITY;
|
32
|
+
ENTITY attribute_redeclared_renamed_entity; SELF\attribute_entity.test RENAMED test2 : BOOLEAN; END_ENTITY;
|
33
|
+
ENTITY derived_attribute_entity; DERIVE test : BOOLEAN := TRUE; END_ENTITY;
|
34
|
+
ENTITY derived_attribute_redeclared_entity; DERIVE SELF\attribute_entity.test : BOOLEAN := TRUE; END_ENTITY;
|
35
|
+
ENTITY derived_attribute_redeclared_renamed_entity; DERIVE SELF\attribute_entity.test RENAMED test2 : BOOLEAN := TRUE; END_ENTITY;
|
36
|
+
ENTITY inverse_attribute_entity; INVERSE test : attribute_entity FOR test; END_ENTITY;
|
37
|
+
ENTITY inverse_attribute_entity_entity; INVERSE test : attribute_entity FOR attribute_entity.test; END_ENTITY;
|
38
|
+
ENTITY inverse_attribute_set_entity; INVERSE test : SET OF attribute_entity FOR test; END_ENTITY;
|
39
|
+
ENTITY inverse_attribute_set_bound_entity; INVERSE test : SET [1:9] OF attribute_entity FOR test; END_ENTITY;
|
40
|
+
ENTITY inverse_attribute_bag_entity; INVERSE test : BAG OF attribute_entity FOR test; END_ENTITY;
|
41
|
+
ENTITY inverse_attribute_bag_bound_entity; INVERSE test : BAG [1:9] OF attribute_entity FOR test; END_ENTITY;
|
42
|
+
ENTITY inverse_attribute_redeclared_entity; INVERSE SELF\attribute_entity.test : attribute_entity FOR test; END_ENTITY;
|
43
|
+
ENTITY inverse_attribute_redeclared_renamed_entity; INVERSE SELF\attribute_entity.test RENAMED test2 : attribute_entity FOR test; END_ENTITY;
|
44
|
+
ENTITY unique_entity; test : BOOLEAN; UNIQUE test; END_ENTITY;
|
45
|
+
ENTITY unique_label_entity; test : BOOLEAN; UNIQUE UR1 : test; END_ENTITY;
|
46
|
+
ENTITY unique_qualified_entity; UNIQUE SELF\attribute_entity.test; END_ENTITY;
|
47
|
+
ENTITY unique_label_qualified_entity; UNIQUE UR1 : SELF\attribute_entity.test; END_ENTITY;
|
48
|
+
ENTITY where_entity; WHERE TRUE; END_ENTITY;
|
49
|
+
ENTITY where_label_entity; WHERE WR1 : TRUE; END_ENTITY;
|
50
|
+
|
51
|
+
-- subtype constraints
|
52
|
+
SUBTYPE_CONSTRAINT empty_subtype_constraint FOR empty_entity; END_SUBTYPE_CONSTRAINT;
|
53
|
+
SUBTYPE_CONSTRAINT abstract_supertype_subtype_constraint FOR empty_entity; ABSTRACT SUPERTYPE; END_SUBTYPE_CONSTRAINT;
|
54
|
+
SUBTYPE_CONSTRAINT total_over_subtype_constraint FOR empty_entity; TOTAL_OVER(a); END_SUBTYPE_CONSTRAINT;
|
55
|
+
SUBTYPE_CONSTRAINT supertype_expression_subtype_constraint FOR empty_entity; a; END_SUBTYPE_CONSTRAINT;
|
56
|
+
SUBTYPE_CONSTRAINT supertype_expression_andor_subtype_constraint FOR empty_entity; a ANDOR b; END_SUBTYPE_CONSTRAINT;
|
57
|
+
SUBTYPE_CONSTRAINT supertype_expression_and_subtype_constraint FOR empty_entity; a AND b; END_SUBTYPE_CONSTRAINT;
|
58
|
+
SUBTYPE_CONSTRAINT supertype_expression_andor_and_subtype_constraint FOR empty_entity; a ANDOR b AND c; END_SUBTYPE_CONSTRAINT;
|
59
|
+
SUBTYPE_CONSTRAINT supertype_expression_and_andor_subtype_constraint FOR empty_entity; a AND b ANDOR c; END_SUBTYPE_CONSTRAINT;
|
60
|
+
SUBTYPE_CONSTRAINT supertype_expression_parenthesis_andor_and_subtype_constraint FOR empty_entity; (a ANDOR b) AND c; END_SUBTYPE_CONSTRAINT;
|
61
|
+
SUBTYPE_CONSTRAINT supertype_expression_and_parenthesis_andor_subtype_constraint FOR empty_entity; a AND (b ANDOR c); END_SUBTYPE_CONSTRAINT;
|
62
|
+
SUBTYPE_CONSTRAINT supertype_expression_oneof_subtype_constraint FOR empty_entity; ONEOF(a, b); END_SUBTYPE_CONSTRAINT;
|
63
|
+
SUBTYPE_CONSTRAINT supertype_expression_and_oneof_subtype_constraint FOR empty_entity; a AND ONEOF(b, c); END_SUBTYPE_CONSTRAINT;
|
64
|
+
SUBTYPE_CONSTRAINT supertype_expression_andor_oneof_subtype_constraint FOR empty_entity; a ANDOR ONEOF(b, c); END_SUBTYPE_CONSTRAINT;
|
65
|
+
SUBTYPE_CONSTRAINT supertype_expression_oneof_and_subtype_constraint FOR empty_entity; ONEOF(a, b) AND c; END_SUBTYPE_CONSTRAINT;
|
66
|
+
SUBTYPE_CONSTRAINT supertype_expression_oneof_andor_subtype_constraint FOR empty_entity; ONEOF(a, b) ANDOR c; END_SUBTYPE_CONSTRAINT;
|
67
|
+
SUBTYPE_CONSTRAINT supertype_expression_oneof_and_oneof_subtype_constraint FOR empty_entity; ONEOF(a, b) AND ONEOF(c, d); END_SUBTYPE_CONSTRAINT;
|
68
|
+
SUBTYPE_CONSTRAINT supertype_expression_oneof_andor_oneof_subtype_constraint FOR empty_entity; ONEOF(a, b) ANDOR ONEOF(c, d); END_SUBTYPE_CONSTRAINT;
|
69
|
+
|
70
|
+
-- functions
|
71
|
+
FUNCTION empty_function : BOOLEAN; ; END_FUNCTION;
|
72
|
+
FUNCTION parameter_function(test : BOOLEAN) : BOOLEAN; ; END_FUNCTION;
|
73
|
+
FUNCTION multiple_parameter_function(test : BOOLEAN; test2 : BOOLEAN) : BOOLEAN; ; END_FUNCTION;
|
74
|
+
FUNCTION multiple_shorthand_parameter_function(test, test2 : BOOLEAN) : BOOLEAN; ; END_FUNCTION;
|
75
|
+
FUNCTION type_function : BOOLEAN; TYPE test = BOOLEAN; END_TYPE; ; END_FUNCTION;
|
76
|
+
FUNCTION constant_function : BOOLEAN; CONSTANT test : BOOLEAN := TRUE; END_CONSTANT; ; END_FUNCTION;
|
77
|
+
FUNCTION multiple_constant_function : BOOLEAN; CONSTANT test : BOOLEAN := TRUE; test2 : BOOLEAN := TRUE; END_CONSTANT; ; END_FUNCTION;
|
78
|
+
FUNCTION variable_function : BOOLEAN; LOCAL test : BOOLEAN; END_LOCAL; ; END_FUNCTION;
|
79
|
+
FUNCTION multiple_variable_function : BOOLEAN; LOCAL test : BOOLEAN; test2 : BOOLEAN; END_LOCAL; ; END_FUNCTION;
|
80
|
+
FUNCTION multiple_shorthand_variable_function : BOOLEAN; LOCAL test, test2 : BOOLEAN; END_LOCAL; ; END_FUNCTION;
|
81
|
+
FUNCTION variable_expression_function : BOOLEAN; LOCAL test : BOOLEAN := TRUE; END_LOCAL; ; END_FUNCTION;
|
82
|
+
FUNCTION multiple_variable_expression_function : BOOLEAN; LOCAL test : BOOLEAN := TRUE; test2 : BOOLEAN := TRUE; END_LOCAL; ; END_FUNCTION;
|
83
|
+
FUNCTION multiple_shorthand_variable_expression_function : BOOLEAN; LOCAL test, test2 : BOOLEAN := TRUE; END_LOCAL; ; END_FUNCTION;
|
84
|
+
|
85
|
+
-- procedures
|
86
|
+
PROCEDURE empty_procedure; END_PROCEDURE;
|
87
|
+
PROCEDURE parameter_procedure(test : BOOLEAN); END_PROCEDURE;
|
88
|
+
PROCEDURE multiple_parameter_procedure(test : BOOLEAN; test2 : BOOLEAN); END_PROCEDURE;
|
89
|
+
PROCEDURE multiple_shorthand_parameter_procedure(test, test2 : BOOLEAN); END_PROCEDURE;
|
90
|
+
PROCEDURE variable_parameter_procedure(VAR test : BOOLEAN); END_PROCEDURE;
|
91
|
+
PROCEDURE multiple_variable_parameter_procedure(VAR test : BOOLEAN; test2 : BOOLEAN); END_PROCEDURE;
|
92
|
+
PROCEDURE multiple_variable_parameter2_procedure(test : BOOLEAN; VAR test2 : BOOLEAN); END_PROCEDURE;
|
93
|
+
PROCEDURE multiple_shorthand_variable_parameter_procedure(VAR test, test2 : BOOLEAN); END_PROCEDURE;
|
94
|
+
PROCEDURE type_procedure; TYPE test = BOOLEAN; END_TYPE; END_PROCEDURE;
|
95
|
+
PROCEDURE constant_procedure; CONSTANT test : BOOLEAN := TRUE; END_CONSTANT; END_PROCEDURE;
|
96
|
+
PROCEDURE multiple_constant_procedure; CONSTANT test : BOOLEAN := TRUE; test2 : BOOLEAN := TRUE; END_CONSTANT; END_PROCEDURE;
|
97
|
+
PROCEDURE variable_procedure; LOCAL test : BOOLEAN; END_LOCAL; END_PROCEDURE;
|
98
|
+
PROCEDURE multiple_variable_procedure; LOCAL test : BOOLEAN; test2 : BOOLEAN; END_LOCAL; END_PROCEDURE;
|
99
|
+
PROCEDURE multiple_shorthand_variable_procedure; LOCAL test, test2 : BOOLEAN; END_LOCAL; END_PROCEDURE;
|
100
|
+
PROCEDURE variable_expression_procedure; LOCAL test : BOOLEAN := TRUE; END_LOCAL; END_PROCEDURE;
|
101
|
+
PROCEDURE multiple_variable_expression_procedure; LOCAL test : BOOLEAN := TRUE; test2 : BOOLEAN := TRUE; END_LOCAL; END_PROCEDURE;
|
102
|
+
PROCEDURE multiple_shorthand_variable_expression_procedure; LOCAL test, test2 : BOOLEAN := TRUE; END_LOCAL; END_PROCEDURE;
|
103
|
+
PROCEDURE statement_procedure; ; END_PROCEDURE;
|
104
|
+
|
105
|
+
-- rules
|
106
|
+
RULE empty_rule FOR (empty_entity); WHERE TRUE; END_RULE;
|
107
|
+
RULE type_rule FOR (empty_entity); TYPE test = BOOLEAN; END_TYPE; WHERE TRUE; END_RULE;
|
108
|
+
RULE constant_rule FOR (empty_entity); CONSTANT test : BOOLEAN := TRUE; END_CONSTANT; WHERE TRUE; END_RULE;
|
109
|
+
RULE multiple_constant_rule FOR (empty_entity); CONSTANT test : BOOLEAN := TRUE; test2 : BOOLEAN := TRUE; END_CONSTANT; WHERE TRUE; END_RULE;
|
110
|
+
RULE variable_rule FOR (empty_entity); LOCAL test : BOOLEAN; END_LOCAL; WHERE TRUE; END_RULE;
|
111
|
+
RULE multiple_variable_rule FOR (empty_entity); LOCAL test : BOOLEAN; test2 : BOOLEAN; END_LOCAL; WHERE TRUE; END_RULE;
|
112
|
+
RULE multiple_shorthand_variable_rule FOR (empty_entity); LOCAL test, test2 : BOOLEAN; END_LOCAL; WHERE TRUE; END_RULE;
|
113
|
+
RULE variable_expression_rule FOR (empty_entity); LOCAL test : BOOLEAN := TRUE; END_LOCAL; WHERE TRUE; END_RULE;
|
114
|
+
RULE multiple_variable_expression_rule FOR (empty_entity); LOCAL test : BOOLEAN := TRUE; test2 : BOOLEAN := TRUE; END_LOCAL; WHERE TRUE; END_RULE;
|
115
|
+
RULE multiple_shorthand_variable_expression_rule FOR (empty_entity); LOCAL test, test2 : BOOLEAN := TRUE; END_LOCAL; WHERE TRUE; END_RULE;
|
116
|
+
RULE statement_rule FOR (empty_entity); ; WHERE TRUE; END_RULE;
|
117
|
+
|
118
|
+
-- simple types
|
119
|
+
TYPE binary_type = BINARY; END_TYPE;
|
120
|
+
TYPE binary_width_type = BINARY (3); END_TYPE;
|
121
|
+
TYPE binary_width_fixed_type = BINARY (3) FIXED; END_TYPE;
|
122
|
+
TYPE boolean_type = BOOLEAN; END_TYPE;
|
123
|
+
TYPE integer_type = INTEGER; END_TYPE;
|
124
|
+
TYPE logical_type = LOGICAL; END_TYPE;
|
125
|
+
TYPE number_type = NUMBER; END_TYPE;
|
126
|
+
TYPE real_type = REAL; END_TYPE;
|
127
|
+
TYPE real_precision_type = REAL (3); END_TYPE;
|
128
|
+
TYPE string_type = STRING; END_TYPE;
|
129
|
+
TYPE string_width_type = STRING (3); END_TYPE;
|
130
|
+
TYPE string_width_fixed_type = STRING (3) FIXED; END_TYPE;
|
131
|
+
|
132
|
+
-- aggregation types
|
133
|
+
TYPE array_type = ARRAY [1:9] OF STRING; END_TYPE;
|
134
|
+
TYPE array_optional_type = ARRAY [1:9] OF OPTIONAL STRING; END_TYPE;
|
135
|
+
TYPE array_unique_type = ARRAY [1:9] OF UNIQUE STRING; END_TYPE;
|
136
|
+
TYPE array_optional_unique_type = ARRAY [1:9] OF OPTIONAL UNIQUE STRING; END_TYPE;
|
137
|
+
TYPE bag_type = BAG OF STRING; END_TYPE;
|
138
|
+
TYPE bag_bound_type = BAG [1:9] OF STRING; END_TYPE;
|
139
|
+
TYPE list_type = LIST OF STRING; END_TYPE;
|
140
|
+
TYPE list_bound_type = LIST [1:9] OF STRING; END_TYPE;
|
141
|
+
TYPE list_unique_type = LIST OF UNIQUE STRING; END_TYPE;
|
142
|
+
TYPE list_bound_unique_type = LIST [1:9] OF UNIQUE STRING; END_TYPE;
|
143
|
+
TYPE set_type = SET OF STRING; END_TYPE;
|
144
|
+
TYPE set_bound_type = SET [1:9] OF STRING; END_TYPE;
|
145
|
+
|
146
|
+
-- constructed types
|
147
|
+
TYPE select_type = SELECT; END_TYPE;
|
148
|
+
TYPE select_extensible_type = EXTENSIBLE SELECT; END_TYPE;
|
149
|
+
TYPE select_extensible_generic_entity_type = EXTENSIBLE GENERIC_ENTITY SELECT; END_TYPE;
|
150
|
+
TYPE select_list_type = SELECT (empty_type); END_TYPE;
|
151
|
+
TYPE select_extension_type_ref_type = SELECT BASED_ON select_type; END_TYPE;
|
152
|
+
TYPE select_extension_type_ref_list_type = SELECT BASED_ON select_type WITH (empty_type); END_TYPE;
|
153
|
+
TYPE enumeration_type = ENUMERATION; END_TYPE;
|
154
|
+
TYPE enumeration_extensible_type = EXTENSIBLE ENUMERATION; END_TYPE;
|
155
|
+
TYPE enumeration_list_type = ENUMERATION OF (test); END_TYPE;
|
156
|
+
TYPE enumeration_extension_type_ref_type = ENUMERATION BASED_ON enumeration_type; END_TYPE;
|
157
|
+
TYPE enumeration_extension_type_ref_list_type = ENUMERATION BASED_ON enumeration_type WITH (test); END_TYPE;
|
158
|
+
|
159
|
+
-- statements
|
160
|
+
FUNCTION alias_simple_reference_statement : BOOLEAN; ALIAS test FOR test; ; END_ALIAS; END_FUNCTION;
|
161
|
+
FUNCTION alias_attribute_reference_statement : BOOLEAN; ALIAS test FOR test.test; ; END_ALIAS; END_FUNCTION;
|
162
|
+
FUNCTION alias_group_reference_statement : BOOLEAN; ALIAS test FOR test\test; ; END_ALIAS; END_FUNCTION;
|
163
|
+
FUNCTION alias_index_reference_statement : BOOLEAN; ALIAS test FOR test[1]; ; END_ALIAS; END_FUNCTION;
|
164
|
+
FUNCTION alias_index2_reference_statement : BOOLEAN; ALIAS test FOR test[1:9]; ; END_ALIAS; END_FUNCTION;
|
165
|
+
FUNCTION assignment_simple_reference_statement : BOOLEAN; test := TRUE; END_FUNCTION;
|
166
|
+
FUNCTION assignment_attribute_reference_statement : BOOLEAN; test.test := TRUE; END_FUNCTION;
|
167
|
+
FUNCTION assignment_group_reference_statement : BOOLEAN; test\test := TRUE; END_FUNCTION;
|
168
|
+
FUNCTION assignment_index_reference_statement : BOOLEAN; test[1] := TRUE; END_FUNCTION;
|
169
|
+
FUNCTION assignment_index2_reference_statement : BOOLEAN; test[1:9] := TRUE; END_FUNCTION;
|
170
|
+
FUNCTION case_statement : BOOLEAN; CASE test OF TRUE : ; END_CASE; END_FUNCTION;
|
171
|
+
FUNCTION case_multiple_statement : BOOLEAN; CASE test OF TRUE : ; TRUE : ; END_CASE; END_FUNCTION;
|
172
|
+
FUNCTION case_multiple_shorthand_statement : BOOLEAN; CASE test OF TRUE, TRUE : ; END_CASE; END_FUNCTION;
|
173
|
+
FUNCTION case_otherwise_statement : BOOLEAN; CASE test OF TRUE : ; OTHERWISE : ; END_CASE; END_FUNCTION;
|
174
|
+
FUNCTION compound_statement : BOOLEAN; BEGIN ; END; END_FUNCTION;
|
175
|
+
FUNCTION escape_statement : BOOLEAN; ESCAPE; END_FUNCTION;
|
176
|
+
FUNCTION if_statement : BOOLEAN; IF TRUE THEN ; END_IF; END_FUNCTION;
|
177
|
+
FUNCTION if2_statement : BOOLEAN; IF TRUE THEN ; ; END_IF; END_FUNCTION;
|
178
|
+
FUNCTION if_else_statement : BOOLEAN; IF TRUE THEN ; ELSE ; END_IF; END_FUNCTION;
|
179
|
+
FUNCTION if2_else_statement : BOOLEAN; IF TRUE THEN ; ; ELSE ; END_IF; END_FUNCTION;
|
180
|
+
FUNCTION if_else2_statement : BOOLEAN; IF TRUE THEN ; ELSE ; ; END_IF; END_FUNCTION;
|
181
|
+
FUNCTION if2_else2_statement : BOOLEAN; IF TRUE THEN ; ; ELSE ; ; END_IF; END_FUNCTION;
|
182
|
+
FUNCTION null_statement : BOOLEAN; ; END_FUNCTION;
|
183
|
+
FUNCTION call_statement : BOOLEAN; empty_procedure; END_FUNCTION;
|
184
|
+
FUNCTION call_parameter_statement : BOOLEAN; empty_procedure(TRUE); END_FUNCTION;
|
185
|
+
FUNCTION call_parameter2_statement : BOOLEAN; empty_procedure(TRUE, TRUE); END_FUNCTION;
|
186
|
+
FUNCTION call_insert_statement : BOOLEAN; INSERT(TRUE); END_FUNCTION;
|
187
|
+
FUNCTION call_remove_statement : BOOLEAN; REMOVE(TRUE); END_FUNCTION;
|
188
|
+
FUNCTION repeat_statement : BOOLEAN; REPEAT; ; END_REPEAT; END_FUNCTION;
|
189
|
+
FUNCTION repeat_variable_statement : BOOLEAN; REPEAT test := 1 TO 9; ; END_REPEAT; END_FUNCTION;
|
190
|
+
FUNCTION repeat_variable_increment_statement : BOOLEAN; REPEAT test := 1 TO 9 BY 2; ; END_REPEAT; END_FUNCTION;
|
191
|
+
FUNCTION repeat_while_statement : BOOLEAN; REPEAT WHILE TRUE; ; END_REPEAT; END_FUNCTION;
|
192
|
+
FUNCTION repeat_until_statement : BOOLEAN; REPEAT UNTIL TRUE; ; END_REPEAT; END_FUNCTION;
|
193
|
+
FUNCTION return_statement : BOOLEAN; RETURN; END_FUNCTION;
|
194
|
+
FUNCTION return_expression_statement : BOOLEAN; RETURN (TRUE); END_FUNCTION;
|
195
|
+
FUNCTION skip_statement : BOOLEAN; SKIP; END_FUNCTION;
|
196
|
+
|
197
|
+
-- literal expressions
|
198
|
+
FUNCTION binary_expression : BOOLEAN; RETURN (%011110000111100001111000); END_FUNCTION;
|
199
|
+
FUNCTION integer_expression : BOOLEAN; RETURN (999); END_FUNCTION;
|
200
|
+
FUNCTION true_logical_expression : BOOLEAN; RETURN (TRUE); END_FUNCTION;
|
201
|
+
FUNCTION false_logical_expression : BOOLEAN; RETURN (FALSE); END_FUNCTION;
|
202
|
+
FUNCTION unknown_logical_expression : BOOLEAN; RETURN (UNKNOWN); END_FUNCTION;
|
203
|
+
FUNCTION real_expression : BOOLEAN; RETURN (999.999); END_FUNCTION;
|
204
|
+
FUNCTION simple_string_expression : BOOLEAN; RETURN ('xxx'); END_FUNCTION;
|
205
|
+
FUNCTION utf8_simple_string_expression : BOOLEAN; RETURN ('UTF8 test: Příliš žluťoučký kůň úpěl ďábelské ódy.'); END_FUNCTION;
|
206
|
+
FUNCTION encoded_string_expression : BOOLEAN; RETURN ("000000780000007800000078"); END_FUNCTION;
|
207
|
+
|
208
|
+
-- constant expressions
|
209
|
+
FUNCTION const_e_expression : BOOLEAN; RETURN (CONST_E); END_FUNCTION;
|
210
|
+
FUNCTION indeterminate_expression : BOOLEAN; RETURN (?); END_FUNCTION;
|
211
|
+
FUNCTION pi_expression : BOOLEAN; RETURN (PI); END_FUNCTION;
|
212
|
+
FUNCTION self_expression : BOOLEAN; RETURN (SELF); END_FUNCTION;
|
213
|
+
|
214
|
+
-- function expressions
|
215
|
+
FUNCTION abs_expression : BOOLEAN; RETURN (ABS(TRUE)); END_FUNCTION;
|
216
|
+
FUNCTION acos_expression : BOOLEAN; RETURN (ACOS(TRUE)); END_FUNCTION;
|
217
|
+
FUNCTION asin_expression : BOOLEAN; RETURN (ASIN(TRUE)); END_FUNCTION;
|
218
|
+
FUNCTION atan_expression : BOOLEAN; RETURN (ATAN(TRUE)); END_FUNCTION;
|
219
|
+
FUNCTION blength_expression : BOOLEAN; RETURN (BLENGTH(TRUE)); END_FUNCTION;
|
220
|
+
FUNCTION cos_expression : BOOLEAN; RETURN (COS(TRUE)); END_FUNCTION;
|
221
|
+
FUNCTION exists_expression : BOOLEAN; RETURN (EXISTS(TRUE)); END_FUNCTION;
|
222
|
+
FUNCTION exp_expression : BOOLEAN; RETURN (EXP(TRUE)); END_FUNCTION;
|
223
|
+
FUNCTION format_expression : BOOLEAN; RETURN (FORMAT(TRUE)); END_FUNCTION;
|
224
|
+
FUNCTION hibound_expression : BOOLEAN; RETURN (HIBOUND(TRUE)); END_FUNCTION;
|
225
|
+
FUNCTION hiindex_expression : BOOLEAN; RETURN (HIINDEX(TRUE)); END_FUNCTION;
|
226
|
+
FUNCTION length_expression : BOOLEAN; RETURN (LENGTH(TRUE)); END_FUNCTION;
|
227
|
+
FUNCTION lobound_expression : BOOLEAN; RETURN (LOBOUND(TRUE)); END_FUNCTION;
|
228
|
+
FUNCTION loindex_expression : BOOLEAN; RETURN (LOINDEX(TRUE)); END_FUNCTION;
|
229
|
+
FUNCTION log_expression : BOOLEAN; RETURN (LOG(TRUE)); END_FUNCTION;
|
230
|
+
FUNCTION log2_expression : BOOLEAN; RETURN (LOG2(TRUE)); END_FUNCTION;
|
231
|
+
FUNCTION log10_expression : BOOLEAN; RETURN (LOG10(TRUE)); END_FUNCTION;
|
232
|
+
FUNCTION nvl_expression : BOOLEAN; RETURN (NVL(TRUE)); END_FUNCTION;
|
233
|
+
FUNCTION odd_expression : BOOLEAN; RETURN (ODD(TRUE)); END_FUNCTION;
|
234
|
+
FUNCTION rolesof_expression : BOOLEAN; RETURN (ROLESOF(TRUE)); END_FUNCTION;
|
235
|
+
FUNCTION sin_expression : BOOLEAN; RETURN (SIN(TRUE)); END_FUNCTION;
|
236
|
+
FUNCTION sizeof_expression : BOOLEAN; RETURN (SIZEOF(TRUE)); END_FUNCTION;
|
237
|
+
FUNCTION sqrt_expression : BOOLEAN; RETURN (SQRT(TRUE)); END_FUNCTION;
|
238
|
+
FUNCTION tan_expression : BOOLEAN; RETURN (TAN(TRUE)); END_FUNCTION;
|
239
|
+
FUNCTION typeof_expression : BOOLEAN; RETURN (TYPEOF(TRUE)); END_FUNCTION;
|
240
|
+
FUNCTION usedin_expression : BOOLEAN; RETURN (USEDIN(TRUE)); END_FUNCTION;
|
241
|
+
FUNCTION value_expression : BOOLEAN; RETURN (VALUE(TRUE)); END_FUNCTION;
|
242
|
+
FUNCTION value_in_expression : BOOLEAN; RETURN (VALUE_IN(TRUE)); END_FUNCTION;
|
243
|
+
FUNCTION value_unique_expression : BOOLEAN; RETURN (VALUE_UNIQUE(TRUE)); END_FUNCTION;
|
244
|
+
|
245
|
+
-- operator expressions
|
246
|
+
FUNCTION plus_expression : BOOLEAN; RETURN (+4); END_FUNCTION;
|
247
|
+
FUNCTION plus_addition_expression : BOOLEAN; RETURN (+(4 + 2)); END_FUNCTION;
|
248
|
+
FUNCTION minus_expression : BOOLEAN; RETURN (-4); END_FUNCTION;
|
249
|
+
FUNCTION minus_addition_expression : BOOLEAN; RETURN (-(4 + 2)); END_FUNCTION;
|
250
|
+
FUNCTION addition_expression : BOOLEAN; RETURN (4 + 2); END_FUNCTION;
|
251
|
+
FUNCTION subtraction_expression : BOOLEAN; RETURN (4 - 2); END_FUNCTION;
|
252
|
+
FUNCTION multiplication_expression : BOOLEAN; RETURN (4 * 2); END_FUNCTION;
|
253
|
+
FUNCTION real_division_expression : BOOLEAN; RETURN (4 / 2); END_FUNCTION;
|
254
|
+
FUNCTION integer_division_expression : BOOLEAN; RETURN (4 DIV 2); END_FUNCTION;
|
255
|
+
FUNCTION modulo_expression : BOOLEAN; RETURN (4 MOD 2); END_FUNCTION;
|
256
|
+
FUNCTION exponentiation_expression : BOOLEAN; RETURN (4 ** 2); END_FUNCTION;
|
257
|
+
FUNCTION addition_addition_expression : BOOLEAN; RETURN (4 + 2 + 1); END_FUNCTION;
|
258
|
+
FUNCTION subtraction_subtraction_expression : BOOLEAN; RETURN (4 - 2 - 1); END_FUNCTION;
|
259
|
+
FUNCTION addition_subtraction_expression : BOOLEAN; RETURN (4 + 2 - 1); END_FUNCTION;
|
260
|
+
FUNCTION subtraction_addition_expression : BOOLEAN; RETURN (4 - 2 + 1); END_FUNCTION;
|
261
|
+
FUNCTION addition_multiplication_expression : BOOLEAN; RETURN (8 + 4 * 2); END_FUNCTION;
|
262
|
+
FUNCTION multiplication_addition_expression : BOOLEAN; RETURN (8 * 4 + 2); END_FUNCTION;
|
263
|
+
FUNCTION parenthesis_addition_multiplication_expression : BOOLEAN; RETURN ((8 + 4) * 2); END_FUNCTION;
|
264
|
+
FUNCTION multiplication_parenthesis_addition_expression : BOOLEAN; RETURN (8 * (4 + 2)); END_FUNCTION;
|
265
|
+
FUNCTION equal_expression : BOOLEAN; RETURN (4 = 2); END_FUNCTION;
|
266
|
+
FUNCTION not_equal_expression : BOOLEAN; RETURN (4 <> 2); END_FUNCTION;
|
267
|
+
FUNCTION instance_equal_expression : BOOLEAN; RETURN (4 :=: 2); END_FUNCTION;
|
268
|
+
FUNCTION instance_not_equal_expression : BOOLEAN; RETURN (4 :<>: 2); END_FUNCTION;
|
269
|
+
FUNCTION lt_expression : BOOLEAN; RETURN (4 < 2); END_FUNCTION;
|
270
|
+
FUNCTION gt_expression : BOOLEAN; RETURN (4 > 2); END_FUNCTION;
|
271
|
+
FUNCTION lte_expression : BOOLEAN; RETURN (4 <= 2); END_FUNCTION;
|
272
|
+
FUNCTION gte_expression : BOOLEAN; RETURN (4 >= 2); END_FUNCTION;
|
273
|
+
FUNCTION not_expression : BOOLEAN; RETURN (NOT TRUE); END_FUNCTION;
|
274
|
+
FUNCTION not_or_expression : BOOLEAN; RETURN (NOT (TRUE OR FALSE)); END_FUNCTION;
|
275
|
+
FUNCTION or_expression : BOOLEAN; RETURN (TRUE OR FALSE); END_FUNCTION;
|
276
|
+
FUNCTION and_expression : BOOLEAN; RETURN (TRUE AND FALSE); END_FUNCTION;
|
277
|
+
FUNCTION or_or_expression : BOOLEAN; RETURN (TRUE OR FALSE OR TRUE); END_FUNCTION;
|
278
|
+
FUNCTION and_and_expression : BOOLEAN; RETURN (TRUE AND FALSE AND TRUE); END_FUNCTION;
|
279
|
+
FUNCTION or_and_expression : BOOLEAN; RETURN (TRUE OR FALSE AND TRUE); END_FUNCTION;
|
280
|
+
FUNCTION and_or_expression : BOOLEAN; RETURN (TRUE AND FALSE OR TRUE); END_FUNCTION;
|
281
|
+
FUNCTION parenthesis_or_and_expression : BOOLEAN; RETURN ((TRUE OR FALSE) AND TRUE); END_FUNCTION;
|
282
|
+
FUNCTION and_parenthesis_or_expression : BOOLEAN; RETURN (TRUE AND (FALSE OR TRUE)); END_FUNCTION;
|
283
|
+
FUNCTION combine_expression : BOOLEAN; RETURN (test || test); END_FUNCTION;
|
284
|
+
FUNCTION in_expression : BOOLEAN; RETURN (TRUE IN [TRUE]); END_FUNCTION;
|
285
|
+
FUNCTION like_expression : BOOLEAN; RETURN ('xxx' LIKE 'xxx'); END_FUNCTION;
|
286
|
+
|
287
|
+
-- aggregate initializer expressions
|
288
|
+
FUNCTION aggregate_initializer_expression : BOOLEAN; RETURN ([4]); END_FUNCTION;
|
289
|
+
FUNCTION repeated_aggregate_initializer_expression : BOOLEAN; RETURN ([4:2]); END_FUNCTION;
|
290
|
+
FUNCTION complex_aggregate_initializer_expression : BOOLEAN; RETURN ([4 + 2]); END_FUNCTION;
|
291
|
+
FUNCTION complex_repeated_aggregate_initializer_expression : BOOLEAN; RETURN ([4 + 2:4 + 2]); END_FUNCTION;
|
292
|
+
|
293
|
+
-- function call or entity constructor expressions
|
294
|
+
FUNCTION call_expression : BOOLEAN; RETURN (parameter_function(TRUE)); END_FUNCTION;
|
295
|
+
|
296
|
+
-- reference expressions
|
297
|
+
FUNCTION simple_reference_expression : BOOLEAN; RETURN (simple_string_expression); END_FUNCTION;
|
298
|
+
FUNCTION attribute_reference_expression : BOOLEAN; RETURN (simple_string_expression.test); END_FUNCTION;
|
299
|
+
FUNCTION group_reference_expression : BOOLEAN; RETURN (simple_string_expression\test); END_FUNCTION;
|
300
|
+
FUNCTION index_reference_expression : BOOLEAN; RETURN (simple_string_expression[1]); END_FUNCTION;
|
301
|
+
FUNCTION index2_reference_expression : BOOLEAN; RETURN (simple_string_expression[1:9]); END_FUNCTION;
|
302
|
+
|
303
|
+
-- interval expressions
|
304
|
+
FUNCTION lt_lt_interval_expression : BOOLEAN; RETURN ({1 < 5 < 9}); END_FUNCTION;
|
305
|
+
FUNCTION lte_lt_interval_expression : BOOLEAN; RETURN ({1 <= 5 < 9}); END_FUNCTION;
|
306
|
+
FUNCTION lt_lte_interval_expression : BOOLEAN; RETURN ({1 < 5 <= 9}); END_FUNCTION;
|
307
|
+
FUNCTION lte_lte_interval_expression : BOOLEAN; RETURN ({1 <= 5 <= 9}); END_FUNCTION;
|
308
|
+
|
309
|
+
-- query expressions
|
310
|
+
FUNCTION query_expression : BOOLEAN; RETURN (QUERY(test <* test2 | TRUE)); END_FUNCTION;
|
311
|
+
END_SCHEMA;
|