Lua_Assert.pas 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. //******************************************************************************
  2. //*** LUA SCRIPT FUNCTIONS ***
  3. //*** ***
  4. //*** (c) Massimo Magnano 2005 ***
  5. //*** ***
  6. //*** ***
  7. //******************************************************************************
  8. // File : Lua_Assert.pas
  9. //
  10. // Description : Access from Lua scripts to RunTime Debug.
  11. //
  12. //******************************************************************************
  13. unit Lua_Assert;
  14. interface
  15. uses Lua, Classes;
  16. procedure RegisterFunctions(L: Plua_State);
  17. implementation
  18. uses LuaUtils, RTDebug, SysUtils;
  19. function LuaRTAssert(L: Plua_State): Integer; cdecl;
  20. Var
  21. Condition :Boolean;
  22. TrueStr,
  23. FalseStr :String;
  24. NParams :Integer;
  25. begin
  26. Result := 0;
  27. NParams := lua_gettop(L);
  28. if (NParams=3)
  29. then begin
  30. try
  31. Condition := LuaToBoolean(L, 1);
  32. TrueStr := LuaToString(L, 2);
  33. FalseStr := LuaToString(L, 3);
  34. RTAssert(0, Condition, 'Lua : '+TrueStr, 'Lua : '+FalseStr, 0);
  35. except
  36. On E:Exception do Result :=0;
  37. end;
  38. end;
  39. end;
  40. procedure RegisterFunctions(L: Plua_State);
  41. begin
  42. LuaRegister(L, 'RTAssert', LuaRTAssert);
  43. end;
  44. end.