Exemplo n.º 1
0
 public StackFrame(LVM vm)
 {
     this.vm = vm;
     uid     = vm.NewUID();
     context = new Dictionary <string, LuaBinder>();
     stack   = new Stack <LuaObject>();
 }
Exemplo n.º 2
0
 public Module(ModuleContext context)
 {
     this.context = context;
     vm           = context.vm;
     uid          = vm.NewUID();
     name         = context.name;
     codesList    = context.list;
     level        = context.level;
 }
Exemplo n.º 3
0
 public StackFrame(Module module, StackFrame parent)
 {
     this.parent = parent;
     this.module = module;
     vm          = parent.vm;
     uid         = vm.NewUID();
     codesList   = module.codesList;
     context     = new Dictionary <string, LuaBinder>();
     stack       = new Stack <LuaObject>();
     level       = parent.level + 1;
     executor    = parent.executor;
     iterator    = Execute();
 }
Exemplo n.º 4
0
        public LuaLibrary(LVM vm)
        {
            this.vm         = vm;
            stackFrame      = vm.stackFrame;
            Add(traceFunc   = new LuaNative(vm, "trace", Trace));
            Add(printFunc   = new LuaNative(vm, "print", Print));
            Add(lenFunc     = new LuaNative(vm, "len", Length));
            Add(pairsFunc   = new LuaNative(vm, "pairs", Pairs));
            Add(nextFunc    = new LuaNative(vm, "next", Next));
            Add(ipairsFunc  = new LuaNative(vm, "ipairs", IPairs));
            Add(iterFunc    = new LuaNative(vm, vm.NewUID(), Iterator));
            Add(setmetaFunc = new LuaNative(vm, "setmetatable", SetMetatable));
            Add(getmetaFunc = new LuaNative(vm, "getmetatable", GetMetatable));

            Add("table", table = vm.GetTable());
            table.Bind(vm.GetString("insert"), new LuaNative(vm, "insert", Insert));
        }
Exemplo n.º 5
0
 public LuaTuple(LVM vm, IEnumerable <LuaObject> list) : base(vm, Type.Tuple)
 {
     uid = vm.NewUID();
     AddRange(list);
 }
Exemplo n.º 6
0
 public LuaTable(LVM vm) : base(vm, Type.Table)
 {
     uid  = vm.NewUID();
     list = new LuaList(vm, this);
     dict = new LuaDict(vm, this);
 }
Exemplo n.º 7
0
 public LuaNative(LVM vm, string name, Action <StackFrame, LuaObject[]> func) : base(vm, Type.Native)
 {
     this.name = name;
     this.func = func;
     uid       = vm.NewUID();
 }
Exemplo n.º 8
0
 public LuaUserdata(LVM vm, object value) : base(vm, Type.Userdata)
 {
     this.value = value;
     uid        = vm.NewUID();
 }
Exemplo n.º 9
0
 public string NewUID()
 {
     return(vm.NewUID());
 }