コード例 #1
0
        Object readConstant(BuffReader buf)
        {
            switch (buf.ReadByte())
            {
            case TAG_NIL:
                return(null);

            case TAG_BOOLEAN:
                return(buf.ReadByte() != 0);

            case TAG_INTEGER:
                return(buf.ReadInt64());

            case TAG_NUMBER:
                return(buf.ReadDouble());

            case TAG_SHORT_STR:
                return(buf.ReadLuaString());

            case TAG_LONG_STR:
                return(buf.ReadLuaString());

            default:
            {
            }
                return(null);
            }
        }
コード例 #2
0
 void readUpvalueNames(BuffReader buf)
 {
     UpvalueNames = new string[buf.ReadInt32()];
     for (int i = 0; i < UpvalueNames.Length; i++)
     {
         UpvalueNames[i] = buf.ReadLuaString();
     }
 }
コード例 #3
0
        public void Read(BuffReader buffReader, string parentSource)
        {
            Source = buffReader.ReadLuaString();
            if (string.Empty == Source)
            {
                Source = parentSource;
            }
            LineDefined     = buffReader.ReadInt32();
            LastLineDefined = buffReader.ReadInt32();
            NumParams       = buffReader.ReadByte();
            IsVararg        = buffReader.ReadByte();
            MaxStackSize    = buffReader.ReadByte();

            readCode(buffReader);
            readConstants(buffReader);
            readUpvalues(buffReader);
            readProtos(buffReader, Source);
            readLineInfo(buffReader);
            readLocVars(buffReader);
            readUpvalueNames(buffReader);
        }
コード例 #4
0
 public void Read(BuffReader buf)
 {
     VarName = buf.ReadLuaString();
     StartPc = buf.ReadInt32();
     EndPc   = buf.ReadInt32();
 }