Skip to content

Commit 028ac5f

Browse files
committed
ST6RI-67 Corrected the Xpect parsing tests.
1 parent bb92d2c commit 028ac5f

6 files changed

Lines changed: 105 additions & 92 deletions

File tree

org.omg.sysml.xpect.tests/library/Base.alf

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -57,39 +57,41 @@ package Base {
5757
/*
5858
* Occurrence is the most general class of entities that may occur over time.
5959
* BehaviorOccurrence and FunctionOccurrence are specializations representing the
60-
* occurrence (execution/evaluation) of behaviors and functions.
60+
* occurrence (execution/evaluation) of behaviors and functions. LiteralEvaluation
61+
* and NullEvaluation are further specializations of FunctionOccurrence representing
62+
* literal and null expressions.
6163
*/
6264
abstract class Occurrence specializes Anything;
6365
abstract behavior BehaviorOccurrence() specializes Occurrence;
64-
abstract function FunctionEvaluation(): Anything[0..*] specializes BehaviorOccurrence;
65-
66+
abstract function FunctionEvaluation(): Anything[0..*] specializes BehaviorOccurrence;
6667
function LiteralEvaluation(): Anything specializes FunctionEvaluation;
6768
function NullEvaluation(): Anything[0..0] specializes FunctionEvaluation;
6869

6970
/*
70-
* property is the top-level feature in the language.
71-
* referenceProperty and valueProperty are specializations that restrict the feature type
72-
* to Objects and Values, respectively.
71+
* things is the top-level feature in the language.
72+
* objects and values are specializations that restrict the feature type
73+
* to Object and Value, respectively.
7374
*/
74-
feature property: Anything[0..*] nonunique;
75-
feature referenceProperty: Object[0..*] nonunique subsets property;
76-
feature valueProperty: Value[0..*] nonunique subsets property;
75+
abstract feature things: Anything[0..*] nonunique;
76+
abstract feature objects: Object[0..*] nonunique subsets things;
77+
abstract feature values: Value[0..*] nonunique subsets things;
7778

7879
/*
79-
* connection is the most general feature of links between individuals.
80-
* binaryConnection and binding are specializations of binary links and self links.
81-
*/
82-
feature connection: Link[0..*] nonunique subsets property;
83-
feature binaryConnection: BinaryLink[0..*] nonunique subsets connection;
84-
feature binding: SelfLink[0..*] nonunique subsets binaryConnection;
80+
* links is the most general feature of links between individuals.
81+
* binaryLinks and selfLinks are specializations of binary links and self links.
82+
*/
83+
abstract feature links: Link[0..*] nonunique subsets objects;
84+
abstract feature binaryLinks: BinaryLink[0..*] nonunique subsets links;
85+
abstract feature selfLinks: SelfLink[0..*] nonunique subsets binaryLinks;
8586

8687
/*
87-
* execution is the most general feature of occurrences of behaviors.
88-
* evaluation is a specialization for occurrences of functions.
88+
* behaviorOccurrences is the most general feature of occurrences of behaviors.
89+
* functionEvaluations is a specialization for occurrences of functions.
90+
* literalEvaluations and nullEvaluations are specializations of functionEvaluations
91+
* that restrict the feature type to LiteralEvaluation and NullEvaluation, respectively.
8992
*/
90-
feature execution: BehaviorOccurrence[0..*] nonunique subsets property;
91-
feature evaluation: FunctionEvaluation[0..*] nonunique subsets execution;
92-
93-
feature literalEvaluation: LiteralEvaluation[0..*] nonunique subsets evaluation;
94-
feature nullEvaluation: NullEvaluation[0..*] nonunique subsets evaluation;
93+
abstract step behaviorOccurrences: BehaviorOccurrence[0..*] nonunique subsets things;
94+
abstract expr functionEvaluations: FunctionEvaluation[0..*] nonunique subsets behaviorOccurrences;
95+
abstract expr literalEvaluations: LiteralEvaluation[0..*] nonunique subsets functionEvaluations;
96+
abstract expr nullEvaluations: NullEvaluation[0..*] nonunique subsets functionEvaluations;
9597
}

org.omg.sysml.xpect.tests/library/BooleanFunctions.alf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ package BooleanFunctions {
1111
function '/='(x: Boolean, y: Boolean): Boolean specializes BaseFunctions::'/=';
1212

1313
function ToString(x: Boolean): String specializes BaseFunctions::ToString;
14-
function ToBoolean(x: String): Boolean;
14+
function ToBoolean(x: String): Boolean;
15+
1516
}
1617

org.omg.sysml.xpect.tests/src/org/omg/sysml/xpect/tests/parser/ScopeWithOnlyDot.alf.xt

Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -19,35 +19,38 @@ END_SETUP
1919

2020
/* XPECT ast ---
2121
Package {
22-
ownedMembership = [
22+
ownedRelationship = [
2323
Membership {
24-
ownedMemberElement = ObjectClass {
25-
ownedRelationship = [
26-
Superclassing {
27-
superclass -> ObjectClass Base.alf#//@ownedMembership.1/@ownedMemberElement
28-
subclass -> ObjectClass //@ownedMembership.0/@ownedMemberElement
29-
}
30-
]
31-
ownedMembership = [
32-
FeatureMembership {
33-
memberName = 'c'
34-
ownedMemberFeature = Feature {
35-
ownedRelationship = [
36-
FeatureTyping {
37-
type -> Feature DependencyOuterPackage.alf#//@ownedMembership.1/@ownedMemberElement/@ownedMembership.0/@ownedMemberFeature
38-
}
39-
Subsetting {
40-
subsettedFeature -> Feature Base.alf#//@ownedMembership.12/@ownedMemberElement
41-
subsettingFeature -> Feature //@ownedMembership.0/@ownedMemberElement/@ownedMembership.0/@ownedMemberFeature
24+
ownedRelatedElement = [
25+
ObjectClass {
26+
ownedRelationship = [
27+
FeatureMembership {
28+
ownedRelatedElement = [
29+
Feature {
30+
ownedRelationship = [
31+
FeatureTyping {
32+
type -> Feature DependencyOuterPackage.alf#//@ownedRelationship.1/@ownedRelatedElement.0/@ownedRelationship.0/@ownedRelatedElement.0
33+
typedFeature -> Feature //@ownedRelationship.0/@ownedRelatedElement.0/@ownedRelationship.0/@ownedRelatedElement.0
34+
}
35+
Subsetting {
36+
subsettedFeature -> Feature Base.alf#//@ownedRelationship.12/@ownedRelatedElement.0
37+
subsettingFeature -> Feature //@ownedRelationship.0/@ownedRelatedElement.0/@ownedRelationship.0/@ownedRelatedElement.0
38+
}
39+
]
4240
}
4341
]
42+
memberName = 'c'
43+
memberFeature -> Feature //@ownedRelationship.0/@ownedRelatedElement.0/@ownedRelationship.0/@ownedRelatedElement.0
44+
}
45+
Superclassing {
46+
superclass -> ObjectClass Base.alf#//@ownedRelationship.1/@ownedRelatedElement.0
47+
subclass -> ObjectClass //@ownedRelationship.0/@ownedRelatedElement.0
4448
}
45-
memberFeature -> Feature //@ownedMembership.0/@ownedMemberElement/@ownedMembership.0/@ownedMemberFeature
46-
}
47-
]
48-
}
49+
]
50+
}
51+
]
4952
memberName = 'C'
50-
memberElement -> ObjectClass //@ownedMembership.0/@ownedMemberElement
53+
memberElement -> ObjectClass //@ownedRelationship.0/@ownedRelatedElement.0
5154
}
5255
]
5356
}

org.omg.sysml.xpect.tests/src/org/omg/sysml/xpect/tests/parser/Test_package.alf.xt2

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ END_SETUP
4040
Package {
4141
ownedMembership = [
4242
Membership {
43-
ownedMemberElement = ObjectClass {
43+
ownedRelatedElement = ObjectClass {
4444
ownedRelationship = [
4545
Superclassing {
4646
superclass -> ObjectClass Base.alf#//@ownedMembership.1/@ownedMemberElement
@@ -52,7 +52,7 @@ Package {
5252
memberElement -> ObjectClass //@ownedMembership.0/@ownedMemberElement
5353
}
5454
Membership {
55-
ownedMemberElement = ObjectClass {
55+
ownedRelatedElement = ObjectClass {
5656
ownedRelationship = [
5757
Superclassing {
5858
superclass -> ObjectClass //@ownedMembership.0/@ownedMemberElement

org.omg.sysml.xpect.tests/src/org/omg/sysml/xpect/tests/parser/UseFQN1.alf.xt

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -17,30 +17,34 @@ END_SETUP
1717

1818
/* XPECT ast ---
1919
Package {
20-
ownedMembership = [
20+
ownedRelationship = [
2121
Membership {
22-
ownedMemberElement = ObjectClass {
23-
ownedRelationship = [
24-
Superclassing {
25-
superclass -> ObjectClass Base.alf#//@ownedMembership.1/@ownedMemberElement
26-
subclass -> ObjectClass //@ownedMembership.0/@ownedMemberElement
27-
}
28-
]
29-
}
22+
ownedRelatedElement = [
23+
ObjectClass {
24+
ownedRelationship = [
25+
Superclassing {
26+
superclass -> ObjectClass Base.alf#//@ownedRelationship.1/@ownedRelatedElement.0
27+
subclass -> ObjectClass //@ownedRelationship.0/@ownedRelatedElement.0
28+
}
29+
]
30+
}
31+
]
3032
memberName = 'A'
31-
memberElement -> ObjectClass //@ownedMembership.0/@ownedMemberElement
33+
memberElement -> ObjectClass //@ownedRelationship.0/@ownedRelatedElement.0
3234
}
3335
Membership {
34-
ownedMemberElement = ObjectClass {
35-
ownedRelationship = [
36-
Superclassing {
37-
superclass -> ObjectClass //@ownedMembership.0/@ownedMemberElement
38-
subclass -> ObjectClass //@ownedMembership.1/@ownedMemberElement
39-
}
40-
]
41-
}
36+
ownedRelatedElement = [
37+
ObjectClass {
38+
ownedRelationship = [
39+
Superclassing {
40+
superclass -> ObjectClass //@ownedRelationship.0/@ownedRelatedElement.0
41+
subclass -> ObjectClass //@ownedRelationship.1/@ownedRelatedElement.0
42+
}
43+
]
44+
}
45+
]
4246
memberName = 'B'
43-
memberElement -> ObjectClass //@ownedMembership.1/@ownedMemberElement
47+
memberElement -> ObjectClass //@ownedRelationship.1/@ownedRelatedElement.0
4448
}
4549
]
4650
}

org.omg.sysml.xpect.tests/src/org/omg/sysml/xpect/tests/parser/UseFQNFourDot.alf.xt

Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -19,35 +19,38 @@ END_SETUP
1919

2020
/* XPECT ast ---
2121
Package {
22-
ownedMembership = [
22+
ownedRelationship = [
2323
Membership {
24-
ownedMemberElement = ObjectClass {
25-
ownedRelationship = [
26-
Superclassing {
27-
superclass -> ObjectClass Base.alf#//@ownedMembership.1/@ownedMemberElement
28-
subclass -> ObjectClass //@ownedMembership.0/@ownedMemberElement
29-
}
30-
]
31-
ownedMembership = [
32-
FeatureMembership {
33-
memberName = 'c'
34-
ownedMemberFeature = Feature {
35-
ownedRelationship = [
36-
FeatureTyping {
37-
type -> Feature DependencyOuterPackage.alf#//@ownedMembership.1/@ownedMemberElement/@ownedMembership.0/@ownedMemberFeature
38-
}
39-
Subsetting {
40-
subsettedFeature -> Feature Base.alf#//@ownedMembership.12/@ownedMemberElement
41-
subsettingFeature -> Feature //@ownedMembership.0/@ownedMemberElement/@ownedMembership.0/@ownedMemberFeature
24+
ownedRelatedElement = [
25+
ObjectClass {
26+
ownedRelationship = [
27+
FeatureMembership {
28+
ownedRelatedElement = [
29+
Feature {
30+
ownedRelationship = [
31+
FeatureTyping {
32+
type -> Feature DependencyOuterPackage.alf#//@ownedRelationship.1/@ownedRelatedElement.0/@ownedRelationship.0/@ownedRelatedElement.0
33+
typedFeature -> Feature //@ownedRelationship.0/@ownedRelatedElement.0/@ownedRelationship.0/@ownedRelatedElement.0
34+
}
35+
Subsetting {
36+
subsettedFeature -> Feature Base.alf#//@ownedRelationship.12/@ownedRelatedElement.0
37+
subsettingFeature -> Feature //@ownedRelationship.0/@ownedRelatedElement.0/@ownedRelationship.0/@ownedRelatedElement.0
38+
}
39+
]
4240
}
4341
]
42+
memberName = 'c'
43+
memberFeature -> Feature //@ownedRelationship.0/@ownedRelatedElement.0/@ownedRelationship.0/@ownedRelatedElement.0
44+
}
45+
Superclassing {
46+
superclass -> ObjectClass Base.alf#//@ownedRelationship.1/@ownedRelatedElement.0
47+
subclass -> ObjectClass //@ownedRelationship.0/@ownedRelatedElement.0
4448
}
45-
memberFeature -> Feature //@ownedMembership.0/@ownedMemberElement/@ownedMembership.0/@ownedMemberFeature
46-
}
47-
]
48-
}
49+
]
50+
}
51+
]
4952
memberName = 'C'
50-
memberElement -> ObjectClass //@ownedMembership.0/@ownedMemberElement
53+
memberElement -> ObjectClass //@ownedRelationship.0/@ownedRelatedElement.0
5154
}
5255
]
5356
}

0 commit comments

Comments
 (0)