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 StructureFrame(ArrayFrame original)
     : base(original)
 {
 }
 public ScopeFrame(ArrayFrame original, string Name, FrameTypes Type)
     : base(original)
 {
     this.Name = Name;
     this.Type = Type;
 }
        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;
            }
        }
Example #10
0
 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);
 }