import 'platform:/resource/uk.ac.le.cs.moment2.tests.exogenous/20080112_sierpinski/sierpinski.ecore' ; transformation Sierpinski( inputModel : sierpinski ) { eq split_step { lhs inputModel { A : CentralNode { container = root : Container { nodesNumber = rootNodesNumber, edgesNumber = rootEdgesNumber, currentStep = step }, step = step, edge1 = a : Node { name = aName }, edge2 = b : Node { name = bName }, edge3 = c : Node { name = cName } } }; rhs inputModel { A : CentralNode { container = root : Container { nodesNumber = rootNodesNumber + 3, edgesNumber = rootEdgesNumber + 6, currentStep = step, nodes = ab : Node { }, nodes = bc : Node { }, nodes = ca : Node { } }, step = step + 1, edge1 = a : Node { name = aName }, edge2 = ab : Node { container = root : Container {}, name = aName + bName }, edge3 = ca : Node { container = root : Container {}, name = cName + aName } } B : CentralNode { container = root : Container {}, step = step + 1, edge1 = ab : Node { }, edge2 = b : Node { name = bName }, edge3 = bc : Node { container = root : Container {}, name = bName + cName } } C : CentralNode { container = root : Container {}, step = step + 1, edge1 = ca : Node { }, edge2 = bc : Node { }, edge3 = c : Node { name = cName } } }; } eq next_step { lhs inputModel { root : Container { stop = false, currentStep = step, finalStep = final } }; rhs inputModel { root : Container { stop = if (final == step + 1) then true else false endif, currentStep = step + 1, finalStep = final } }; nac inputModel completedStep { central : CentralNode { step = step } }; } }