blob: 9d7732ec62ca2cb783b4cf1af0928182dd3a9251 [file] [log] [blame]
import ecore : 'http://www.eclipse.org/emf/2002/Ecore';
transformation Expressions {
source imports ecore;
_'target' imports ecore;
middle imports ecore;
map expressionsLM {
in:source dummy:EPackage;
call expressionsMR {
binaryPrecedence uses (1 + 2) * (3*5 + 4);
unaryPrecedence uses -1 * - -1;
notPrecedence uses not not (4 = 5);
}
}
map expressionsMR {
in:middle binaryPrecedence:OclAny;
in:middle unaryPrecedence:OclAny;
in:middle notPrecedence:OclAny;
}
map expressionsDomains {
var s : Integer := 0;
var t : Integer := 0;
var m : Integer := 0;
var s_1 : Integer := m;
var s_2 : Integer := t;
var t_1 : Integer := s;
var t_2 : Integer := m;
var m_1 : Integer := s;
var m_2 : Integer := t;
}
map expressionsMaps {
-- var s1 : Boolean := Map{}->forAll(key with value : String | key.toString().toUpper() = value);
var s2 : Boolean := Map{1 with '1'}->forAll(key with value | key.toString().toUpper() = value);
var s2a : Boolean := Map(Integer[1],String[1]){1 with '1'}->forAll(key with value | key.toString().toUpper() = value);
var s2b : Boolean := Map(Integer[1],String[?]){1 with '1'}->forAll(key with value | key.toString().toUpper() = value);
var s2c : Boolean := Map(Integer[?],String[1]){1 with '1'}->forAll(key with value | key.toString().toUpper() = value);
var s2d : Boolean := Map(Integer[?],String[?]){1 with '1'}->forAll(key1 with value1, key2 with value2 | key1.toString().toUpper() = value2);
-- var s3 : Boolean := Map{1 with '1', true with 'TRUE', false with 'FALSE'}->forAll(key : OclAny with value : String | key.toString().toUpper() = value);
}
map expressionsCollections {
var c1 : Boolean := Sequence{'1'}->forAll(value with index | value = index.toString());
var c2 : Boolean := OrderedSet{'1','2','3'}->exists(v1 with x1, v2 with x2, v3 with x3 | v1.toInteger() + x1 + v2.toInteger() + x2 + v3.toInteger() + x3 = 10);
}
map expressionsCasts {
var s1 : Boolean := true.oclAsType(Boolean);
var s2 : Set(Boolean) := null.oclAsType(Set(Boolean));
var s3 : Set(Set(Integer[2..5|?])[3..4|1]) := null.oclAsType(Set(Set(Integer[2..5|?])[3..4|1]));
-- var s3 : Set(Integer[2..5|?])[3..4] := null;--.oclAsType(Set(Integer[2..5|?]));
var s4 : Map(String[?], Integer[1]) := null.oclAsType(Map(String[?], Integer[1]));
var s5 : Tuple(s:String[?], i:Integer[1]) := null.oclAsType(Tuple(s:String[?], i:Integer[1]));
}
}