| modeltype ecore uses "http://www.eclipse.org/emf/2002/Ecore"; |
| |
| transformation _while(in model : ecore, out modelOut : ecore); |
| |
| main() { |
| var p:= object EPackage { |
| name:='pack'; |
| }; |
| |
| p.eClassifiers += object EClass { |
| name := 'aName'; |
| name := while(false) { |
| 10; |
| }; |
| }; |
| |
| p.eClassifiers += object EClass { |
| name:= while(s : String := 'nameFromWhile1'; false) { |
| } |
| }; |
| |
| p.eClassifiers += object EClass { |
| name:= while(s : String := ''; s.size() = 0) { |
| s := 'nameFromWhile2'; |
| }; |
| }; |
| |
| var count : Integer := 4; |
| var i : Integer := 0; |
| var strResult := ''; |
| while(i < count) { |
| i := i + 1; |
| strResult := strResult + 'x'; |
| if (i < count) then { |
| while(n:Integer:= 2; n > 0) { |
| strResult := strResult + '_'; |
| n := n - 1; |
| }; |
| |
| while(n:Integer:= 2; n > 0) { |
| strResult := strResult + '.'; |
| n := n - 1; |
| }; |
| } endif; |
| }; |
| |
| p.eClassifiers += object EClass { |
| name := strResult; |
| }; |
| |
| -- test proper variable value assigned |
| var r1 : String := while(n : String := null; n = null) { |
| n := 'r1'; |
| }; |
| |
| var r2 : String := while(n : String := null; n = null) { |
| n := 'r2'; |
| }; |
| |
| p.eClassifiers += object EClass { |
| name := r1 + '_' + r2; |
| }; |
| } |