Beispiel #1
0
        internal static ObjLuaCode Unserialize(System.IO.BinaryReader reader, ObjLuaFunction parent)
        {
            uint       val = reader.ReadUInt32();
            ObjLuaCode ret = ObjLuaCode.CreateOperator(val, parent);

            return(ret);
        }
Beispiel #2
0
        public void Dispose()
        {
            parent = null;
            str    = null;

            badd    = null;
            bheader = null;
            bdata   = null;
        }
Beispiel #3
0
        public static ObjLuaCode CreateOperator(uint val, ObjLuaFunction parent)
        {
            byte oc = GetOpCode(val, parent);
            Type t  = GetOpcodeType(oc);

            ObjLuaCode ret = (ObjLuaCode)System.Activator.CreateInstance(t, new object[] { val, parent });

            return(ret);
        }
Beispiel #4
0
        public ObjLuaConstant(ObjLuaFunction parent)
        {
            this.parent = parent;
            str         = "";


            bdata   = new uint[0];
            badd    = new byte[0];
            bheader = new byte[3];
        }
Beispiel #5
0
        public ObjLua() : base()
        {
            resversion  = 0;
            version     = 0x50;
            byteorder   = Endian.little;
            intsz       = 4;
            sztsz       = 4;
            instsz      = 4;
            operandbits = 6;
            bits1       = 8;
            bits2       = 9;
            bits3       = 9;
            nrsz        = 8;
            id          = 0x61754C1B;
            sample      = new byte[] { 0xb6, 0x09, 0x93, 0x68, 0xe7, 0xf5, 0x7d, 0x41 };

            flname = "";

            root = new ObjLuaFunction(this);
        }
Beispiel #6
0
 public ObjLuaSourceLine(ObjLuaFunction parent)
 {
     this.parent = parent;
 }
Beispiel #7
0
        internal void Unserialize(System.IO.BinaryReader reader)
        {
            contants.Clear();
            functions.Clear();
            codes.Clear();
            srcln.Clear();
            local.Clear();
            upval.Clear();

            name = ObjLua.ReadString(reader);

            linedef = reader.ReadUInt32();
            nups    = reader.ReadByte();
            argc    = reader.ReadByte();
            isinout = reader.ReadByte();
            stacksz = reader.ReadByte();

            uint linenfosz = reader.ReadUInt32();

            for (uint i = 0; i < linenfosz; i++)
            {
                ObjLuaSourceLine item = new ObjLuaSourceLine(this);
                item.Unserialize(reader);

                srcln.Add(item);
            }

            uint locvarsz = reader.ReadUInt32();

            for (uint i = 0; i < locvarsz; i++)
            {
                ObjLuaLocalVar item = new ObjLuaLocalVar(this);
                item.Unserialize(reader);

                local.Add(item);
            }

            uint upvalsz = reader.ReadUInt32();

            for (uint i = 0; i < upvalsz; i++)
            {
                ObjLuaUpValue item = new ObjLuaUpValue(this);
                item.Unserialize(reader);

                upval.Add(item);
            }

            uint constsz = reader.ReadUInt32();

            for (uint i = 0; i < constsz; i++)
            {
                ObjLuaConstant item = new ObjLuaConstant(this);
                item.Unserialize(reader);

                contants.Add(item);
            }

            uint fncsz = reader.ReadUInt32();

            for (uint i = 0; i < fncsz; i++)
            {
                ObjLuaFunction item = new ObjLuaFunction(this.parent);
                item.Unserialize(reader);

                functions.Add(item);
            }

            uint codesz = reader.ReadUInt32();

            for (uint i = 0; i < codesz; i++)
            {
                ObjLuaCode item = ObjLuaCode.Unserialize(reader, this);

                codes.Add(item);
            }
        }
Beispiel #8
0
 public ObjLuaCode(uint val, ObjLuaFunction parent)
 {
     this.parent = parent;
     this.val    = val;
 }
Beispiel #9
0
 public ObjLuaCode(ObjLuaFunction parent) : this(0, parent)
 {
 }
Beispiel #10
0
 protected static byte GetOpCode(uint val, ObjLuaFunction parent)
 {
     return((byte)((val & (parent.Parent.OpcodeMaks << parent.Parent.OpcodeShift)) >> parent.Parent.OpcodeShift));
 }
Beispiel #11
0
 public ObjLuaUpValue(ObjLuaFunction parent) : base(parent)
 {
 }
Beispiel #12
0
 public ObjLuaLocalVar(ObjLuaFunction parent)
 {
     this.parent = parent;
     name        = "";
 }