// private float _ReadNumber() // { // do // { // _SaveAndNext(); // } while( _CurrentIsDigit() || Current == '.' ); // if( Current == 'E' || Current == 'e' ) // { // _SaveAndNext(); // if( Current == '+' || Current == '-' ) // _SaveAndNext(); // } // while( _CurrentIsAlpha() || _CurrentIsDigit() || Current == '_' ) // _SaveAndNext(); // float ret; // if( !Single.TryParse( _GetSavedString(), out ret ) ) // _Error( "malformed number" ); // return ret; // } private void _Error(string error) { Lua.O_PushString(string.Format( "{0}:{1}: {2}", Source, LineNumber, error)); Lua.D_Throw(ThreadStatus.LUA_ERRSYNTAX); }
public static LuaProto LoadBinary(ILuaState lua, ILoadInfo loadinfo, string name) { try { BinaryBytesReader reader = new BinaryBytesReader(loadinfo); Undump undump = new Undump(reader); undump.LoadHeader(); return(undump.LoadFunction()); } catch (UndumpException e) { LuaState Lua = (LuaState)lua; Lua.O_PushString(string.Format( "{0}: {1} precompiled chunk", name, e.Why)); Lua.D_Throw(ThreadStatus.LUA_ERRSYNTAX); return(null); } }