Beispiel #1
0
 def type(self, idx):
     if self.stack.is_valid(idx):
         return LuaValue.type_of(self.stack.get(idx))
     return LuaType.NONE
Beispiel #2
0
 def get_i(self, idx, i):
     t = self.stack.get(idx)
     v = LuaState.get_table_val(t, i)
     self.stack.push(v)
     return LuaValue.type_of(v)
Beispiel #3
0
 def get_metatable_k(self, val):
     if isinstance(val, LuaTable):
         return val.metatable
     else:
         key = '_MT' + str(LuaValue.type_of(val))
         return self.registry.get(key)
Beispiel #4
0
 def get_table(self, idx):
     t = self.stack.get(idx)
     k = self.stack.pop()
     v = LuaState.get_table_val(t, k)
     self.stack.push(v)
     return LuaValue.type_of(v)
Beispiel #5
0
 def set_metatable_kv(self, val, mt):
     if isinstance(val, LuaTable):
         val.metatable = mt
     else:
         key = '_MT' + LuaValue.type_of(val)
         self.registry.put(key, mt)