/// <summary> /// Create Delta Paks based on Level Transitions. /// </summary> /// <param name="MapFrom"></param> /// <param name="MapTo"></param> public void CreateDeltaMapPaks(string MapFrom, string MapTo) { foreach (string NameKey in DependencyJson.Keys) { if (NameKey.Contains(MapFrom)) { MapFrom = NameKey; } if (NameKey.Contains(MapTo)) { MapTo = NameKey; } } List <string> MapFromAssets = Array.ConvertAll <object, string>(DependencyJson[MapFrom] as object[], Convert.ToString).ToList(); MapFromAssets.Add(MapFrom); List <string> MapToAssets = Array.ConvertAll <object, string>(DependencyJson[MapTo] as object[], Convert.ToString).ToList(); MapToAssets.Add(MapTo); object[] Value = (object[])DependencyJson["ContentDirectoryAssets"]; List <string> ContentDirectory = Array.ConvertAll <object, string>(Value, Convert.ToString).ToList(); // Delta. List <string> DeltaAssets = MapToAssets.Except(MapFromAssets).Except(ContentDirectory).ToList(); // create a pak file for this delta. string[] Tokens_MapFrom = MapFrom.Split('/'); string[] Tokens_MapTo = MapTo.Split('/'); string DeltaPakName = Tokens_MapFrom[Tokens_MapFrom.Length - 1] + "_" + Tokens_MapTo[Tokens_MapTo.Length - 1]; CreatePak(DeltaPakName, DeltaAssets); }
// TODO // {A48C75B3-07B4-4D84-8803-250D6406695D} // this is a bit weird // it is get or create // but like if something as already made a hopeful member it will just throw // that is probably a bug // x.y := 5 // 5 > x // boom, probably public TransientMember GetReturns(IValue value) { if (value.Hopeful is IIsDefinately <InferredType> inferredType) { return(inferredType.Value.Returns.GetOrThrow()); } else { var inferredMethodType = new InferredType(this, "generated infered method type"); value.Hopeful = Possibly.Is(inferredMethodType); // shared code {A9E37392-760B-427D-852E-8829EEFCAE99} // we don't use has member input/output doesn't go in the member list // it is not a public member // and infered to do not have private members var methodInputKey = new NameKey("generated infered method input - " + Guid.NewGuid()); var inputMember = new Member(this, methodInputKey.ToString() !); inputMember.LooksUp = Possibly.Is(Prototypist.Toolbox.OrType.Make <MethodType, Type, Object, OrType, InferredType, GenericTypeParameter, IError>(new InferredType(this, "implicit input"))); inferredMethodType.Input = Possibly.Is(inputMember); var returnMember = new TransientMember(this, "generated infered method return -" + Guid.NewGuid()); returnMember.LooksUp = Possibly.Is(Prototypist.Toolbox.OrType.Make <MethodType, Type, Object, OrType, InferredType, GenericTypeParameter, IError>(new InferredType(this, "implicit return"))); inferredMethodType.Returns = Possibly.Is(returnMember); return(returnMember); } }
public PointObject() { 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); RootScope = Model.Instantiated.RootScope.CreateAndBuild( Scope.CreateAndBuild( new List <IsStatic>() { new IsStatic(MemberDefinition.CreateAndBuild(new NameKey("point"), new AnyType(), Access.ReadWrite), false) }), new[] { AssignOperation.CreateAndBuild( ObjectDefiniton.CreateAndBuild( Scope.CreateAndBuild( new List <IsStatic> { new IsStatic(localX, false), new IsStatic(localY, false) }), new IAssignOperation[] { AssignOperation.CreateAndBuild( ConstantNumber.CreateAndBuild(5), MemberReference.CreateAndBuild(localX)), AssignOperation.CreateAndBuild( ConstantNumber.CreateAndBuild(2), MemberReference.CreateAndBuild(localY)) }, InterfaceType.CreateAndBuild(new [] { localX, localY })), MemberReference.CreateAndBuild(MemberDefinition.CreateAndBuild(new NameKey("point"), 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>())); }
public ISetUpResult <IBox <WeakMemberReference>, Tpn.TypeProblem2.Member> Run(Tpn.IStaticScope scope, ISetUpContext context) { // this is a bit werid // it creates member possibly on parent for code like // type {x;y;} // or // object {1 =: x; 2 =: y;} // the second is really bad tho, if you had: // 1 =: x; // object {1 =: x; 2 =: y;} // the possible member for x in the object would not result in a real member // {48146F3A-6D75-4F24-B857-BED24CE846EA} // here is a painful situaltion // 1 =: x; // object {x =: x; 2 =: y;} // in object the LHS x is resolves up // the RHS x resolves to create a new member if (!(scope is Tpn.IHavePossibleMembers possibleScope)) { throw new NotImplementedException("this should be an IError"); } var nameKey = new NameKey(memberName); var member = GetMember(scope, context, possibleScope, nameKey); return(new SetUpResult <IBox <WeakMemberReference>, Tpn.TypeProblem2.Member>(new MemberResolveReferance(nameKey), OrType.Make <Tpn.TypeProblem2.Member, IError>(member))); }
public void InterestingCase2() { var member1Key = new NameKey("x"); var memeber1TypeBox = new Box <IOrType <IFrontendType <IVerifiableType>, IError> >(); var member1 = new WeakMemberDefinition(Access.ReadWrite, member1Key, memeber1TypeBox); var type1 = new HasMembersType(new WeakScope(new List <WeakMemberDefinition> { member1 })); memeber1TypeBox.Fill(OrType.Make <IFrontendType <IVerifiableType>, IError>(type1)); var member2Key = new NameKey("x"); var memeber2TypeBox = new Box <IOrType <IFrontendType <IVerifiableType>, IError> >(); var member2 = new WeakMemberDefinition(Access.ReadWrite, member2Key, memeber2TypeBox); var member3Key = new NameKey("y"); var member3 = new WeakMemberDefinition(Access.ReadWrite, member3Key, new Box <IOrType <IFrontendType <IVerifiableType>, IError> >(OrType.Make <IFrontendType <IVerifiableType>, IError>(new NumberType()))); var type2 = new HasMembersType(new WeakScope(new List <WeakMemberDefinition> { member2, member3 })); memeber2TypeBox.Fill(OrType.Make <IFrontendType <IVerifiableType>, IError>(type2)); Assert.False(type1.TheyAreUs(type2, new List <(IFrontendType <IVerifiableType>, IFrontendType <IVerifiableType>)>()).Is1OrThrow()); Assert.False(type2.TheyAreUs(type1, new List <(IFrontendType <IVerifiableType>, IFrontendType <IVerifiableType>)>()).Is1OrThrow()); }
public ModuleDefinitionPopulateScope( IPopulateScope <IFrontendCodeElement, ISetUpSideNode>[] elements, NameKey nameKey) { this.elements = elements ?? throw new ArgumentNullException(nameof(elements)); this.nameKey = nameKey ?? throw new ArgumentNullException(nameof(nameKey)); }
public static IPopulateBoxes <WeakModuleDefinition> PopulateBoxes(IResolvableScope scope, IPopulateBoxes <IConvertableFrontendCodeElement <ICodeElement> >[] resolveReferance, NameKey nameKey) { return(new ModuleDefinitionResolveReferance(scope, resolveReferance, nameKey)); }
public ModuleDefinitionResolveReferance( IResolvableScope scope, IPopulateBoxes <IFrontendCodeElement>[] resolveReferance, NameKey nameKey) { this.scope = scope ?? throw new ArgumentNullException(nameof(scope)); this.resolveReferance = resolveReferance ?? throw new ArgumentNullException(nameof(resolveReferance)); this.nameKey = nameKey ?? throw new ArgumentNullException(nameof(nameKey)); }
public PairType() { var pairTypeNumber = InterfaceType.CreateAndBuild( new List <IMemberDefinition> { MemberDefinition.CreateAndBuild(new NameKey("x"), new NumberType(), false), MemberDefinition.CreateAndBuild(new NameKey("y"), new NumberType(), false) }); var inputKey = new NameKey("input"); var input = MemberDefinition.CreateAndBuild(inputKey, new NumberType(), false); var methodScope = Scope.CreateAndBuild(new List <Scope.IsStatic> { new Scope.IsStatic(input, false) }); var localX = MemberDefinition.CreateAndBuild(new NameKey("x"), new NumberType(), false); var localY = MemberDefinition.CreateAndBuild(new NameKey("y"), new NumberType(), false); var pairifyKey = new NameKey("pairify"); var pairify = MemberDefinition.CreateAndBuild(pairifyKey, MethodType.CreateAndBuild(new NumberType(), pairTypeNumber), false); Module = ModuleDefinition.CreateAndBuild( Scope.CreateAndBuild( new List <Scope.IsStatic> { new Scope.IsStatic(MemberDefinition.CreateAndBuild(pairifyKey, MethodType.CreateAndBuild(new NumberType(), pairTypeNumber), false), false) }), new ICodeElement[] { AssignOperation.CreateAndBuild( MethodDefinition.CreateAndBuild( new NumberType(), pairTypeNumber, input, methodScope, new ICodeElement[] { ReturnOperation.CreateAndBuild( ObjectDefiniton.CreateAndBuild( Scope.CreateAndBuild( new List <Scope.IsStatic> { new Scope.IsStatic(localX, false), new Scope.IsStatic(localY, false) }), new IAssignOperation[] { AssignOperation.CreateAndBuild( MemberReference.CreateAndBuild(input), MemberReference.CreateAndBuild(localX)), AssignOperation.CreateAndBuild( MemberReference.CreateAndBuild(input), MemberReference.CreateAndBuild(localY)) })) }, new ICodeElement[0], false), MemberReference.CreateAndBuild(pairify)) }, new NameKey("pair-type")); }
public IResolvelizeScope <WeakMemberReference, ISetUpMember> Run(IDefineMembers scope, IPopulateScopeContext context) { var nameKey = new NameKey(memberName); var member = context.TypeProblem.CreateMember(nameKey); scope.Cast <ISetUpScope>().MightHaveMember(member); return(new MemberFinalizeScope(nameKey, member)); }
public ModuleDefinitionFinalizeScope( ISetUpObject scope, IResolvelizeScope <IFrontendCodeElement, ISetUpSideNode>[] elements, NameKey nameKey) { SetUpSideNode = scope ?? throw new ArgumentNullException(nameof(scope)); this.elements = elements ?? throw new ArgumentNullException(nameof(elements)); this.nameKey = nameKey ?? throw new ArgumentNullException(nameof(nameKey)); }
public GenericTypeDefinitionPopulateScope( NameKey nameKey, IEnumerable <IPopulateScope <IFrontendCodeElement, ISetUpSideNode> > lines, IGenericTypeParameterPlacholder[] genericParameters) { this.nameKey = nameKey ?? throw new ArgumentNullException(nameof(nameKey)); this.lines = lines ?? throw new ArgumentNullException(nameof(lines)); this.genericParameters = genericParameters ?? throw new ArgumentNullException(nameof(genericParameters)); }
public GenericTypeDefinitionPopulateScope( NameKey nameKey, IReadOnlyList <IOrType <ISetUp <IBox <IFrontendCodeElement>, Tpn.ITypeProblemNode>, IError> > lines, NameKey[] genericParameters) { this.nameKey = nameKey ?? throw new ArgumentNullException(nameof(nameKey)); this.lines = lines ?? throw new ArgumentNullException(nameof(lines)); this.genericParameters = genericParameters ?? throw new ArgumentNullException(nameof(genericParameters)); }
public Closoure() { var xKey = new NameKey("x"); var x = MemberDefinition.CreateAndBuild(xKey, new NumberType(), false); var yKey = new NameKey("y"); var y = MemberDefinition.CreateAndBuild(yKey, new NumberType(), false); var methodScope = Scope.CreateAndBuild(new List <Scope.IsStatic> { new Scope.IsStatic(x, false) }); var innerMethodScope = Scope.CreateAndBuild(new List <Scope.IsStatic> { new Scope.IsStatic(y, false) }, methodScope); Module = ModuleDefinition.CreateAndBuild( Scope.CreateAndBuild( new List <Scope.IsStatic>() { new Scope.IsStatic(MemberDefinition.CreateAndBuild(new NameKey("create-accululator"), new AnyType(), false), false) }), new[] { AssignOperation.CreateAndBuild( MethodDefinition.CreateAndBuild( new NumberType(), MethodType.CreateAndBuild( new NumberType(), new NumberType()), x, methodScope, new ICodeElement[] { ReturnOperation.CreateAndBuild( MethodDefinition.CreateAndBuild( new NumberType(), new NumberType(), y, innerMethodScope, new ICodeElement[] { AssignOperation.CreateAndBuild( AddOperation.CreateAndBuild( MemberReference.CreateAndBuild(x), MemberReference.CreateAndBuild(y)), MemberReference.CreateAndBuild(x)), ReturnOperation.CreateAndBuild( MemberReference.CreateAndBuild(x)) }, new ICodeElement[0], false) ) }, new ICodeElement[0], false), MemberReference.CreateAndBuild(MemberDefinition.CreateAndBuild(new NameKey("create-accululator"), new AnyType(), false))) }, new NameKey("closoure")); }
public PairType() { var pairTypeNumber = InterfaceType.CreateAndBuild( new List <IMemberDefinition> { MemberDefinition.CreateAndBuild(new NameKey("x"), new NumberType(), Access.ReadWrite), MemberDefinition.CreateAndBuild(new NameKey("y"), new NumberType(), Access.ReadWrite) }); var inputKey = new NameKey("input"); var input = MemberDefinition.CreateAndBuild(inputKey, new NumberType(), Access.ReadWrite); var methodScope = Scope.CreateAndBuild(new List <IsStatic> { new IsStatic(input, false) }); var localX = MemberDefinition.CreateAndBuild(new NameKey("x"), new NumberType(), Access.ReadWrite); var localY = MemberDefinition.CreateAndBuild(new NameKey("y"), new NumberType(), Access.ReadWrite); var pairifyKey = new NameKey("pairify"); var pairify = MemberDefinition.CreateAndBuild(pairifyKey, MethodType.CreateAndBuild(new NumberType(), pairTypeNumber), Access.ReadWrite); RootScope = Model.Instantiated.RootScope.CreateAndBuild( Scope.CreateAndBuild( new List <IsStatic> { new IsStatic(MemberDefinition.CreateAndBuild(pairifyKey, MethodType.CreateAndBuild(new NumberType(), pairTypeNumber), Access.ReadWrite), false) }), new [] { AssignOperation.CreateAndBuild( MethodDefinition.CreateAndBuild( pairTypeNumber, input, methodScope, new ICodeElement[] { ReturnOperation.CreateAndBuild( ObjectDefiniton.CreateAndBuild( Scope.CreateAndBuild( new List <IsStatic> { new IsStatic(localX, false), new IsStatic(localY, false) }), new IAssignOperation[] { AssignOperation.CreateAndBuild( MemberReference.CreateAndBuild(input), MemberReference.CreateAndBuild(localX)), AssignOperation.CreateAndBuild( MemberReference.CreateAndBuild(input), MemberReference.CreateAndBuild(localY)) }, InterfaceType.CreateAndBuild(new [] { localX, localY }))) }, Array.Empty <ICodeElement>()), MemberReference.CreateAndBuild(pairify)) }, EntryPointDefinition.CreateAndBuild(new EmptyType(), MemberDefinition.CreateAndBuild(new NameKey("input"), new NumberType(), Access.ReadWrite), Scope.CreateAndBuild(Array.Empty <IsStatic>()), Array.Empty <ICodeElement>(), Array.Empty <ICodeElement>())); }
public bool TryAddGeneric(NameKey key, IBox <IIsPossibly <IFrontendGenericType> > definition) { if (finalizableScope.IsFinal) { throw new ApplicationException("bug: don't add after finalize"); } var list = genericTypes.GetOrAdd(new NameKey(key.Name), new ConcurrentSet <IBox <IIsPossibly <IFrontendGenericType> > >()); return(list.TryAdd(definition)); }
public static IPopulateScope <WeakGenericTypeDefinition, ISetUpType> PopulateScope( NameKey nameKey, IEnumerable <IPopulateScope <IConvertableFrontendCodeElement <ICodeElement>, ISetUpSideNode> > lines, IGenericTypeParameterPlacholder[] genericParameters) { return(new GenericTypeDefinitionPopulateScope( nameKey, lines, genericParameters)); }
public Boolean HasComponent(String name) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException(nameof(name)); } NameKey key = new NameKey(name); return(HasComponent(key)); }
public override bool Equals(object other) { if (!(other is NameKey)) { return(false); } NameKey key = (NameKey)other; return(_name == key._name && _ns == key._ns); }
private IFrontendType <IVerifiableType> B1() { var member1Key = new NameKey("bm1"); var member1 = new WeakMemberDefinition(Access.ReadWrite, member1Key, new Box <IOrType <IFrontendType <IVerifiableType>, IError> >(OrType.Make <IFrontendType <IVerifiableType>, IError>(new NumberType()))); var type1 = new HasMembersType(new WeakScope(new List <WeakMemberDefinition> { member1 })); return(type1); }
public void Indexator_GetValue_by_name_Null_Test() { // Arrange var name1 = new NameKey("dummy"); // Action var actualValuePairs = _userTypeCollection[name1]; // Assert Assert.IsTrue(actualValuePairs == null); }
public void TryGetValue_by_name_Test() { // Arrange var name1 = new NameKey(_nameKey1.Name); // Action Person actualPerson = new Person(); var isSuccess = _userTypeCollection.TryGetValue(name1, ref actualPerson); // Assert Assert.IsTrue(isSuccess); Assert.AreEqual(_personUt1, actualPerson); }
public static IPopulateBoxes <WeakGenericTypeDefinition> PopulateBoxes(NameKey nameKey, IResolvableScope scope, Box <IIsPossibly <IFrontendGenericType> > box, IGenericTypeParameterPlacholder[] genericParameters, IPopulateBoxes <IConvertableFrontendCodeElement <ICodeElement> >[] lines) { return(new GenericTypeDefinitionResolveReferance(nameKey, scope, box, genericParameters, lines)); }
public bool Create(object keyData, out IKey key, out string errorMessage) { key = null; errorMessage = string.Empty; if (keyData is string stringKeyData) { key = new NameKey(stringKeyData); return(true); } errorMessage = "keyData type is not supported."; return(false); }
public GenericTypeDefinitionResolveReferance( NameKey nameKey, IResolvableScope scope, Box <IIsPossibly <IFrontendGenericType> > box, IGenericTypeParameterPlacholder[] genericParameters, IPopulateBoxes <IFrontendCodeElement>[] lines) { this.nameKey = nameKey ?? throw new ArgumentNullException(nameof(nameKey)); this.scope = scope ?? throw new ArgumentNullException(nameof(scope)); this.box = box ?? throw new ArgumentNullException(nameof(box)); this.genericParameters = genericParameters ?? throw new ArgumentNullException(nameof(genericParameters)); this.lines = lines ?? throw new ArgumentNullException(nameof(lines)); }
public static Name Make(char[] source, int start, int end) { NameKey key = new NameKey(source, start, end); Name ret; if (!names.TryGetValue(key, out ret)) { ret = key.makeName(); key = new NameKey(ret.name, 0, ret.name.Length); names[key] = ret; } return(ret); }
public GenericTypeDefinitionFinalizeScope( NameKey nameKey, ISetUpType scope, Box <IIsPossibly <IFrontendGenericType> > box, IGenericTypeParameterPlacholder[] genericParameters, IResolvelizeScope <IFrontendCodeElement, ISetUpSideNode>[] lines) { this.nameKey = nameKey ?? throw new ArgumentNullException(nameof(nameKey)); this.SetUpSideNode = scope ?? throw new ArgumentNullException(nameof(scope)); this.box = box ?? throw new ArgumentNullException(nameof(box)); this.genericParameters = genericParameters ?? throw new ArgumentNullException(nameof(genericParameters)); this.lines = lines ?? throw new ArgumentNullException(nameof(lines)); }
public Closoure() { var xKey = new NameKey("x"); var x = MemberDefinition.CreateAndBuild(xKey, new NumberType(), Access.ReadWrite); var yKey = new NameKey("y"); var y = MemberDefinition.CreateAndBuild(yKey, new NumberType(), Access.ReadWrite); var methodScope = Scope.CreateAndBuild(new List <IsStatic> { new IsStatic(x, false) }); var innerMethodScope = Scope.CreateAndBuild(new List <IsStatic> { new IsStatic(y, false) }); RootScope = Model.Instantiated.RootScope.CreateAndBuild( Scope.CreateAndBuild( new List <IsStatic>() { new IsStatic(MemberDefinition.CreateAndBuild(new NameKey("create-accululator"), new AnyType(), Access.ReadWrite), false) }), new [] { AssignOperation.CreateAndBuild( MethodDefinition.CreateAndBuild( MethodType.CreateAndBuild( new NumberType(), new NumberType()), x, methodScope, new ICodeElement[] { ReturnOperation.CreateAndBuild( MethodDefinition.CreateAndBuild( new NumberType(), y, innerMethodScope, new ICodeElement[] { AssignOperation.CreateAndBuild( AddOperation.CreateAndBuild( MemberReference.CreateAndBuild(x), MemberReference.CreateAndBuild(y)), MemberReference.CreateAndBuild(x)), ReturnOperation.CreateAndBuild(MemberReference.CreateAndBuild(x)) }, Array.Empty <ICodeElement>()) ) }, Array.Empty <ICodeElement>()), MemberReference.CreateAndBuild(MemberDefinition.CreateAndBuild(new NameKey("create-accululator"), 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>())); }
public override bool Equals(object other) { if (!(other is NameKey)) { return(false); } NameKey nameKey = (NameKey)other; if (name == nameKey.name) { return(ns == nameKey.ns); } return(false); }
public void Indexator_GetValue_by_name_Test() { // Arrange var name1 = new NameKey(_nameKey1.Name); // Action var actualValuePairs = _userTypeCollection[name1]; // Assert Assert.IsTrue(actualValuePairs != null); var valuePairs = actualValuePairs.ToList(); Assert.IsTrue(valuePairs.Any()); Assert.AreEqual(_personUt1, valuePairs.First().Value); }
public void RegisterProperty(RedwoodProperty property) { var key = new NameKey(property.Name, property.OwnerType); propertiesLock.EnterWriteLock(); try { if (propertiesDict.ContainsKey(key)) throw new InvalidOperationException(string.Format("Redwood property {0} already exists on {1}.", property.Name, property.OwnerType.FullName)); propertiesDict.Add(key, property); } finally { propertiesLock.ExitWriteLock(); } }
public bool Equals(NameKey key) { return this.name.Equals(key.name) && this.ownerType == key.ownerType; }