blob: 55259b2d4a60a4ea974fc3579e087ead8fef7c2a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
import bug416584lib;
modeltype Ecore uses ecore('http://www.eclipse.org/emf/2002/Ecore');
transformation T2(in inModel : Ecore, out outModel : Ecore)
extends T1
extends T3
extends libT
{
property prop2 = prop;
main() {
var v1 = new T3();
var v2 = new T1(inModel, outModel);
var v4 = libProp;
var v5 = prop;
var v6: Tuple(obj : EClassifier, size : Integer);
log("=== T2 ===");
assert fatal (lib_helper() = "lib_helper 123");
log(lib_helper());
assert fatal (T3_helper() = "T3_helper 123");
log(T3_helper());
new T1(inModel, outModel).transform();
}
}
transformation T1(in inModel : Ecore, out outModel : Ecore)
access T3
access libT
{
configuration property prop : String;
main() {
inModel.rootObjects()![EPackage].deepclone();
var v1 = new T3();
var v2 = prop;
var v3: Tuple(obj : EClassifier, size : Integer);
log("=== T1 ===");
assert fatal (prop = "prop");
log(prop);
new T3().transform();
}
}
transformation T3()
extends libT
{
configuration property prop2 : String;
property prop3 = 123;
main() {
var v1 = new T3();
var v3 = libProp; // libT.libProp
var v4: Tuple(obj : EClassifier, size : Integer);
log("=== T3 ===");
assert fatal (prop2 = "prop2");
log(prop2);
assert fatal (prop3.repr() = "123");
log(prop3.repr());
assert fatal (lib_helper() = "lib_helper 123");
}
helper T3_helper() : String {
return 'T3_helper ' + libProp.repr();
}
}
|