expressir 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +3 -0
- data/demo.rb +16 -0
- data/expressir.gemspec +1 -0
- data/generate-parser.sh +29 -0
- data/lib/expressir/express_exp/generated/ExpressBaseVisitor.rb +779 -0
- data/lib/expressir/express_exp/generated/ExpressLexer.rb +841 -0
- data/lib/expressir/express_exp/generated/ExpressParser.rb +12136 -0
- data/lib/expressir/express_exp/generated/ExpressVisitor.rb +394 -0
- data/lib/expressir/express_exp/parser.rb +25 -0
- data/lib/expressir/express_exp/visitor.rb +2103 -0
- data/lib/expressir/model/constant.rb +15 -0
- data/lib/expressir/model/derived.rb +15 -0
- data/lib/expressir/model/entity.rb +29 -0
- data/lib/expressir/model/explicit.rb +15 -0
- data/lib/expressir/model/expressions/aggregate_element.rb +15 -0
- data/lib/expressir/model/expressions/attribute_qualifier.rb +13 -0
- data/lib/expressir/model/expressions/entity_constructor.rb +15 -0
- data/lib/expressir/model/expressions/expression.rb +15 -0
- data/lib/expressir/model/expressions/function_call.rb +15 -0
- data/lib/expressir/model/expressions/group_qualifier.rb +13 -0
- data/lib/expressir/model/expressions/index_qualifier.rb +15 -0
- data/lib/expressir/model/expressions/interval.rb +21 -0
- data/lib/expressir/model/expressions/qualified_ref.rb +15 -0
- data/lib/expressir/model/expressions/query.rb +17 -0
- data/lib/expressir/model/expressions/unknown.rb +8 -0
- data/lib/expressir/model/function.rb +23 -0
- data/lib/expressir/model/inverse.rb +15 -0
- data/lib/expressir/model/local.rb +15 -0
- data/lib/expressir/model/operators/addition.rb +8 -0
- data/lib/expressir/model/operators/and.rb +8 -0
- data/lib/expressir/model/operators/andor.rb +8 -0
- data/lib/expressir/model/operators/combine.rb +8 -0
- data/lib/expressir/model/operators/equal.rb +8 -0
- data/lib/expressir/model/operators/exponentiation.rb +8 -0
- data/lib/expressir/model/operators/greater_than.rb +8 -0
- data/lib/expressir/model/operators/greater_than_or_equal.rb +8 -0
- data/lib/expressir/model/operators/in.rb +8 -0
- data/lib/expressir/model/operators/instance_equal.rb +8 -0
- data/lib/expressir/model/operators/instance_not_equal.rb +8 -0
- data/lib/expressir/model/operators/integer_division.rb +8 -0
- data/lib/expressir/model/operators/less_than.rb +8 -0
- data/lib/expressir/model/operators/less_than_or_equal.rb +8 -0
- data/lib/expressir/model/operators/like.rb +8 -0
- data/lib/expressir/model/operators/modulo.rb +8 -0
- data/lib/expressir/model/operators/multiplication.rb +8 -0
- data/lib/expressir/model/operators/not.rb +8 -0
- data/lib/expressir/model/operators/not_equal.rb +8 -0
- data/lib/expressir/model/operators/oneof.rb +8 -0
- data/lib/expressir/model/operators/or.rb +8 -0
- data/lib/expressir/model/operators/real_division.rb +8 -0
- data/lib/expressir/model/operators/subtraction.rb +8 -0
- data/lib/expressir/model/operators/unary_minus.rb +8 -0
- data/lib/expressir/model/operators/unary_plus.rb +8 -0
- data/lib/expressir/model/operators/xor.rb +8 -0
- data/lib/expressir/model/parameter.rb +15 -0
- data/lib/expressir/model/procedure.rb +21 -0
- data/lib/expressir/model/ref.rb +11 -0
- data/lib/expressir/model/reference.rb +13 -0
- data/lib/expressir/model/renamed_ref.rb +13 -0
- data/lib/expressir/model/repository.rb +11 -0
- data/lib/expressir/model/rule.rb +23 -0
- data/lib/expressir/model/schema.rb +41 -0
- data/lib/expressir/model/statements/alias.rb +17 -0
- data/lib/expressir/model/statements/assignment.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/procedure_call.rb +15 -0
- data/lib/expressir/model/statements/repeat.rb +25 -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 +19 -0
- data/lib/expressir/model/type.rb +15 -0
- data/lib/expressir/model/types/aggregate.rb +15 -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 +13 -0
- data/lib/expressir/model/use.rb +13 -0
- data/lib/expressir/model/where.rb +13 -0
- data/lib/expressir/version.rb +1 -1
- data/original/examples/syntax/syntax.exp +295 -0
- data/spec/expressir/express_exp/ap233_spec.rb +22 -0
- data/spec/expressir/express_exp/syntax_spec.rb +2640 -0
- metadata +115 -5
@@ -0,0 +1,19 @@
|
|
1
|
+
module Expressir
|
2
|
+
module Model
|
3
|
+
class SubtypeConstraint
|
4
|
+
attr_accessor :id
|
5
|
+
attr_accessor :applies_to
|
6
|
+
attr_accessor :abstract_supertype
|
7
|
+
attr_accessor :total_over
|
8
|
+
attr_accessor :subtype_expression
|
9
|
+
|
10
|
+
def initialize(options = {})
|
11
|
+
@id = options[:id]
|
12
|
+
@applies_to = options[:applies_to]
|
13
|
+
@abstract_supertype = options[:abstract_supertype]
|
14
|
+
@total_over = options[:total_over]
|
15
|
+
@subtype_expression = options[:subtype_expression]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Expressir
|
2
|
+
module Model
|
3
|
+
module Types
|
4
|
+
class Array
|
5
|
+
attr_accessor :bound1
|
6
|
+
attr_accessor :bound2
|
7
|
+
attr_accessor :optional
|
8
|
+
attr_accessor :unique
|
9
|
+
attr_accessor :base_type
|
10
|
+
|
11
|
+
def initialize(options = {})
|
12
|
+
@bound1 = options[:bound1]
|
13
|
+
@bound2 = options[:bound2]
|
14
|
+
@optional = options[:optional]
|
15
|
+
@unique = options[:unique]
|
16
|
+
@base_type = options[:base_type]
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Expressir
|
2
|
+
module Model
|
3
|
+
module Types
|
4
|
+
class Bag
|
5
|
+
attr_accessor :bound1
|
6
|
+
attr_accessor :bound2
|
7
|
+
attr_accessor :base_type
|
8
|
+
|
9
|
+
def initialize(options = {})
|
10
|
+
@bound1 = options[:bound1]
|
11
|
+
@bound2 = options[:bound2]
|
12
|
+
@base_type = options[:base_type]
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Expressir
|
2
|
+
module Model
|
3
|
+
module Types
|
4
|
+
class Enumeration
|
5
|
+
attr_accessor :extensible
|
6
|
+
attr_accessor :list
|
7
|
+
attr_accessor :extension_type
|
8
|
+
attr_accessor :extension_list
|
9
|
+
|
10
|
+
def initialize(options = {})
|
11
|
+
@extensible = options[:extensible]
|
12
|
+
@list = options[:list]
|
13
|
+
@extension_type = options[:extension_type]
|
14
|
+
@extension_list = options[:extension_list]
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Expressir
|
2
|
+
module Model
|
3
|
+
module Types
|
4
|
+
class List
|
5
|
+
attr_accessor :bound1
|
6
|
+
attr_accessor :bound2
|
7
|
+
attr_accessor :unique
|
8
|
+
attr_accessor :base_type
|
9
|
+
|
10
|
+
def initialize(options = {})
|
11
|
+
@bound1 = options[:bound1]
|
12
|
+
@bound2 = options[:bound2]
|
13
|
+
@unique = options[:unique]
|
14
|
+
@base_type = options[:base_type]
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Expressir
|
2
|
+
module Model
|
3
|
+
module Types
|
4
|
+
class Select
|
5
|
+
attr_accessor :extensible
|
6
|
+
attr_accessor :generic_entity
|
7
|
+
attr_accessor :list
|
8
|
+
attr_accessor :extension_type
|
9
|
+
attr_accessor :extension_list
|
10
|
+
|
11
|
+
def initialize(options = {})
|
12
|
+
@extensible = options[:extensible]
|
13
|
+
@generic_entity = options[:generic_entity]
|
14
|
+
@list = options[:list]
|
15
|
+
@extension_type = options[:extension_type]
|
16
|
+
@extension_list = options[:extension_list]
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Expressir
|
2
|
+
module Model
|
3
|
+
module Types
|
4
|
+
class Set
|
5
|
+
attr_accessor :bound1
|
6
|
+
attr_accessor :bound2
|
7
|
+
attr_accessor :base_type
|
8
|
+
|
9
|
+
def initialize(options = {})
|
10
|
+
@bound1 = options[:bound1]
|
11
|
+
@bound2 = options[:bound2]
|
12
|
+
@base_type = options[:base_type]
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/expressir/version.rb
CHANGED
@@ -0,0 +1,295 @@
|
|
1
|
+
SCHEMA syntaxSchema 'version';
|
2
|
+
|
3
|
+
-- interfaces
|
4
|
+
USE FROM useInterface;
|
5
|
+
USE FROM useItemInterface (test);
|
6
|
+
USE FROM useItemRenameInterface (test AS test2);
|
7
|
+
REFERENCE FROM referenceInterface;
|
8
|
+
REFERENCE FROM referenceItemInterface (test);
|
9
|
+
REFERENCE FROM referenceItemRenameInterface (test AS test2);
|
10
|
+
|
11
|
+
CONSTANT
|
12
|
+
-- literals
|
13
|
+
binaryExpression : STRING := %011110000111100001111000;
|
14
|
+
integerExpression : STRING := 999;
|
15
|
+
logicalTrueExpression : STRING := TRUE;
|
16
|
+
logicalFalseExpression : STRING := FALSE;
|
17
|
+
logicalUnknownExpression : STRING := UNKNOWN;
|
18
|
+
realExpression : STRING := 999.999;
|
19
|
+
stringSimpleExpression : STRING := 'xxx';
|
20
|
+
stringEncodedExpression : STRING := "000000780000007800000078";
|
21
|
+
|
22
|
+
-- constants
|
23
|
+
constEExpression : STRING := CONST_E;
|
24
|
+
indeterminateExpression : STRING := ?;
|
25
|
+
piExpression : STRING := PI;
|
26
|
+
selfExpression : STRING := SELF;
|
27
|
+
|
28
|
+
-- functions
|
29
|
+
absExpression : STRING := ABS(TRUE);
|
30
|
+
acosExpression : STRING := ACOS(TRUE);
|
31
|
+
asinExpression : STRING := ASIN(TRUE);
|
32
|
+
atanExpression : STRING := ATAN(TRUE);
|
33
|
+
blengthExpression : STRING := BLENGTH(TRUE);
|
34
|
+
cosExpression : STRING := COS(TRUE);
|
35
|
+
existsExpression : STRING := EXISTS(TRUE);
|
36
|
+
expExpression : STRING := EXP(TRUE);
|
37
|
+
formatExpression : STRING := FORMAT(TRUE);
|
38
|
+
hiboundExpression : STRING := HIBOUND(TRUE);
|
39
|
+
hiindexExpression : STRING := HIINDEX(TRUE);
|
40
|
+
lengthExpression : STRING := LENGTH(TRUE);
|
41
|
+
loboundExpression : STRING := LOBOUND(TRUE);
|
42
|
+
loindexExpression : STRING := LOINDEX(TRUE);
|
43
|
+
logExpression : STRING := LOG(TRUE);
|
44
|
+
log2Expression : STRING := LOG2(TRUE);
|
45
|
+
log10Expression : STRING := LOG10(TRUE);
|
46
|
+
nvlExpression : STRING := NVL(TRUE);
|
47
|
+
oddExpression : STRING := ODD(TRUE);
|
48
|
+
rolesofExpression : STRING := ROLESOF(TRUE);
|
49
|
+
sinExpression : STRING := SIN(TRUE);
|
50
|
+
sizeofExpression : STRING := SIZEOF(TRUE);
|
51
|
+
sqrtExpression : STRING := SQRT(TRUE);
|
52
|
+
tanExpression : STRING := TAN(TRUE);
|
53
|
+
typeofExpression : STRING := TYPEOF(TRUE);
|
54
|
+
usedinExpression : STRING := USEDIN(TRUE);
|
55
|
+
valueExpression : STRING := VALUE(TRUE);
|
56
|
+
valueInExpression : STRING := VALUE_IN(TRUE);
|
57
|
+
valueUniqueExpression : STRING := VALUE_UNIQUE(TRUE);
|
58
|
+
|
59
|
+
-- operations
|
60
|
+
unaryPlusExpression : STRING := +4;
|
61
|
+
unaryMinusExpression : STRING := -4;
|
62
|
+
additionExpression : STRING := 4 + 2;
|
63
|
+
subtractionExpression : STRING := 4 - 2;
|
64
|
+
multiplicationExpression : STRING := 4 * 2;
|
65
|
+
realDivisionExpression : STRING := 4 / 2;
|
66
|
+
integerDivisionExpression : STRING := 4 DIV 2;
|
67
|
+
moduloExpression : STRING := 4 MOD 2;
|
68
|
+
exponentiationExpression : STRING := 4 ** 2;
|
69
|
+
additionAdditionExpression : STRING := 4 + 2 + 1;
|
70
|
+
subtractionSubtractionExpression : STRING := 4 - 2 - 1;
|
71
|
+
additionSubtractionExpression : STRING := 4 + 2 - 1;
|
72
|
+
subtractionAdditionExpression : STRING := 4 - 2 + 1;
|
73
|
+
additionMultiplicationExpression : STRING := 8 + 4 * 2;
|
74
|
+
multiplicationAdditionExpression : STRING := 8 * 4 + 2;
|
75
|
+
parenthesisAdditionMultiplicationExpression : STRING := (8 + 4) * 2;
|
76
|
+
multiplicationParenthesisAdditionExpression : STRING := 8 * (4 + 2);
|
77
|
+
equalExpression : STRING := 4 = 2;
|
78
|
+
notEqualExpression : STRING := 4 <> 2;
|
79
|
+
ltExpression : STRING := 4 < 2;
|
80
|
+
gtExpression : STRING := 4 > 2;
|
81
|
+
lteExpression : STRING := 4 <= 2;
|
82
|
+
gteExpression : STRING := 4 >= 2;
|
83
|
+
orExpression : STRING := TRUE OR FALSE;
|
84
|
+
andExpression : STRING := TRUE AND FALSE;
|
85
|
+
orOrExpression : STRING := TRUE OR FALSE OR TRUE;
|
86
|
+
andAndExpression : STRING := TRUE AND FALSE AND TRUE;
|
87
|
+
orAndExpression : STRING := TRUE OR FALSE AND TRUE;
|
88
|
+
andOrExpression : STRING := TRUE AND FALSE OR TRUE;
|
89
|
+
parenthesisOrAndExpression : STRING := (TRUE OR FALSE) AND TRUE;
|
90
|
+
andParenthesisOrExpression : STRING := TRUE AND (FALSE OR TRUE);
|
91
|
+
combineExpression : STRING := test || test;
|
92
|
+
inExpression : STRING := TRUE IN [TRUE];
|
93
|
+
likeExpression : STRING := 'xxx' LIKE 'xxx';
|
94
|
+
|
95
|
+
-- aggregate initializers
|
96
|
+
aggregateExpression : STRING := ['xxx'];
|
97
|
+
aggregateRepeatedExpression : STRING := ['xxx' : 2];
|
98
|
+
aggregateComplexExpression : STRING := [4 + 2];
|
99
|
+
aggregateComplexRepeatedExpression : STRING := [4 + 2 : 4 + 2];
|
100
|
+
|
101
|
+
-- entity constructors
|
102
|
+
entityConstructorExpression : STRING := explicitAttributeEntity(TRUE);
|
103
|
+
|
104
|
+
-- enumeration references
|
105
|
+
enumerationReferenceExpression : STRING := test;
|
106
|
+
attributeEnumerationReferenceExpression : STRING := test.test;
|
107
|
+
|
108
|
+
-- intervals
|
109
|
+
ltLtIntervalExpression : STRING := {1 < 5 < 9};
|
110
|
+
lteLtIntervalExpression : STRING := {1 <= 5 < 9};
|
111
|
+
ltLteIntervalExpression : STRING := {1 < 5 <= 9};
|
112
|
+
lteLteIntervalExpression : STRING := {1 <= 5 <= 9};
|
113
|
+
|
114
|
+
-- queries
|
115
|
+
queryExpression : STRING := QUERY(test <* test2 | TRUE);
|
116
|
+
END_CONSTANT;
|
117
|
+
|
118
|
+
-- types
|
119
|
+
TYPE integerType = INTEGER; END_TYPE;
|
120
|
+
TYPE integerWhereType = INTEGER; WHERE TRUE; END_TYPE;
|
121
|
+
TYPE integerWhereLabelType = INTEGER; WHERE WR1: TRUE; END_TYPE;
|
122
|
+
|
123
|
+
-- simple types
|
124
|
+
TYPE binaryType = BINARY; END_TYPE;
|
125
|
+
TYPE binaryWidthType = BINARY (3); END_TYPE;
|
126
|
+
TYPE binaryWidthFixedType = BINARY (3) FIXED; END_TYPE;
|
127
|
+
TYPE booleanType = BOOLEAN; END_TYPE;
|
128
|
+
TYPE integerType = INTEGER; END_TYPE;
|
129
|
+
TYPE integerWhereType = INTEGER; WHERE TRUE; END_TYPE;
|
130
|
+
TYPE integerWhereLabelType = INTEGER; WHERE WR1: TRUE; END_TYPE;
|
131
|
+
TYPE logicalType = LOGICAL; END_TYPE;
|
132
|
+
TYPE numberType = NUMBER; END_TYPE;
|
133
|
+
TYPE realType = REAL; END_TYPE;
|
134
|
+
TYPE realPrecisionType = REAL (3); END_TYPE;
|
135
|
+
TYPE stringType = STRING; END_TYPE;
|
136
|
+
TYPE stringWidthType = STRING (3); END_TYPE;
|
137
|
+
TYPE stringWidthFixedType = STRING (3) FIXED; END_TYPE;
|
138
|
+
|
139
|
+
-- aggregation types
|
140
|
+
TYPE arrayType = ARRAY [1:9] OF STRING; END_TYPE;
|
141
|
+
TYPE arrayOptionalType = ARRAY [1:9] OF OPTIONAL STRING; END_TYPE;
|
142
|
+
TYPE arrayUniqueType = ARRAY [1:9] OF UNIQUE STRING; END_TYPE;
|
143
|
+
TYPE arrayOptionalUniqueType = ARRAY [1:9] OF OPTIONAL UNIQUE STRING; END_TYPE;
|
144
|
+
TYPE bagType = BAG OF STRING; END_TYPE;
|
145
|
+
TYPE bagBoundType = BAG [1:9] OF STRING; END_TYPE;
|
146
|
+
TYPE listType = LIST OF STRING; END_TYPE;
|
147
|
+
TYPE listBoundType = LIST [1:9] OF STRING; END_TYPE;
|
148
|
+
TYPE listUniqueType = LIST OF UNIQUE STRING; END_TYPE;
|
149
|
+
TYPE listBoundUniqueType = LIST [1:9] OF UNIQUE STRING; END_TYPE;
|
150
|
+
TYPE setType = SET OF STRING; END_TYPE;
|
151
|
+
TYPE setBoundType = SET [1:9] OF STRING; END_TYPE;
|
152
|
+
|
153
|
+
-- constructed types
|
154
|
+
TYPE selectType = SELECT; END_TYPE;
|
155
|
+
TYPE selectExtensibleType = EXTENSIBLE SELECT; END_TYPE;
|
156
|
+
TYPE selectExtensibleGenericEntityType = EXTENSIBLE GENERIC_ENTITY SELECT; END_TYPE;
|
157
|
+
TYPE selectListType = SELECT (test); END_TYPE;
|
158
|
+
TYPE selectExtensionTypeRefType = SELECT BASED_ON selectType; END_TYPE;
|
159
|
+
TYPE selectExtensionTypeRefListType = SELECT BASED_ON selectType WITH (test); END_TYPE;
|
160
|
+
TYPE enumerationType = ENUMERATION; END_TYPE;
|
161
|
+
TYPE enumerationExtensibleType = EXTENSIBLE ENUMERATION; END_TYPE;
|
162
|
+
TYPE enumerationListType = ENUMERATION OF (test); END_TYPE;
|
163
|
+
TYPE enumerationExtensionTypeRefType = ENUMERATION BASED_ON enumerationType; END_TYPE;
|
164
|
+
TYPE enumerationExtensionTypeRefListType = ENUMERATION BASED_ON enumerationType WITH (test); END_TYPE;
|
165
|
+
|
166
|
+
-- entities
|
167
|
+
ENTITY emptyEntity; END_ENTITY;
|
168
|
+
ENTITY abstractEntity ABSTRACT; END_ENTITY;
|
169
|
+
ENTITY abstractSupertypeEntity ABSTRACT SUPERTYPE; END_ENTITY;
|
170
|
+
ENTITY abstractSupertypeConstraintEntity ABSTRACT SUPERTYPE OF (emptyEntity); END_ENTITY;
|
171
|
+
ENTITY supertypeConstraintEntity SUPERTYPE OF (emptyEntity); END_ENTITY;
|
172
|
+
ENTITY subtypeEntity SUBTYPE OF (emptyEntity); END_ENTITY;
|
173
|
+
ENTITY supertypeConstraintSubtypeEntity SUPERTYPE OF (emptyEntity) SUBTYPE OF (emptyEntity); END_ENTITY;
|
174
|
+
ENTITY explicitAttributeEntity; test : BOOLEAN; END_ENTITY;
|
175
|
+
ENTITY explicitAttributeOptionalEntity; test : OPTIONAL BOOLEAN; END_ENTITY;
|
176
|
+
ENTITY explicitAttributeMultipleEntity; test : BOOLEAN; test2 : BOOLEAN; END_ENTITY;
|
177
|
+
ENTITY explicitAttributeMultipleShorthandEntity; test, test2 : BOOLEAN; END_ENTITY;
|
178
|
+
ENTITY explicitAttributeRenamedEntity; SELF\explicitAttributeEntity.test RENAMED test2: BOOLEAN; END_ENTITY;
|
179
|
+
ENTITY derivedAttributeEntity; DERIVE test : BOOLEAN := TRUE; END_ENTITY;
|
180
|
+
ENTITY inverseAttributeEntity; INVERSE test : explicitAttributeEntity FOR test; END_ENTITY;
|
181
|
+
ENTITY inverseAttributeEntityEntity; INVERSE test : explicitAttributeEntity FOR explicitAttributeEntity.test; END_ENTITY;
|
182
|
+
ENTITY inverseAttributeSetEntity; INVERSE test : SET OF explicitAttributeEntity FOR test; END_ENTITY;
|
183
|
+
ENTITY inverseAttributeSetBoundEntity; INVERSE test : SET [1:9] OF explicitAttributeEntity FOR test; END_ENTITY;
|
184
|
+
ENTITY inverseAttributeBagEntity; INVERSE test : BAG OF explicitAttributeEntity FOR test; END_ENTITY;
|
185
|
+
ENTITY inverseAttributeBagBoundEntity; INVERSE test : BAG [1:9] OF explicitAttributeEntity FOR test; END_ENTITY;
|
186
|
+
ENTITY uniqueEntity; UNIQUE test; END_ENTITY;
|
187
|
+
ENTITY uniqueLabelEntity; UNIQUE UR1: test; END_ENTITY;
|
188
|
+
ENTITY uniqueQualifiedEntity; UNIQUE SELF\explicitAttributeEntity.test; END_ENTITY;
|
189
|
+
ENTITY uniqueLabelQualifiedEntity; UNIQUE UR1: SELF\explicitAttributeEntity.test; END_ENTITY;
|
190
|
+
ENTITY whereEntity; WHERE TRUE; END_ENTITY;
|
191
|
+
ENTITY whereLabelEntity; WHERE WR1: TRUE; END_ENTITY;
|
192
|
+
|
193
|
+
-- subtype constraints
|
194
|
+
SUBTYPE_CONSTRAINT emptySubtypeConstraint FOR emptyEntity; END_SUBTYPE_CONSTRAINT;
|
195
|
+
SUBTYPE_CONSTRAINT abstractSupertypeSubtypeConstraint FOR emptyEntity; ABSTRACT SUPERTYPE; END_SUBTYPE_CONSTRAINT;
|
196
|
+
SUBTYPE_CONSTRAINT totalOverSubtypeConstraint FOR emptyEntity; TOTAL_OVER (a); END_SUBTYPE_CONSTRAINT;
|
197
|
+
SUBTYPE_CONSTRAINT supertypeExpressionSubtypeConstraint FOR emptyEntity; a; END_SUBTYPE_CONSTRAINT;
|
198
|
+
SUBTYPE_CONSTRAINT supertypeExpressionAndorSubtypeConstraint FOR emptyEntity; a ANDOR b; END_SUBTYPE_CONSTRAINT;
|
199
|
+
SUBTYPE_CONSTRAINT supertypeExpressionAndSubtypeConstraint FOR emptyEntity; a AND b; END_SUBTYPE_CONSTRAINT;
|
200
|
+
SUBTYPE_CONSTRAINT supertypeExpressionAndorAndSubtypeConstraint FOR emptyEntity; a ANDOR b AND c; END_SUBTYPE_CONSTRAINT;
|
201
|
+
SUBTYPE_CONSTRAINT supertypeExpressionAndAndorSubtypeConstraint FOR emptyEntity; a AND b ANDOR c; END_SUBTYPE_CONSTRAINT;
|
202
|
+
SUBTYPE_CONSTRAINT supertypeExpressionParenthesisAndorAndSubtypeConstraint FOR emptyEntity; (a ANDOR b) AND c; END_SUBTYPE_CONSTRAINT;
|
203
|
+
SUBTYPE_CONSTRAINT supertypeExpressionAndParenthesisAndorSubtypeConstraint FOR emptyEntity; a AND (b ANDOR c); END_SUBTYPE_CONSTRAINT;
|
204
|
+
SUBTYPE_CONSTRAINT supertypeExpressionOneofSubtypeConstraint FOR emptyEntity; ONEOF(a, b); END_SUBTYPE_CONSTRAINT;
|
205
|
+
SUBTYPE_CONSTRAINT supertypeExpressionAndOneofSubtypeConstraint FOR emptyEntity; a AND ONEOF(b, c); END_SUBTYPE_CONSTRAINT;
|
206
|
+
SUBTYPE_CONSTRAINT supertypeExpressionAndorOneofSubtypeConstraint FOR emptyEntity; a ANDOR ONEOF(b, c); END_SUBTYPE_CONSTRAINT;
|
207
|
+
SUBTYPE_CONSTRAINT supertypeExpressionOneofAndSubtypeConstraint FOR emptyEntity; ONEOF(a, b) AND c; END_SUBTYPE_CONSTRAINT;
|
208
|
+
SUBTYPE_CONSTRAINT supertypeExpressionOneofAndorSubtypeConstraint FOR emptyEntity; ONEOF(a, b) ANDOR c; END_SUBTYPE_CONSTRAINT;
|
209
|
+
SUBTYPE_CONSTRAINT supertypeExpressionOneofAndOneofSubtypeConstraint FOR emptyEntity; ONEOF(a, b) AND ONEOF(c, d); END_SUBTYPE_CONSTRAINT;
|
210
|
+
SUBTYPE_CONSTRAINT supertypeExpressionOneofAndorOneofSubtypeConstraint FOR emptyEntity; ONEOF(a, b) ANDOR ONEOF(c, d); END_SUBTYPE_CONSTRAINT;
|
211
|
+
|
212
|
+
-- functions
|
213
|
+
FUNCTION emptyFunction : BOOLEAN; ; END_FUNCTION;
|
214
|
+
FUNCTION parameterFunction (test : BOOLEAN) : BOOLEAN; ; END_FUNCTION;
|
215
|
+
FUNCTION multipleParameterFunction (test : BOOLEAN; test2 : BOOLEAN) : BOOLEAN; ; END_FUNCTION;
|
216
|
+
FUNCTION multipleShorthandParameterFunction (test, test2 : BOOLEAN) : BOOLEAN; ; END_FUNCTION;
|
217
|
+
FUNCTION typeFunction : BOOLEAN; TYPE integerType = INTEGER; END_TYPE; ; END_FUNCTION;
|
218
|
+
FUNCTION constantFunction : BOOLEAN; CONSTANT test : STRING := 'xxx'; END_CONSTANT; ; END_FUNCTION;
|
219
|
+
FUNCTION multipleConstantFunction : BOOLEAN; CONSTANT test : STRING := 'xxx'; test2 : STRING := 'xxx'; END_CONSTANT; ; END_FUNCTION;
|
220
|
+
FUNCTION localFunction : BOOLEAN; LOCAL test : STRING; END_LOCAL; ; END_FUNCTION;
|
221
|
+
FUNCTION multipleLocalFunction : BOOLEAN; LOCAL test : STRING; test2 : STRING; END_LOCAL; ; END_FUNCTION;
|
222
|
+
FUNCTION multipleShorthandLocalFunction : BOOLEAN; LOCAL test, test2 : STRING; END_LOCAL; ; END_FUNCTION;
|
223
|
+
FUNCTION localExpressionFunction : BOOLEAN; LOCAL test : STRING := 'xxx'; END_LOCAL; ; END_FUNCTION;
|
224
|
+
FUNCTION multipleLocalExpressionFunction : BOOLEAN; LOCAL test : STRING := 'xxx'; test2 : STRING := 'xxx'; END_LOCAL; ; END_FUNCTION;
|
225
|
+
FUNCTION multipleShorthandLocalExpressionFunction : BOOLEAN; LOCAL test, test2 : STRING := 'xxx'; END_LOCAL; ; END_FUNCTION;
|
226
|
+
|
227
|
+
-- procedures
|
228
|
+
PROCEDURE emptyProcedure; END_PROCEDURE;
|
229
|
+
PROCEDURE parameterProcedure (test : BOOLEAN); END_PROCEDURE;
|
230
|
+
PROCEDURE multipleParameterProcedure (test : BOOLEAN; test2 : BOOLEAN); END_PROCEDURE;
|
231
|
+
PROCEDURE multipleShorthandParameterProcedure (test, test2 : BOOLEAN); END_PROCEDURE;
|
232
|
+
PROCEDURE variableParameterProcedure (VAR test : BOOLEAN); END_PROCEDURE;
|
233
|
+
PROCEDURE multipleVariableParameterProcedure (VAR test : BOOLEAN; test2 : BOOLEAN); END_PROCEDURE;
|
234
|
+
PROCEDURE multipleVariableParameter2Procedure (test : BOOLEAN; VAR test2 : BOOLEAN); END_PROCEDURE;
|
235
|
+
PROCEDURE multipleShorthandVariableParameterProcedure (VAR test, test2 : BOOLEAN); END_PROCEDURE;
|
236
|
+
PROCEDURE typeProcedure; TYPE integerType = INTEGER; END_TYPE; END_PROCEDURE;
|
237
|
+
PROCEDURE constantProcedure; CONSTANT test : STRING := 'xxx'; END_CONSTANT; END_PROCEDURE;
|
238
|
+
PROCEDURE multipleConstantProcedure; CONSTANT test : STRING := 'xxx'; test2 : STRING := 'xxx'; END_CONSTANT; END_PROCEDURE;
|
239
|
+
PROCEDURE localProcedure; LOCAL test : STRING; END_LOCAL; END_PROCEDURE;
|
240
|
+
PROCEDURE multipleLocalProcedure; LOCAL test : STRING; test2 : STRING; END_LOCAL; END_PROCEDURE;
|
241
|
+
PROCEDURE multipleShorthandLocalProcedure; LOCAL test, test2 : STRING; END_LOCAL; END_PROCEDURE;
|
242
|
+
PROCEDURE localExpressionProcedure; LOCAL test : STRING := 'xxx'; END_LOCAL; END_PROCEDURE;
|
243
|
+
PROCEDURE multipleLocalExpressionProcedure; LOCAL test : STRING := 'xxx'; test2 : STRING := 'xxx'; END_LOCAL; END_PROCEDURE;
|
244
|
+
PROCEDURE multipleShorthandLocalExpressionProcedure; LOCAL test, test2 : STRING := 'xxx'; END_LOCAL; END_PROCEDURE;
|
245
|
+
|
246
|
+
-- rules
|
247
|
+
RULE emptyRule FOR (emptyEntity); WHERE TRUE; END_RULE;
|
248
|
+
RULE typeRule FOR (emptyEntity); TYPE integerType = INTEGER; END_TYPE; WHERE TRUE; END_RULE;
|
249
|
+
RULE constantRule FOR (emptyEntity); CONSTANT test : STRING := 'xxx'; END_CONSTANT; WHERE TRUE; END_RULE;
|
250
|
+
RULE multipleConstantRule FOR (emptyEntity); CONSTANT test : STRING := 'xxx'; test2 : STRING := 'xxx'; END_CONSTANT; WHERE TRUE; END_RULE;
|
251
|
+
RULE localRule FOR (emptyEntity); LOCAL test : STRING; END_LOCAL; WHERE TRUE; END_RULE;
|
252
|
+
RULE multipleLocalRule FOR (emptyEntity); LOCAL test : STRING; test2 : STRING; END_LOCAL; WHERE TRUE; END_RULE;
|
253
|
+
RULE multipleShorthandLocalRule FOR (emptyEntity); LOCAL test, test2 : STRING; END_LOCAL; WHERE TRUE; END_RULE;
|
254
|
+
RULE localExpressionRule FOR (emptyEntity); LOCAL test : STRING := 'xxx'; END_LOCAL; WHERE TRUE; END_RULE;
|
255
|
+
RULE multipleLocalExpressionRule FOR (emptyEntity); LOCAL test : STRING := 'xxx'; test2 : STRING := 'xxx'; END_LOCAL; WHERE TRUE; END_RULE;
|
256
|
+
RULE multipleShorthandLocalExpressionRule FOR (emptyEntity); LOCAL test, test2 : STRING := 'xxx'; END_LOCAL; WHERE TRUE; END_RULE;
|
257
|
+
|
258
|
+
-- statements
|
259
|
+
FUNCTION aliasStatement : BOOLEAN; ALIAS test FOR test; ; END_ALIAS; END_FUNCTION;
|
260
|
+
FUNCTION aliasAttributeStatement : BOOLEAN; ALIAS test FOR test.test; ; END_ALIAS; END_FUNCTION;
|
261
|
+
FUNCTION aliasGroupStatement : BOOLEAN; ALIAS test FOR test\test; ; END_ALIAS; END_FUNCTION;
|
262
|
+
FUNCTION aliasIndexStatement : BOOLEAN; ALIAS test FOR test[1]; ; END_ALIAS; END_FUNCTION;
|
263
|
+
FUNCTION aliasIndex2Statement : BOOLEAN; ALIAS test FOR test[1:9]; ; END_ALIAS; END_FUNCTION;
|
264
|
+
FUNCTION assignmentStatement : BOOLEAN; test := TRUE; END_FUNCTION;
|
265
|
+
FUNCTION assignmentAttributeStatement : BOOLEAN; test.test := TRUE; END_FUNCTION;
|
266
|
+
FUNCTION assignmentGroupStatement : BOOLEAN; test\test := TRUE; END_FUNCTION;
|
267
|
+
FUNCTION assignmentIndexStatement : BOOLEAN; test[1] := TRUE; END_FUNCTION;
|
268
|
+
FUNCTION assignmentIndex2Statement : BOOLEAN; test[1:9] := TRUE; END_FUNCTION;
|
269
|
+
FUNCTION caseStatement : BOOLEAN; CASE test OF TRUE : ; END_CASE; END_FUNCTION;
|
270
|
+
FUNCTION caseMultipleStatement : BOOLEAN; CASE test OF TRUE : ; TRUE : ; END_CASE; END_FUNCTION;
|
271
|
+
FUNCTION caseMultipleShorthandStatement : BOOLEAN; CASE test OF TRUE, TRUE : ; END_CASE; END_FUNCTION;
|
272
|
+
FUNCTION caseOtherwiseStatement : BOOLEAN; CASE test OF TRUE : ; OTHERWISE : ; END_CASE; END_FUNCTION;
|
273
|
+
FUNCTION compoundStatement : BOOLEAN; BEGIN ; END; END_FUNCTION;
|
274
|
+
FUNCTION escapeStatement : BOOLEAN; ESCAPE; END_FUNCTION;
|
275
|
+
FUNCTION ifStatement : BOOLEAN; IF TRUE THEN ; END_IF; END_FUNCTION;
|
276
|
+
FUNCTION if2Statement : BOOLEAN; IF TRUE THEN ; ; END_IF; END_FUNCTION;
|
277
|
+
FUNCTION ifElseStatement : BOOLEAN; IF TRUE THEN ; ELSE ; END_IF; END_FUNCTION;
|
278
|
+
FUNCTION if2ElseStatement : BOOLEAN; IF TRUE THEN ; ; ELSE ; END_IF; END_FUNCTION;
|
279
|
+
FUNCTION ifElse2Statement : BOOLEAN; IF TRUE THEN ; ELSE ; ; END_IF; END_FUNCTION;
|
280
|
+
FUNCTION if2Else2Statement : BOOLEAN; IF TRUE THEN ; ; ELSE ; ; END_IF; END_FUNCTION;
|
281
|
+
FUNCTION nullStatement : BOOLEAN; ; END_FUNCTION;
|
282
|
+
FUNCTION procedureCallStatement : BOOLEAN; emptyProcedure; END_FUNCTION;
|
283
|
+
FUNCTION procedureCallParameterStatement : BOOLEAN; emptyProcedure(true); END_FUNCTION;
|
284
|
+
FUNCTION procedureCallParameter2Statement : BOOLEAN; emptyProcedure(true, true); END_FUNCTION;
|
285
|
+
FUNCTION procedureCallInsertStatement : BOOLEAN; INSERT; END_FUNCTION;
|
286
|
+
FUNCTION procedureCallRemoveStatement : BOOLEAN; REMOVE; END_FUNCTION;
|
287
|
+
FUNCTION repeatStatement : BOOLEAN; REPEAT; ; END_REPEAT; END_FUNCTION;
|
288
|
+
FUNCTION repeatVariableStatement : BOOLEAN; REPEAT test := 1 TO 9; ; END_REPEAT; END_FUNCTION;
|
289
|
+
FUNCTION repeatVariableIncrementStatement : BOOLEAN; REPEAT test := 1 TO 9 BY 2; ; END_REPEAT; END_FUNCTION;
|
290
|
+
FUNCTION repeatWhileStatement : BOOLEAN; REPEAT WHILE TRUE; ; END_REPEAT; END_FUNCTION;
|
291
|
+
FUNCTION repeatUntilStatement : BOOLEAN; REPEAT UNTIL TRUE; ; END_REPEAT; END_FUNCTION;
|
292
|
+
FUNCTION returnStatement : BOOLEAN; RETURN (TRUE); END_FUNCTION;
|
293
|
+
FUNCTION skipStatement : BOOLEAN; SKIP; END_FUNCTION;
|
294
|
+
|
295
|
+
END_SCHEMA;
|