public ThreadStatusEnum Load(byte[] chunk, string chunkName, string mode) { Prototype proto = BinaryChunk.Undump(chunk); stack.Push(new Closure(proto)); return(ThreadStatusEnum.LUA_OK); }
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); } }
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); }
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(); }
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(); }