public static void luaZ_resizebuffer(LuaState L, Mbuffer buff, int size) { if (buff.buffer == null) buff.buffer = new CharPtr(); LuaMReallocVector(L, ref buff.buffer.chars, (int)buff.buffsize, size); buff.buffsize = (uint)buff.buffer.chars.Length; }
public static void luaZ_resizebuffer(LuaState L, Mbuffer buff, int size) { if (buff.buffer == null) { buff.buffer = new CharPtr(); } LuaMReallocVector(L, ref buff.buffer.chars, (int)buff.buffsize, size); buff.buffsize = (uint)buff.buffer.chars.Length; }
public static void luaZ_resizebuffer(lua_State L, Mbuffer buff, int size) { if (buff.buffer == null) //FIXME:added { buff.buffer = new CharPtr(); //FIXME:added } luaM_reallocvector(L, ref buff.buffer.chars, (int)buff.buffsize, size); buff.buffsize = (uint)buff.buffer.chars.Length; }
/* ------------------------------------------------------------------------ */ public static CharPtr luaZ_openspace(lua_State L, Mbuffer buff, uint n) { if (n > buff.buffsize) { if (n < LUA_MINBUFFER) { n = LUA_MINBUFFER; } luaZ_resizebuffer(L, buff, (int)n); } return(buff.buffer); }
private static void save(LexState ls, int c) { Mbuffer b = ls.buff; if (b.n + 1 > b.buffsize) { uint newsize; if (b.buffsize >= MAX_SIZET / 2) luaX_lexerror(ls, "lexical element too long", 0); newsize = b.buffsize * 2; luaZ_resizebuffer(ls.L, b, (int)newsize); } b.buffer[b.n++] = (char)c; }
//static void/*l_noret*/ lexerror (LexState *ls, const char *msg, int token); private static void save(LexState ls, int c) { Mbuffer b = ls.buff; if (luaZ_bufflen(b) + 1 > luaZ_sizebuffer(b)) { uint newsize; if (luaZ_sizebuffer(b) >= MAX_SIZE / 2) { lexerror(ls, "lexical element too long", 0); } newsize = luaZ_sizebuffer(b) * 2; luaZ_resizebuffer(ls.L, b, (int)newsize); } b.buffer[luaZ_bufflen(b)] = (char)c; b.n++; //FXIME:???luaZ_bufflen(b)++ }
/* ** load precompiled chunk */ public static Proto luaU_undump(lua_State L, ZIO Z, Mbuffer buff, CharPtr name) { LoadState S = new LoadState(); if (name[0] == '@' || name[0] == '=') { S.name = name + 1; } else if (name[0] == LUA_SIGNATURE[0]) { S.name = "binary string"; } else { S.name = name; } S.L = L; S.Z = Z; S.b = buff; LoadHeader(S); return(LoadFunction(S, luaS_newliteral(L, "=?"))); }
public static Proto luaY_parser(LuaState L, ZIO z, Mbuffer buff, CharPtr name) { LexState lexstate = new LexState(); FuncState funcstate = new FuncState(); lexstate.buff = buff; LuaXSetInput(L, lexstate, z, luaS_new(L, name)); open_func(lexstate, funcstate); funcstate.f.is_vararg = VARARG_ISVARARG; /* main func. is always vararg */ LuaXNext(lexstate); /* read first token */ System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture; chunk(lexstate); check(lexstate, (int)RESERVED.TK_EOS); close_func(lexstate); LuaAssert(funcstate.prev == null); LuaAssert(funcstate.f.nups == 0); LuaAssert(lexstate.fs == null); return funcstate.f; }
//#if !defined(luai_verifycode) private static void luai_verifycode(lua_State L, Mbuffer b, Proto f) /* empty */ }
public static uint luaZ_bufflen(Mbuffer buff) { return buff.n; }
//#endif private static int buff2d(Mbuffer b, out lua_Number e) { return(luaO_str2d(luaZ_buffer(b), luaZ_bufflen(b) - 1, out e)); }
public static void luaZ_resetbuffer(Mbuffer buff) { buff.n = 0; }
public static uint luaZ_sizebuffer(Mbuffer buff) { return buff.buffsize; }
public static uint luaZ_sizebuffer(Mbuffer buff) { return(buff.buffsize); }
public static uint luaZ_bufflen(Mbuffer buff) { return(buff.n); }
public static CharPtr luaZ_buffer(Mbuffer buff) { return(buff.buffer); }
public static void luaZ_initbuffer(lua_State L, Mbuffer buff) { buff.buffer = null; buff.buffsize = 0; }
//#if !defined(getlocaledecpoint) //private static char getlocaledecpoint() { return localeconv().decimal_point[0];} //#endif private static int buff2num(Mbuffer b, TValue o) { return((luaO_str2num(luaZ_buffer(b), o) != 0)?1:0); }
/* ** load precompiled chunk */ public static Proto luaU_undump(lua_State L, ZIO Z, Mbuffer buff, CharPtr name) { LoadState S = new LoadState(); if (name[0] == '@' || name[0] == '=') S.name = name+1; else if (name[0]==LUA_SIGNATURE[0]) S.name="binary string"; else S.name=name; S.L=L; S.Z=Z; S.b=buff; LoadHeader(S); return LoadFunction(S,luaS_newliteral(L,"=?")); }
public static void luaZ_initbuffer(LuaState L, Mbuffer buff) { buff.buffer = null; }
} //FIXME:changed, ref->return //#if !defined(luai_verifycode) public static Proto luai_verifycode(lua_State L, Mbuffer b, Proto f) { return(f); }
public static CharPtr luaZ_buffer(Mbuffer buff) { return buff.buffer; }
public static void luaZ_freebuffer(LuaState L, Mbuffer buff) { luaZ_resizebuffer(L, buff, 0); }
public static void luaZ_buffremove(Mbuffer buff, int i) /*buff.n -= i;*/ buff
public static CharPtr luaZ_openspace(LuaState L, Mbuffer buff, uint n) { if (n > buff.buffsize) { if (n < LUAMINBUFFER) n = LUAMINBUFFER; luaZ_resizebuffer(L, buff, (int)n); } return buff.buffer; }
public static void luaZ_freebuffer(lua_State L, Mbuffer buff) { luaZ_resizebuffer(L, buff, 0); }