public static GenericFrame CopyAndPreserveHeirarchy(GenericFrame oval) { ScopeFrame SCF = new ScopeFrame(); StructureFrame SF = new StructureFrame(); ArrayFrame AF = new ArrayFrame(); GenericFrame GF = new GenericFrame(); if (GF.GetType() == oval.GetType()) { return(oval); } else if (AF.GetType() == oval.GetType()) { AF = (ArrayFrame)oval; return(AF); } else if (SF.GetType() == oval.GetType()) { SF = (StructureFrame)oval; return(SF); } else { SCF = (ScopeFrame)oval; return(SCF); } }
public ArrayFrame(ArrayFrame AF) { /*if(AF.ResolvedType != ResolvedType) * Error(String.Format("Attempting to copy values of {0} array into {1} array", AF.ResolvedType, ResolvedType)); * if(Dimensions.Length == AF.Dimensions.Length) { * int i = 0; * foreach(int d in Dimensions) { * if(d != AF.Dimensions[i++]) * Error("Dimensions of arrays are not the same"); * } * } else { * Error("Dimensions of arrays are not the same"); * }*/ ResolvedType = AF.ResolvedType; Dimensions = AF.Dimensions; base.Merge(AF); }
public IDPacket GET(string name) { if (current_scope.Primitives.Numbers.ContainsKey(name)) { return(IDPacket.CreateIDPacket(this, name, IdentityType.Number)); } else if (current_scope.Primitives.Booleans.ContainsKey(name)) { return(IDPacket.CreateIDPacket(this, name, IdentityType.Boolean)); } else if (current_scope.Primitives.Text.ContainsKey(name)) { return(IDPacket.CreateIDPacket(this, name, IdentityType.Text)); } else if (current_scope.Generics.ContainsKey(name)) { IDPacket StructPacket = IDPacket.CreateIDPacket(this, name, IdentityType.Structure); GenericFrame GF; ArrayFrame AF = new ArrayFrame(); TryGetGeneric(StructPacket, out GF); if (GF.GetType() == AF.GetType()) { AF = (ArrayFrame)GF; StructPacket.ArrayType = AF.ResolvedType; } return(StructPacket); } else if (current_scope.Functions.ContainsKey(name)) { return(IDPacket.CreateIDPacket(this, name, IdentityType.Function)); } else { return(null); } }
public ScopeFrame(ArrayFrame original, string Name, FrameTypes Type) : base(original) { this.Name = Name; this.Type = Type; }
public StructureFrame(ArrayFrame original) : base(original) { }
public IDPacket GET(string name) { if (current_scope.Primitives.Numbers.ContainsKey (name)) { return IDPacket.CreateIDPacket (this, name, IdentityType.Number); } else if (current_scope.Primitives.Booleans.ContainsKey (name)) { return IDPacket.CreateIDPacket (this, name, IdentityType.Boolean); } else if (current_scope.Primitives.Text.ContainsKey (name)) { return IDPacket.CreateIDPacket (this, name, IdentityType.Text); } else if (current_scope.Generics.ContainsKey (name)) { IDPacket StructPacket = IDPacket.CreateIDPacket (this, name, IdentityType.Structure); GenericFrame GF; ArrayFrame AF = new ArrayFrame(); TryGetGeneric (StructPacket, out GF); if (GF.GetType () == AF.GetType()) { AF = (ArrayFrame)GF; StructPacket.ArrayType = AF.ResolvedType; } return StructPacket; } else if (current_scope.Functions.ContainsKey (name)) { return IDPacket.CreateIDPacket (this, name, IdentityType.Function); } else { return null; } }
public static GenericFrame CopyAndPreserveHeirarchy(GenericFrame oval) { ScopeFrame SCF = new ScopeFrame (); StructureFrame SF = new StructureFrame (); ArrayFrame AF = new ArrayFrame (); GenericFrame GF = new GenericFrame (); if (GF.GetType () == oval.GetType ()) { return oval; } else if (AF.GetType () == oval.GetType ()) { AF = (ArrayFrame)oval; return AF; } else if (SF.GetType () == oval.GetType ()) { SF = (StructureFrame)oval; return SF; } else { SCF = (ScopeFrame)oval; return SCF; } }
public ArrayFrame(ArrayFrame AF) { /*if(AF.ResolvedType != ResolvedType) Error(String.Format("Attempting to copy values of {0} array into {1} array", AF.ResolvedType, ResolvedType)); if(Dimensions.Length == AF.Dimensions.Length) { int i = 0; foreach(int d in Dimensions) { if(d != AF.Dimensions[i++]) Error("Dimensions of arrays are not the same"); } } else { Error("Dimensions of arrays are not the same"); }*/ ResolvedType = AF.ResolvedType; Dimensions = AF.Dimensions; base.Merge(AF); }