Exemplo n.º 1
0
        public ThreadStatusEnum Load(byte[] chunk, string chunkName, string mode)
        {
            Prototype proto = BinaryChunk.Undump(chunk);

            stack.Push(new Closure(proto));
            return(ThreadStatusEnum.LUA_OK);
        }
Exemplo n.º 2
0
 static void Main(string[] args)
 {
     if (args.Length > 0)
     {
         string path = Path.GetFullPath(args[0]);
         Console.WriteLine($"path {path}");
         byte[]    data  = File.ReadAllBytes(Path.GetFullPath(args[0]));
         Prototype proto = BinaryChunk.Undump(data);
         luaMain(proto);
     }
 }
Exemplo n.º 3
0
        public int Load(ref byte[] chunk, string chunkName, string mode)
        {
            var proto = BinaryChunk.Undump(chunk);
            var c     = Closure.newLuaClosure(proto);

            stack.push(c);
            if (proto.Upvalues.Length > 0)
            {
                var env = registry.get(Consts.LUA_RIDX_GLOBALS);
                c.upvals[0] = new Upvalue(env);
            }

            return(0);
        }
Exemplo n.º 4
0
        private static void Main(string[] args)
        {
//            uint[] ints =
//            {
//                1,
//                16449,
//                32897,
//                16577,
//                2147532904, 37798224, 46137375, 2147483678, 65549, 2147385447, 8388646
//            };
//            foreach (var VARIABLE in ints)
//            {
//                var abc = new Instruction(VARIABLE).ABC();
//               // Console.WriteLine(abc);
//                var a = abc.Item1 + 1;
//                var b = abc.Item2;
//                var c = abc.Item3;
//
//                if (b > 0xFF)
//                {
//                    b=b & 0xFF;
//                }
//                else
//                {
//                    b++;
//                }
//                if (c > 0xFF)
//                {
//                    c=c & 0xFF;
//                }
//                else
//                {
//                    c++;
//                }
//                Console.WriteLine(VARIABLE+"  "+b+"  "+c);
//                var rk = new Instruction(VARIABLE).ABC().Item2;
//                var rk2 = new Instruction(VARIABLE).ABC().Item3;
//                if (rk > 0xFF)
//                {
//                    Console.WriteLine(VARIABLE + ": " + (rk & 0xFF)+"  "+ (rk & 0xFF));
//                }
//                else
//                {
//                    Console.WriteLine(VARIABLE + ": " +(rk + 1));
//                }

            //     return;
            // Console.WriteLine((int) 2147532904 >> 14);
            //   Console.WriteLine(Instruction.MAXARG_sBx);
            //decimal d =Convert.ToDecimal(66.24*100.0d) ;
            //Console.Write("{0:G55}",d);
//            var ls = LuaState.New();
//            ls.PushInteger(1);
//            ls.PushString("2.0");
//            ls.PushString("3.0");
//            ls.PushNumber(4.0);
//            printStack(ls);
//
//            ls.Arith(Consts.LUA_OPADD);
//            printStack(ls);
//            ls.Arith(Consts.LUA_OPBNOT);
//            printStack(ls);
//            ls.Len(2);
//            printStack(ls);
//            ls.Concat(3);
//            printStack(ls);
//            ls.PushBoolean(ls.Compare(1,2,Consts.LUA_OPLE));
//            printStack(ls);

//            ls.PushBoolean(true);
//            printStack(ls);
//            ls.PushInteger(10);
//            printStack(ls);
//            ls.PushNil();
//            printStack(ls);
//            ls.PushString("hello");
//            printStack(ls);
//            ls.PushValue(-4);
//            printStack(ls);
//            ls.Replace(3);
//            printStack(ls);
//            ls.SetTop(6);
//            printStack(ls);
//            ls.Remove(-3);
//            printStack(ls);
//            ls.SetTop(-5);
//            printStack(ls);
//            ls.PushNumber(34.2);
//            printStack(ls);
//            ls.PushString("SS");
//            printStack(ls);

            if (args.Length <= 0)
            {
                return;
            }
            try
            {
                var fs   = File.OpenRead(args[0]);
                var data = new byte[fs.Length];
                fs.Read(data, 0, data.Length);
                var proto = BinaryChunk.Undump(data);
                luaMain(proto);
                // list(proto);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }

            //            Console.ReadKey();
        }
Exemplo n.º 5
0
        private static void Main(string[] args)
        {
            // Console.WriteLine((int) 2147532904 >> 14);
            //   Console.WriteLine(Instruction.MAXARG_sBx);
            //decimal d =Convert.ToDecimal(66.24*100.0d) ;
            //Console.Write("{0:G55}",d);
//            var ls = LuaState.New();
//            ls.PushInteger(1);
//            ls.PushString("2.0");
//            ls.PushString("3.0");
//            ls.PushNumber(4.0);
//            printStack(ls);
//
//            ls.Arith(Consts.LUA_OPADD);
//            printStack(ls);
//            ls.Arith(Consts.LUA_OPBNOT);
//            printStack(ls);
//            ls.Len(2);
//            printStack(ls);
//            ls.Concat(3);
//            printStack(ls);
//            ls.PushBoolean(ls.Compare(1,2,Consts.LUA_OPLE));
//            printStack(ls);

//            ls.PushBoolean(true);
//            printStack(ls);
//            ls.PushInteger(10);
//            printStack(ls);
//            ls.PushNil();
//            printStack(ls);
//            ls.PushString("hello");
//            printStack(ls);
//            ls.PushValue(-4);
//            printStack(ls);
//            ls.Replace(3);
//            printStack(ls);
//            ls.SetTop(6);
//            printStack(ls);
//            ls.Remove(-3);
//            printStack(ls);
//            ls.SetTop(-5);
//            printStack(ls);
//            ls.PushNumber(34.2);
//            printStack(ls);
//            ls.PushString("SS");
//            printStack(ls);

            if (args.Length <= 0)
            {
                return;
            }
            try
            {
                var fs   = File.OpenRead(args[0]);
                var data = new byte[fs.Length];
                fs.Read(data, 0, data.Length);
                var proto = BinaryChunk.Undump(data);
                luaMain(proto);
                // list(proto);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }

            //            Console.ReadKey();
        }