public MirrorPointImplementation() { var keyX = new NameKey("x"); var localX = MemberDefinition.CreateAndBuild(keyX, new AnyType(), false); var keyY = new NameKey("y"); var localY = MemberDefinition.CreateAndBuild(keyY, new AnyType(), false); var contextKey = new NameKey("context"); var context = MemberDefinition.CreateAndBuild( contextKey, InterfaceType.CreateAndBuild( Scope.CreateAndBuild( new List <Scope.IsStatic>() { new Scope.IsStatic(localX, false), new Scope.IsStatic(localY, false), }).Members), false);; var inputKey = new NameKey("input"); var input = MemberDefinition.CreateAndBuild(inputKey, new EmptyType(), false); var tempKey = new NameKey("temp"); var temp = MemberDefinition.CreateAndBuild(tempKey, new AnyType(), false); var implementationScope = Scope.CreateAndBuild( new List <Scope.IsStatic> { new Scope.IsStatic(input, false), new Scope.IsStatic(temp, false) }); Module = ModuleDefinition.CreateAndBuild( Scope.CreateAndBuild( new List <Scope.IsStatic>() { new Scope.IsStatic(MemberDefinition.CreateAndBuild(new NameKey("mirror"), new AnyType(), false), false) }), new[] { AssignOperation.CreateAndBuild( ImplementationDefinition.CreateAndBuild( new EmptyType(), context, input, implementationScope, new ICodeElement[] { AssignOperation.CreateAndBuild( PathOperation.CreateAndBuild(MemberReference.CreateAndBuild(context), MemberReference.CreateAndBuild(localX)), MemberReference.CreateAndBuild(temp) ), AssignOperation.CreateAndBuild( PathOperation.CreateAndBuild(MemberReference.CreateAndBuild(context), MemberReference.CreateAndBuild(localY)), PathOperation.CreateAndBuild(MemberReference.CreateAndBuild(context), MemberReference.CreateAndBuild(localX)) ), AssignOperation.CreateAndBuild( MemberReference.CreateAndBuild(temp), PathOperation.CreateAndBuild(MemberReference.CreateAndBuild(context), MemberReference.CreateAndBuild(localY)) ) }, new ICodeElement[0]), MemberReference.CreateAndBuild(MemberDefinition.CreateAndBuild(new NameKey("mirror"), new AnyType(), false))) }, new NameKey("mirror-module")); }
public MirrorPointImplementation() { var keyX = new NameKey("x"); var localX = MemberDefinition.CreateAndBuild(keyX, new AnyType(), Access.ReadWrite); var keyY = new NameKey("y"); var localY = MemberDefinition.CreateAndBuild(keyY, new AnyType(), Access.ReadWrite); var contextKey = new NameKey("context"); var context = MemberDefinition.CreateAndBuild( contextKey, InterfaceType.CreateAndBuild( Scope.CreateAndBuild( new List <IsStatic>() { new IsStatic(localX, false), new IsStatic(localY, false), }).Members.Values.Select(x => x.Value).ToList()), Access.ReadWrite);; var inputKey = new NameKey("input"); var input = MemberDefinition.CreateAndBuild(inputKey, new EmptyType(), Access.ReadWrite); var tempKey = new NameKey("temp"); var temp = MemberDefinition.CreateAndBuild(tempKey, new AnyType(), Access.ReadWrite); var implementationScope = Scope.CreateAndBuild( new List <IsStatic> { new IsStatic(input, false), new IsStatic(temp, false) }); var intermediateScope = Scope.CreateAndBuild( new List <IsStatic> { new IsStatic(context, false) }); RootScope = Model.Instantiated.RootScope.CreateAndBuild( Scope.CreateAndBuild( new List <IsStatic>() { new IsStatic(MemberDefinition.CreateAndBuild(new NameKey("mirror"), new AnyType(), Access.ReadWrite), false) }), new[] { AssignOperation.CreateAndBuild( ImplementationDefinition.CreateAndBuild( new EmptyType(), context, input, implementationScope, new ICodeElement[] { AssignOperation.CreateAndBuild( PathOperation.CreateAndBuild(MemberReference.CreateAndBuild(context), MemberReference.CreateAndBuild(localX)), MemberReference.CreateAndBuild(temp) ), AssignOperation.CreateAndBuild( PathOperation.CreateAndBuild(MemberReference.CreateAndBuild(context), MemberReference.CreateAndBuild(localY)), PathOperation.CreateAndBuild(MemberReference.CreateAndBuild(context), MemberReference.CreateAndBuild(localX)) ), AssignOperation.CreateAndBuild( MemberReference.CreateAndBuild(temp), PathOperation.CreateAndBuild(MemberReference.CreateAndBuild(context), MemberReference.CreateAndBuild(localY)) ) }, Array.Empty <ICodeElement>(), intermediateScope), MemberReference.CreateAndBuild(MemberDefinition.CreateAndBuild(new NameKey("mirror"), new AnyType(), Access.ReadWrite))) }, EntryPointDefinition.CreateAndBuild(new EmptyType(), MemberDefinition.CreateAndBuild(new NameKey("input"), new NumberType(), Access.ReadWrite), Scope.CreateAndBuild(Array.Empty <IsStatic>()), Array.Empty <ICodeElement>(), Array.Empty <ICodeElement>())); }