expressir 0.2.0 → 0.2.1
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.
- checksums.yaml +4 -4
- data/demo.rb +3 -1
- data/expressir.gemspec +1 -1
- data/lib/expressir/express.rb +0 -1
- data/lib/expressir/express_exp/generated/ExpressLexer.rb +235 -232
- data/lib/expressir/express_exp/generated/ExpressParser.rb +1461 -1435
- data/lib/expressir/express_exp/parser.rb +8 -3
- data/lib/expressir/express_exp/visitor.rb +167 -136
- data/lib/expressir/model.rb +91 -0
- data/lib/expressir/model/constant.rb +2 -0
- data/lib/expressir/model/derived.rb +4 -0
- data/lib/expressir/model/entity.rb +12 -0
- data/lib/expressir/model/enumeration_item.rb +13 -0
- data/lib/expressir/model/explicit.rb +4 -0
- data/lib/expressir/model/expressions/aggregate_initializer.rb +13 -0
- data/lib/expressir/model/expressions/query.rb +8 -0
- data/lib/expressir/model/function.rb +31 -0
- data/lib/expressir/model/inverse.rb +4 -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 +13 -0
- data/lib/expressir/model/literals/real.rb +13 -0
- data/lib/expressir/model/literals/string.rb +15 -0
- data/lib/expressir/model/local.rb +2 -0
- data/lib/expressir/model/parameter.rb +2 -0
- data/lib/expressir/model/procedure.rb +31 -0
- data/lib/expressir/model/repository.rb +6 -0
- data/lib/expressir/model/rule.rb +31 -0
- data/lib/expressir/model/schema.rb +10 -0
- data/lib/expressir/model/statements/alias.rb +8 -0
- data/lib/expressir/model/statements/case_action.rb +2 -2
- data/lib/expressir/model/statements/if.rb +2 -2
- data/lib/expressir/model/statements/repeat.rb +10 -2
- data/lib/expressir/model/subtype_constraint.rb +2 -0
- data/lib/expressir/model/type.rb +8 -0
- data/lib/expressir/model/types/aggregate.rb +2 -0
- data/lib/expressir/model/types/enumeration.rb +4 -4
- data/lib/expressir/model/types/generic.rb +2 -0
- data/lib/expressir/model/types/generic_entity.rb +2 -0
- data/lib/expressir/model/types/select.rb +4 -4
- data/lib/expressir/model/unique.rb +2 -0
- data/lib/expressir/model/where.rb +2 -0
- data/lib/expressir/version.rb +1 -1
- data/original/examples/syntax/remark.exp +127 -0
- data/original/examples/syntax/syntax.exp +15 -10
- data/spec/expressir/express_exp/remark_spec.rb +301 -0
- data/spec/expressir/express_exp/syntax_spec.rb +659 -307
- metadata +15 -6
- data/lib/expressir/model/expressions/unknown.rb +0 -8
data/lib/expressir/model/rule.rb
CHANGED
@@ -8,6 +8,7 @@ module Expressir
|
|
8
8
|
attr_accessor :locals
|
9
9
|
attr_accessor :where
|
10
10
|
attr_accessor :statements
|
11
|
+
attr_accessor :remarks
|
11
12
|
|
12
13
|
def initialize(options = {})
|
13
14
|
@id = options[:id]
|
@@ -17,6 +18,36 @@ module Expressir
|
|
17
18
|
@locals = options[:locals]
|
18
19
|
@where = options[:where]
|
19
20
|
@statements = options[:statements]
|
21
|
+
@remarks = options[:remarks]
|
22
|
+
end
|
23
|
+
|
24
|
+
def types
|
25
|
+
@declarations.select{|x| x.instance_of? Expressir::Model::Type}
|
26
|
+
end
|
27
|
+
|
28
|
+
def entities
|
29
|
+
@declarations.select{|x| x.instance_of? Expressir::Model::Entity}
|
30
|
+
end
|
31
|
+
|
32
|
+
def subtype_constraints
|
33
|
+
@declarations.select{|x| x.instance_of? Expressir::Model::SubtypeConstraint}
|
34
|
+
end
|
35
|
+
|
36
|
+
def functions
|
37
|
+
@declarations.select{|x| x.instance_of? Expressir::Model::Function}
|
38
|
+
end
|
39
|
+
|
40
|
+
def procedures
|
41
|
+
@declarations.select{|x| x.instance_of? Expressir::Model::Procedure}
|
42
|
+
end
|
43
|
+
|
44
|
+
def scope_items
|
45
|
+
items = []
|
46
|
+
items.push(*@declarations) if @declarations
|
47
|
+
items.push(*@constants) if @constants
|
48
|
+
items.push(*@locals) if @locals
|
49
|
+
items.push(*@where) if @where
|
50
|
+
items
|
20
51
|
end
|
21
52
|
end
|
22
53
|
end
|
@@ -7,6 +7,7 @@ module Expressir
|
|
7
7
|
attr_accessor :constants
|
8
8
|
attr_accessor :declarations
|
9
9
|
attr_accessor :rules
|
10
|
+
attr_accessor :remarks
|
10
11
|
|
11
12
|
def initialize(options = {})
|
12
13
|
@id = options[:id]
|
@@ -15,6 +16,7 @@ module Expressir
|
|
15
16
|
@constants = options[:constants]
|
16
17
|
@declarations = options[:declarations]
|
17
18
|
@rules = options[:rules]
|
19
|
+
@remarks = options[:remarks]
|
18
20
|
end
|
19
21
|
|
20
22
|
def types
|
@@ -36,6 +38,14 @@ module Expressir
|
|
36
38
|
def procedures
|
37
39
|
@declarations.select{|x| x.instance_of? Expressir::Model::Procedure}
|
38
40
|
end
|
41
|
+
|
42
|
+
def scope_items
|
43
|
+
items = []
|
44
|
+
items.push(*@constants) if @constants
|
45
|
+
items.push(*@declarations) if @declarations
|
46
|
+
items.push(*@rules) if @rules
|
47
|
+
items
|
48
|
+
end
|
39
49
|
end
|
40
50
|
end
|
41
51
|
end
|
@@ -5,11 +5,19 @@ module Expressir
|
|
5
5
|
attr_accessor :id
|
6
6
|
attr_accessor :expression
|
7
7
|
attr_accessor :statements
|
8
|
+
attr_accessor :remarks
|
8
9
|
|
9
10
|
def initialize(options = {})
|
10
11
|
@id = options[:id]
|
11
12
|
@expression = options[:expression]
|
12
13
|
@statements = options[:statements]
|
14
|
+
@remarks = options[:remarks]
|
15
|
+
end
|
16
|
+
|
17
|
+
def scope_items
|
18
|
+
items = []
|
19
|
+
items.push(self)
|
20
|
+
items
|
13
21
|
end
|
14
22
|
end
|
15
23
|
end
|
@@ -2,11 +2,11 @@ module Expressir
|
|
2
2
|
module Model
|
3
3
|
module Statements
|
4
4
|
class CaseAction
|
5
|
-
attr_accessor :
|
5
|
+
attr_accessor :expression
|
6
6
|
attr_accessor :statement
|
7
7
|
|
8
8
|
def initialize(options = {})
|
9
|
-
@
|
9
|
+
@expression = options[:expression]
|
10
10
|
@statement = options[:statement]
|
11
11
|
end
|
12
12
|
end
|
@@ -2,12 +2,12 @@ module Expressir
|
|
2
2
|
module Model
|
3
3
|
module Statements
|
4
4
|
class If
|
5
|
-
attr_accessor :
|
5
|
+
attr_accessor :expression
|
6
6
|
attr_accessor :statements
|
7
7
|
attr_accessor :else_statements
|
8
8
|
|
9
9
|
def initialize(options = {})
|
10
|
-
@
|
10
|
+
@expression = options[:expression]
|
11
11
|
@statements = options[:statements]
|
12
12
|
@else_statements = options[:else_statements]
|
13
13
|
end
|
@@ -2,22 +2,30 @@ module Expressir
|
|
2
2
|
module Model
|
3
3
|
module Statements
|
4
4
|
class Repeat
|
5
|
-
attr_accessor :
|
5
|
+
attr_accessor :id
|
6
6
|
attr_accessor :bound1
|
7
7
|
attr_accessor :bound2
|
8
8
|
attr_accessor :increment
|
9
9
|
attr_accessor :while_expression
|
10
10
|
attr_accessor :until_expression
|
11
11
|
attr_accessor :statements
|
12
|
+
attr_accessor :remarks
|
12
13
|
|
13
14
|
def initialize(options = {})
|
14
|
-
@
|
15
|
+
@id = options[:id]
|
15
16
|
@bound1 = options[:bound1]
|
16
17
|
@bound2 = options[:bound2]
|
17
18
|
@increment = options[:increment]
|
18
19
|
@while_expression = options[:while_expression]
|
19
20
|
@until_expression = options[:until_expression]
|
20
21
|
@statements = options[:statements]
|
22
|
+
@remarks = options[:remarks]
|
23
|
+
end
|
24
|
+
|
25
|
+
def scope_items
|
26
|
+
items = []
|
27
|
+
items.push(self)
|
28
|
+
items
|
21
29
|
end
|
22
30
|
end
|
23
31
|
end
|
@@ -6,6 +6,7 @@ module Expressir
|
|
6
6
|
attr_accessor :abstract_supertype
|
7
7
|
attr_accessor :total_over
|
8
8
|
attr_accessor :subtype_expression
|
9
|
+
attr_accessor :remarks
|
9
10
|
|
10
11
|
def initialize(options = {})
|
11
12
|
@id = options[:id]
|
@@ -13,6 +14,7 @@ module Expressir
|
|
13
14
|
@abstract_supertype = options[:abstract_supertype]
|
14
15
|
@total_over = options[:total_over]
|
15
16
|
@subtype_expression = options[:subtype_expression]
|
17
|
+
@remarks = options[:remarks]
|
16
18
|
end
|
17
19
|
end
|
18
20
|
end
|
data/lib/expressir/model/type.rb
CHANGED
@@ -4,11 +4,19 @@ module Expressir
|
|
4
4
|
attr_accessor :id
|
5
5
|
attr_accessor :type
|
6
6
|
attr_accessor :where
|
7
|
+
attr_accessor :remarks
|
7
8
|
|
8
9
|
def initialize(options = {})
|
9
10
|
@id = options[:id]
|
10
11
|
@type = options[:type]
|
11
12
|
@where = options[:where]
|
13
|
+
@remarks = options[:remarks]
|
14
|
+
end
|
15
|
+
|
16
|
+
def scope_items
|
17
|
+
items = []
|
18
|
+
items.push(*@where) if @where
|
19
|
+
items
|
12
20
|
end
|
13
21
|
end
|
14
22
|
end
|
@@ -4,10 +4,12 @@ module Expressir
|
|
4
4
|
class Aggregate
|
5
5
|
attr_accessor :label
|
6
6
|
attr_accessor :base_type
|
7
|
+
attr_accessor :remarks
|
7
8
|
|
8
9
|
def initialize(options = {})
|
9
10
|
@label = options[:label]
|
10
11
|
@base_type = options[:base_type]
|
12
|
+
@remarks = options[:remarks]
|
11
13
|
end
|
12
14
|
end
|
13
15
|
end
|
@@ -3,15 +3,15 @@ module Expressir
|
|
3
3
|
module Types
|
4
4
|
class Enumeration
|
5
5
|
attr_accessor :extensible
|
6
|
-
attr_accessor :
|
6
|
+
attr_accessor :items
|
7
7
|
attr_accessor :extension_type
|
8
|
-
attr_accessor :
|
8
|
+
attr_accessor :extension_items
|
9
9
|
|
10
10
|
def initialize(options = {})
|
11
11
|
@extensible = options[:extensible]
|
12
|
-
@
|
12
|
+
@items = options[:items]
|
13
13
|
@extension_type = options[:extension_type]
|
14
|
-
@
|
14
|
+
@extension_items = options[:extension_items]
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
@@ -4,16 +4,16 @@ module Expressir
|
|
4
4
|
class Select
|
5
5
|
attr_accessor :extensible
|
6
6
|
attr_accessor :generic_entity
|
7
|
-
attr_accessor :
|
7
|
+
attr_accessor :items
|
8
8
|
attr_accessor :extension_type
|
9
|
-
attr_accessor :
|
9
|
+
attr_accessor :extension_items
|
10
10
|
|
11
11
|
def initialize(options = {})
|
12
12
|
@extensible = options[:extensible]
|
13
13
|
@generic_entity = options[:generic_entity]
|
14
|
-
@
|
14
|
+
@items = options[:items]
|
15
15
|
@extension_type = options[:extension_type]
|
16
|
-
@
|
16
|
+
@extension_items = options[:extension_items]
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
data/lib/expressir/version.rb
CHANGED
@@ -0,0 +1,127 @@
|
|
1
|
+
--"remarkSchema" universal scope - schema before
|
2
|
+
|
3
|
+
SCHEMA remarkSchema;
|
4
|
+
|
5
|
+
CONSTANT remarkConstant : STRING := 'xxx'; END_CONSTANT;
|
6
|
+
TYPE remarkType = STRING; END_TYPE;
|
7
|
+
ENTITY remarkEntity;
|
8
|
+
remarkExplicit : STRING;
|
9
|
+
DERIVE remarkDerived : STRING := 'xxx';
|
10
|
+
INVERSE remarkInverse : remarkEntity FOR remarkExplicit;
|
11
|
+
UNIQUE remarkUnique : remarkExplicit;
|
12
|
+
WHERE remarkWhere : TRUE;
|
13
|
+
--"remarkExplicit" entity scope - entity explicit
|
14
|
+
--"remarkDerived" entity scope - entity derived
|
15
|
+
--"remarkInverse" entity scope - entity inverse
|
16
|
+
--"remarkUnique" entity scope - entity unique
|
17
|
+
--"remarkWhere" entity scope - entity where
|
18
|
+
END_ENTITY;
|
19
|
+
SUBTYPE_CONSTRAINT remarkSubtypeConstraint FOR remarkEntity; END_SUBTYPE_CONSTRAINT;
|
20
|
+
FUNCTION remarkFunction (remarkParameter : STRING) : BOOLEAN;
|
21
|
+
TYPE remarkType = STRING; END_TYPE;
|
22
|
+
CONSTANT remarkConstant : STRING := 'xxx'; END_CONSTANT;
|
23
|
+
LOCAL remarkLocal : STRING; END_LOCAL;
|
24
|
+
ALIAS remarkAlias FOR remarkLocal; ;
|
25
|
+
--"remarkAlias" function alias scope - function alias
|
26
|
+
END_ALIAS;
|
27
|
+
REPEAT remarkRepeat := 1 TO 9; ;
|
28
|
+
--"remarkRepeat" function repeat scope - function repeat
|
29
|
+
END_REPEAT;
|
30
|
+
remarkLocal := QUERY(remarkQuery <* remarkLocal | TRUE
|
31
|
+
--"remarkQuery" function query scope - function query
|
32
|
+
);
|
33
|
+
--"remarkParameter" function scope - function parameter
|
34
|
+
--"remarkType" function scope - function type
|
35
|
+
--"remarkConstant" function scope - function constant
|
36
|
+
--"remarkLocal" function scope - function local
|
37
|
+
END_FUNCTION;
|
38
|
+
PROCEDURE remarkProcedure (remarkParameter : STRING);
|
39
|
+
TYPE remarkType = STRING; END_TYPE;
|
40
|
+
CONSTANT remarkConstant : STRING := 'xxx'; END_CONSTANT;
|
41
|
+
LOCAL remarkLocal : STRING; END_LOCAL;
|
42
|
+
ALIAS remarkAlias FOR remarkLocal; ;
|
43
|
+
--"remarkAlias" procedure alias scope - procedure alias
|
44
|
+
END_ALIAS;
|
45
|
+
REPEAT remarkRepeat := 1 TO 9; ;
|
46
|
+
--"remarkRepeat" procedure repeat scope - procedure repeat
|
47
|
+
END_REPEAT;
|
48
|
+
remarkLocal := QUERY(remarkQuery <* remarkLocal | TRUE
|
49
|
+
--"remarkQuery" procedure query scope - procedure query
|
50
|
+
);
|
51
|
+
--"remarkParameter" procedure scope - procedure parameter
|
52
|
+
--"remarkType" procedure scope - procedure type
|
53
|
+
--"remarkConstant" procedure scope - procedure constant
|
54
|
+
--"remarkLocal" procedure scope - procedure local
|
55
|
+
END_PROCEDURE;
|
56
|
+
RULE remarkRule FOR (remarkEntity);
|
57
|
+
TYPE remarkType = STRING; END_TYPE;
|
58
|
+
CONSTANT remarkConstant : STRING := 'xxx'; END_CONSTANT;
|
59
|
+
LOCAL remarkLocal : STRING; END_LOCAL;
|
60
|
+
ALIAS remarkAlias FOR remarkLocal; ;
|
61
|
+
--"remarkAlias" rule alias scope - rule alias
|
62
|
+
END_ALIAS;
|
63
|
+
REPEAT remarkRepeat := 1 TO 9; ;
|
64
|
+
--"remarkRepeat" rule repeat scope - rule repeat
|
65
|
+
END_REPEAT;
|
66
|
+
remarkLocal := QUERY(remarkQuery <* remarkLocal | TRUE
|
67
|
+
--"remarkQuery" rule query scope - rule query
|
68
|
+
);
|
69
|
+
WHERE remarkWhere : TRUE;
|
70
|
+
--"remarkType" rule scope - rule type
|
71
|
+
--"remarkConstant" rule scope - rule constant
|
72
|
+
--"remarkLocal" rule scope - rule local
|
73
|
+
--"remarkWhere" rule scope - rule where
|
74
|
+
END_RULE;
|
75
|
+
|
76
|
+
--"remarkConstant" schema scope - constant
|
77
|
+
--"remarkType" schema scope - type
|
78
|
+
--"remarkEntity" schema scope - entity
|
79
|
+
--"remarkEntity.remarkExplicit" schema scope - entity explicit
|
80
|
+
--"remarkEntity.remarkDerived" schema scope - entity derived
|
81
|
+
--"remarkEntity.remarkInverse" schema scope - entity inverse
|
82
|
+
--"remarkEntity.remarkUnique" schema scope - entity unique
|
83
|
+
--"remarkEntity.remarkWhere" schema scope - entity where
|
84
|
+
--"remarkSubtypeConstraint" schema scope - subtype constraint
|
85
|
+
--"remarkFunction" schema scope - function
|
86
|
+
--"remarkFunction.remarkParameter" schema scope - function parameter
|
87
|
+
--"remarkFunction.remarkType" schema scope - function type
|
88
|
+
--"remarkFunction.remarkConstant" schema scope - function constant
|
89
|
+
--"remarkFunction.remarkLocal" schema scope - function local
|
90
|
+
--"remarkProcedure" schema scope - procedure
|
91
|
+
--"remarkProcedure.remarkParameter" schema scope - procedure parameter
|
92
|
+
--"remarkProcedure.remarkType" schema scope - procedure type
|
93
|
+
--"remarkProcedure.remarkConstant" schema scope - procedure constant
|
94
|
+
--"remarkProcedure.remarkLocal" schema scope - procedure local
|
95
|
+
--"remarkRule" schema scope - rule
|
96
|
+
--"remarkRule.remarkType" schema scope - rule type
|
97
|
+
--"remarkRule.remarkConstant" schema scope - rule constant
|
98
|
+
--"remarkRule.remarkLocal" schema scope - rule local
|
99
|
+
--"remarkRule.remarkWhere" schema scope - rule where
|
100
|
+
|
101
|
+
END_SCHEMA;
|
102
|
+
|
103
|
+
--"remarkSchema" universal scope - schema
|
104
|
+
--"remarkSchema.remarkConstant" universal scope - constant
|
105
|
+
--"remarkSchema.remarkType" universal scope - type
|
106
|
+
--"remarkSchema.remarkEntity" universal scope - entity
|
107
|
+
--"remarkSchema.remarkEntity.remarkExplicit" universal scope - entity explicit
|
108
|
+
--"remarkSchema.remarkEntity.remarkDerived" universal scope - entity derived
|
109
|
+
--"remarkSchema.remarkEntity.remarkInverse" universal scope - entity inverse
|
110
|
+
--"remarkSchema.remarkEntity.remarkUnique" universal scope - entity unique
|
111
|
+
--"remarkSchema.remarkEntity.remarkWhere" universal scope - entity where
|
112
|
+
--"remarkSchema.remarkSubtypeConstraint" universal scope - subtype constraint
|
113
|
+
--"remarkSchema.remarkFunction" universal scope - function
|
114
|
+
--"remarkSchema.remarkFunction.remarkParameter" universal scope - function parameter
|
115
|
+
--"remarkSchema.remarkFunction.remarkType" universal scope - function type
|
116
|
+
--"remarkSchema.remarkFunction.remarkConstant" universal scope - function constant
|
117
|
+
--"remarkSchema.remarkFunction.remarkLocal" universal scope - function local
|
118
|
+
--"remarkSchema.remarkProcedure" universal scope - procedure
|
119
|
+
--"remarkSchema.remarkProcedure.remarkParameter" universal scope - procedure parameter
|
120
|
+
--"remarkSchema.remarkProcedure.remarkType" universal scope - procedure type
|
121
|
+
--"remarkSchema.remarkProcedure.remarkConstant" universal scope - procedure constant
|
122
|
+
--"remarkSchema.remarkProcedure.remarkLocal" universal scope - procedure local
|
123
|
+
--"remarkSchema.remarkRule" universal scope - rule
|
124
|
+
--"remarkSchema.remarkRule.remarkType" universal scope - rule type
|
125
|
+
--"remarkSchema.remarkRule.remarkConstant" universal scope - rule constant
|
126
|
+
--"remarkSchema.remarkRule.remarkLocal" universal scope - rule local
|
127
|
+
--"remarkSchema.remarkRule.remarkWhere" universal scope - rule where
|
@@ -12,12 +12,12 @@ CONSTANT
|
|
12
12
|
-- literals
|
13
13
|
binaryExpression : STRING := %011110000111100001111000;
|
14
14
|
integerExpression : STRING := 999;
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
trueLogicalExpression : STRING := TRUE;
|
16
|
+
falseLogicalExpression : STRING := FALSE;
|
17
|
+
unknownLogicalExpression : STRING := UNKNOWN;
|
18
18
|
realExpression : STRING := 999.999;
|
19
|
-
|
20
|
-
|
19
|
+
simpleStringExpression : STRING := 'xxx';
|
20
|
+
encodedStringExpression : STRING := "000000780000007800000078";
|
21
21
|
|
22
22
|
-- constants
|
23
23
|
constEExpression : STRING := CONST_E;
|
@@ -93,10 +93,10 @@ CONSTANT
|
|
93
93
|
likeExpression : STRING := 'xxx' LIKE 'xxx';
|
94
94
|
|
95
95
|
-- aggregate initializers
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
96
|
+
aggregateInitializerExpression : STRING := ['xxx'];
|
97
|
+
repeatedAggregateInitializerExpression : STRING := ['xxx' : 2];
|
98
|
+
complexAggregateInitializerExpression : STRING := [4 + 2];
|
99
|
+
complexRepeatedAggregateInitializerExpression : STRING := [4 + 2 : 4 + 2];
|
100
100
|
|
101
101
|
-- entity constructors
|
102
102
|
entityConstructorExpression : STRING := explicitAttributeEntity(TRUE);
|
@@ -175,14 +175,19 @@ ENTITY explicitAttributeEntity; test : BOOLEAN; END_ENTITY;
|
|
175
175
|
ENTITY explicitAttributeOptionalEntity; test : OPTIONAL BOOLEAN; END_ENTITY;
|
176
176
|
ENTITY explicitAttributeMultipleEntity; test : BOOLEAN; test2 : BOOLEAN; END_ENTITY;
|
177
177
|
ENTITY explicitAttributeMultipleShorthandEntity; test, test2 : BOOLEAN; END_ENTITY;
|
178
|
-
ENTITY
|
178
|
+
ENTITY explicitAttributeRedeclaredEntity; SELF\explicitAttributeEntity.test: BOOLEAN; END_ENTITY;
|
179
|
+
ENTITY explicitAttributeRedeclaredRenamedEntity; SELF\explicitAttributeEntity.test RENAMED test2: BOOLEAN; END_ENTITY;
|
179
180
|
ENTITY derivedAttributeEntity; DERIVE test : BOOLEAN := TRUE; END_ENTITY;
|
181
|
+
ENTITY derivedAttributeRedeclaredEntity; DERIVE SELF\explicitAttributeEntity.test : BOOLEAN := TRUE; END_ENTITY;
|
182
|
+
ENTITY derivedAttributeRedeclaredRenamedEntity; DERIVE SELF\explicitAttributeEntity.test RENAMED test2 : BOOLEAN := TRUE; END_ENTITY;
|
180
183
|
ENTITY inverseAttributeEntity; INVERSE test : explicitAttributeEntity FOR test; END_ENTITY;
|
181
184
|
ENTITY inverseAttributeEntityEntity; INVERSE test : explicitAttributeEntity FOR explicitAttributeEntity.test; END_ENTITY;
|
182
185
|
ENTITY inverseAttributeSetEntity; INVERSE test : SET OF explicitAttributeEntity FOR test; END_ENTITY;
|
183
186
|
ENTITY inverseAttributeSetBoundEntity; INVERSE test : SET [1:9] OF explicitAttributeEntity FOR test; END_ENTITY;
|
184
187
|
ENTITY inverseAttributeBagEntity; INVERSE test : BAG OF explicitAttributeEntity FOR test; END_ENTITY;
|
185
188
|
ENTITY inverseAttributeBagBoundEntity; INVERSE test : BAG [1:9] OF explicitAttributeEntity FOR test; END_ENTITY;
|
189
|
+
ENTITY inverseAttributeRedeclaredEntity; INVERSE SELF\explicitAttributeEntity.test : explicitAttributeEntity FOR test; END_ENTITY;
|
190
|
+
ENTITY inverseAttributeRedeclaredRenamedEntity; INVERSE SELF\explicitAttributeEntity.test RENAMED test2 : explicitAttributeEntity FOR test; END_ENTITY;
|
186
191
|
ENTITY uniqueEntity; UNIQUE test; END_ENTITY;
|
187
192
|
ENTITY uniqueLabelEntity; UNIQUE UR1: test; END_ENTITY;
|
188
193
|
ENTITY uniqueQualifiedEntity; UNIQUE SELF\explicitAttributeEntity.test; END_ENTITY;
|