Ejemplo n.º 1
0
 public VariableTable(FStruct _struc, String _name, String _delim, FStruct _fs)
     : base(_struc)
 {
     name  = _name;
     delim = _delim;
     fs    = _fs;
 }
Ejemplo n.º 2
0
        public static SizeBufferTable loadEntry(FStruct _struc, String name, List <string> parms)
        {
            String          delim = parms[1].Trim();
            SizeBufferTable f     = new SizeBufferTable(_struc, name, delim);

            return(f);
        }
Ejemplo n.º 3
0
        public static IntField loadEntry(FStruct _struct, string name, List <string> fparams)
        {
            int      width = Int32.Parse(fparams[1].Trim());
            IntField f     = new IntField(_struct, name, width);

            return(f);
        }
Ejemplo n.º 4
0
        public static VariableBuffer loadEntry(FStruct _struct, string name, List <string> fparams)
        {
            String         _delim = fparams[1].Trim();
            VariableBuffer f      = new VariableBuffer(_struct, name, _delim);

            return(f);
        }
Ejemplo n.º 5
0
        public static FixedBuffer loadEntry(FStruct _struct, string name, List <string> fparams)
        {
            int         width = Int32.Parse(fparams[1].Trim());
            FixedBuffer f     = new FixedBuffer(_struct, name, width);

            return(f);
        }
Ejemplo n.º 6
0
        public static VariableTable loadEntry(FStruct _struc, String name, List <string> parms)
        {
            String        delim = parms[1].Trim();
            FStruct       fs    = (FStruct)_struc.format.structs.getEntry(parms[2].Trim());
            VariableTable f     = new VariableTable(_struc, name, delim, fs);

            return(f);
        }
Ejemplo n.º 7
0
        public static FField loadField(FStruct fs, String fname, List <String> parms)
        {
            FField f = null;

            //check for loaded struct
            FEntry ftype = fs.format.structs.getEntry(parms[0].ToLower());

            if (ftype != null)
            {
                f = new StructField(fs, fname, (FStruct)ftype);
            }

            //else is a predefined struct
            else
            {
                switch (parms[0])
                {
                case "int":
                    f = IntField.loadEntry(fs, fname, parms);
                    break;

                case "fixedstr":
                    f = FixedString.loadEntry(fs, fname, parms);
                    break;

                case "fixedbuf":
                    f = FixedBuffer.loadEntry(fs, fname, parms);
                    break;

                case "varbuf":
                    f = VariableBuffer.loadEntry(fs, fname, parms);
                    break;

                case "vartable":
                    f = VariableTable.loadEntry(fs, fname, parms);
                    break;

                case "sizebuftable":
                    f = SizeBufferTable.loadEntry(fs, fname, parms);
                    break;

                default:
                    break;
                }
            }

            return(f);
        }
Ejemplo n.º 8
0
        //use hard coded fields for now
        public static Format loadFormatFile(string filepath)
        {
            Format format = new Format();

            EnamlData gosling = EnamlData.loadFromFile(filepath);

            string gosVersion = gosling.getStringValue("Gosling.version", "");

            //read in structure data
            List <String> structs = gosling.getPathKeys("structs");

            foreach (String structname in structs)
            {
                FStruct       fs        = new FStruct(format, structname);
                List <String> fields    = gosling.getPathKeys("structs." + structname);
                String        fieldpath = "structs." + structname + ".";
                foreach (String fieldname in fields)
                {
                    String        fline = gosling.getStringValue(fieldpath + fieldname, "");
                    List <String> parms = getParams(fline);
                    FField        f     = loadField(fs, fieldname, parms);
                    fs.fields.Add(f);
                    fs.symTable.addEntry(fieldname, f);
                }
                format.structs.addEntry(structname, fs);
            }

            //read in file structure data
            format.fyle = new FStruct(format, "file");
            List <String> ffields = gosling.getPathKeys("file");

            foreach (String fieldname in ffields)
            {
                String        fline = gosling.getStringValue("file." + fieldname, "").Trim();
                List <String> parms = getParams(fline);
                FField        f     = loadField(format.fyle, fieldname, parms);
                format.fyle.fields.Add(f);
                format.fyle.symTable.addEntry(fieldname, f);
            }

            return(format);
        }
Ejemplo n.º 9
0
 public StructField(FStruct _struct, String _name, FStruct _ftype)
     : base(_struct)
 {
     name  = _name;
     ftype = _ftype;
 }
Ejemplo n.º 10
0
 public FField(FStruct _struct)
     : base(_struct.format)
 {
     structure = _struct;
 }
Ejemplo n.º 11
0
 public SizeBufferTable(FStruct _struc, String _name, String _delim)
     : base(_struc)
 {
     name  = _name;
     delim = _delim;
 }
Ejemplo n.º 12
0
 public VariableBuffer(FStruct _struct, string _name, String _delim)
     : base(_struct)
 {
     name  = _name;
     delim = _delim;
 }
Ejemplo n.º 13
0
 public FixedBuffer(FStruct _struct, string _name, int _width)
     : base(_struct)
 {
     name  = _name;
     width = _width;
 }
Ejemplo n.º 14
0
 public FixedString(FStruct _struct, String _name, int _width)
     : base(_struct)
 {
     name  = _name;
     width = _width;
 }
Ejemplo n.º 15
0
 public IntField(FStruct _struct, String _name, int _width)
     : base(_struct)
 {
     name  = _name;
     width = _width;
 }