hedgewars/LuaPas.pas
author koda
Sat, 20 Mar 2010 15:16:59 +0000
changeset 3025 01682ec58eb0
parent 2948 3f21a9dc93d0
child 3043 3acdb4dac6eb
permissions -rw-r--r--
update project for ipad target relocate objects (windbar, fps, timer) so that window size doesn't matter move touch input in its custom controller rather than hack sdl one
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
     1
unit LuaPas;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
     2
85f6425a4d74 Engine:
smxx
parents:
diff changeset
     3
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
     4
 * A complete Pascal wrapper for Lua 5.1 DLL module.
85f6425a4d74 Engine:
smxx
parents:
diff changeset
     5
 *
85f6425a4d74 Engine:
smxx
parents:
diff changeset
     6
 * Created by Geo Massar, 2006
85f6425a4d74 Engine:
smxx
parents:
diff changeset
     7
 * Distributed as free/open source.
85f6425a4d74 Engine:
smxx
parents:
diff changeset
     8
 *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
     9
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    10
interface
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    11
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    12
{.$DEFINE LUA_GETHOOK}
2924
908851e59958 Engine:
smxx
parents: 2922
diff changeset
    13
{$INCLUDE "config.inc"}
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    14
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    15
type
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    16
  size_t   = type Cardinal;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    17
  Psize_t  = ^size_t;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    18
  PPointer = ^Pointer;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    19
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    20
  lua_State = record end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    21
  Plua_State = ^lua_State;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    22
2922
34efcb0681d8 Engine:
smxx
parents: 2920
diff changeset
    23
const
2924
908851e59958 Engine:
smxx
parents: 2922
diff changeset
    24
    LuaLibName = cLuaLibrary;
2922
34efcb0681d8 Engine:
smxx
parents: 2920
diff changeset
    25
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    26
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    27
(*****************************************************************************)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    28
(*                               luaconfig.h                                 *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    29
(*****************************************************************************)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    30
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    31
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    32
** $Id: luaconf.h,v 1.81 2006/02/10 17:44:06 roberto Exp $
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    33
** Configuration file for Lua
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    34
** See Copyright Notice in lua.h
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    35
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    36
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    37
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    38
** {==================================================================
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    39
@@ LUA_NUMBER is the type of numbers in Lua.
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    40
** CHANGE the following definitions only if you want to build Lua
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    41
** with a number type different from double. You may also need to
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    42
** change lua_number2int & lua_number2integer.
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    43
** ===================================================================
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    44
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    45
type
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    46
  LUA_NUMBER_  = type Double;            // ending underscore is needed in Pascal
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    47
  LUA_INTEGER_ = type LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    48
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    49
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    50
@@ LUA_IDSIZE gives the maximum size for the description of the source
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    51
@* of a function in debug information.
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    52
** CHANGE it if you want a different size.
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    53
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    54
const
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    55
  LUA_IDSIZE = 60;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    56
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    57
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    58
@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system.
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    59
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    60
const
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    61
  LUAL_BUFFERSIZE = 1024;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    62
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    63
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    64
@@ LUA_PROMPT is the default prompt used by stand-alone Lua.
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    65
@@ LUA_PROMPT2 is the default continuation prompt used by stand-alone Lua.
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    66
** CHANGE them if you want different prompts. (You can also change the
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    67
** prompts dynamically, assigning to globals _PROMPT/_PROMPT2.)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    68
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    69
const
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    70
  LUA_PROMPT  = '> ';
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    71
  LUA_PROMPT2 = '>> ';
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    72
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    73
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    74
@@ lua_readline defines how to show a prompt and then read a line from
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    75
@* the standard input.
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    76
@@ lua_saveline defines how to "save" a read line in a "history".
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    77
@@ lua_freeline defines how to free a line read by lua_readline.
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    78
** CHANGE them if you want to improve this functionality (e.g., by using
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    79
** GNU readline and history facilities).
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    80
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    81
function  lua_readline(L : Plua_State; var b : PChar; p : PChar): Boolean;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    82
procedure lua_saveline(L : Plua_State; idx : LongInt);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    83
procedure lua_freeline(L : Plua_State; b : PChar);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    84
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    85
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    86
@@ lua_stdin_is_tty detects whether the standard input is a 'tty' (that
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    87
@* is, whether we're running lua interactively).
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    88
** CHANGE it if you have a better definition for non-POSIX/non-Windows
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    89
** systems.
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    90
*/
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    91
#include <io.h>
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    92
#include <stdio.h>
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2924
diff changeset
    93
#define lua_stdin_is_tty()  _isatty(_fileno(stdin))
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    94
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    95
const
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    96
  lua_stdin_is_tty = TRUE;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    97
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    98
(*****************************************************************************)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
    99
(*                                  lua.h                                    *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   100
(*****************************************************************************)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   101
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   102
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   103
** $Id: lua.h,v 1.216 2006/01/10 12:50:13 roberto Exp $
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   104
** Lua - An Extensible Extension Language
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   105
** Lua.org, PUC-Rio, Brazil (http://www.lua.org)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   106
** See Copyright Notice at the end of this file
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   107
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   108
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   109
const
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   110
  LUA_VERSION     = 'Lua 5.1';
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   111
  LUA_VERSION_NUM = 501;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   112
  LUA_COPYRIGHT   = 'Copyright (C) 1994-2006 Tecgraf, PUC-Rio';
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   113
  LUA_AUTHORS     = 'R. Ierusalimschy, L. H. de Figueiredo & W. Celes';
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   114
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   115
  (* mark for precompiled code (`<esc>Lua') *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   116
  LUA_SIGNATURE = #27'Lua';
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   117
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   118
  (* option for multiple returns in `lua_pcall' and `lua_call' *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   119
  LUA_MULTRET = -1;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   120
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   121
  (*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   122
  ** pseudo-indices
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   123
  *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   124
  LUA_REGISTRYINDEX = -10000;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   125
  LUA_ENVIRONINDEX  = -10001;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   126
  LUA_GLOBALSINDEX  = -10002;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   127
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   128
function lua_upvalueindex(idx : LongInt) : LongInt;   // a marco
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   129
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   130
const
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   131
  (* thread status; 0 is OK *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   132
  LUA_YIELD_    = 1;     // Note: the ending underscore is needed in Pascal
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   133
  LUA_ERRRUN    = 2;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   134
  LUA_ERRSYNTAX = 3;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   135
  LUA_ERRMEM    = 4;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   136
  LUA_ERRERR    = 5;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   137
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   138
type
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   139
  lua_CFunction = function(L : Plua_State) : LongInt; cdecl;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   140
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   141
  (*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   142
  ** functions that read/write blocks when loading/dumping Lua chunks
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   143
  *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   144
  lua_Reader = function (L : Plua_State; ud : Pointer;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   145
                         sz : Psize_t) : PChar; cdecl;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   146
  lua_Writer = function (L : Plua_State; const p : Pointer; sz : size_t;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   147
                         ud : Pointer) : LongInt; cdecl;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   148
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   149
  (*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   150
  ** prototype for memory-allocation functions
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   151
  *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   152
  lua_Alloc = function (ud, ptr : Pointer;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   153
                        osize, nsize : size_t) : Pointer; cdecl;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   154
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   155
const
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   156
  (*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   157
  ** basic types
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   158
  *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   159
  LUA_TNONE          = -1;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   160
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   161
  LUA_TNIL           = 0;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   162
  LUA_TBOOLEAN       = 1;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   163
  LUA_TLIGHTUSERDATA = 2;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   164
  LUA_TNUMBER        = 3;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   165
  LUA_TSTRING        = 4;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   166
  LUA_TTABLE         = 5;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   167
  LUA_TFUNCTION      = 6;
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2924
diff changeset
   168
  LUA_TUSERDATA      = 7;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   169
  LUA_TTHREAD        = 8;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   170
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   171
  (* minimum Lua stack available to a C function *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   172
  LUA_MINSTACK = 20;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   173
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   174
type
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   175
  (* type of numbers in Lua *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   176
  lua_Number = LUA_NUMBER_;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   177
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   178
  (* type for integer functions *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   179
  lua_Integer = LUA_INTEGER_;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   180
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   181
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   182
** state manipulation
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   183
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   184
function  lua_newstate(f : lua_Alloc; ud : Pointer) : Plua_State;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   185
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   186
procedure lua_close(L: Plua_State);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   187
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   188
function  lua_newthread(L : Plua_State) : Plua_State;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   189
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   190
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   191
function  lua_atpanic(L : Plua_State; panicf : lua_CFunction) : lua_CFunction;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   192
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   193
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   194
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   195
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   196
** basic stack manipulation
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   197
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   198
function  lua_gettop(L : Plua_State) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   199
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   200
procedure lua_settop(L : Plua_State; idx : LongInt);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   201
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   202
procedure lua_pushvalue(L : Plua_State; idx : LongInt);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   203
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   204
procedure lua_remove(L : Plua_State; idx : LongInt);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   205
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   206
procedure lua_insert(L : Plua_State; idx : LongInt);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   207
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   208
procedure lua_replace(L : Plua_State; idx : LongInt);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   209
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   210
function  lua_checkstack(L : Plua_State; sz : LongInt) : LongBool;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   211
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   212
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   213
procedure lua_xmove(src, dest : Plua_State; n : LongInt);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   214
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   215
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   216
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   217
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   218
** access functions (stack -> C)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   219
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   220
function lua_isnumber(L : Plua_State; idx : LongInt) : LongBool;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   221
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   222
function lua_isstring(L : Plua_State; idx : LongInt) : LongBool;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   223
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   224
function lua_iscfunction(L : Plua_State; idx : LongInt) : LongBool;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   225
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   226
function lua_isuserdata(L : Plua_State; idx : LongInt) : LongBool;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   227
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   228
function lua_type(L : Plua_State; idx : LongInt) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   229
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   230
function lua_typename(L : Plua_State; tp : LongInt) : PChar;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   231
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   232
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   233
function lua_equal(L : Plua_State; idx1, idx2 : LongInt) : LongBool;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   234
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   235
function lua_rawequal(L : Plua_State; idx1, idx2 : LongInt) : LongBool;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   236
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   237
function lua_lessthan(L : Plua_State; idx1, idx2 : LongInt) : LongBool;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   238
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   239
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   240
function lua_tonumber(L : Plua_State; idx : LongInt) : lua_Number;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   241
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   242
function lua_tointeger(L : Plua_State; idx : LongInt) : lua_Integer;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   243
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   244
function lua_toboolean(L : Plua_State; idx : LongInt) : LongBool;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   245
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   246
function lua_tolstring(L : Plua_State; idx : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   247
                       len : Psize_t) : PChar;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   248
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   249
function lua_objlen(L : Plua_State; idx : LongInt) : size_t;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   250
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   251
function lua_tocfunction(L : Plua_State; idx : LongInt) : lua_CFunction;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   252
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   253
function lua_touserdata(L : Plua_State; idx : LongInt) : Pointer;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   254
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   255
function lua_tothread(L : Plua_State; idx : LongInt) : Plua_State;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   256
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   257
function lua_topointer(L : Plua_State; idx : LongInt) : Pointer;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   258
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   259
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   260
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   261
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   262
** push functions (C -> stack)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   263
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   264
procedure lua_pushnil(L : Plua_State);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   265
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   266
procedure lua_pushnumber(L : Plua_State; n : lua_Number);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   267
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   268
procedure lua_pushinteger(L : Plua_State; n : lua_Integer);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   269
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   270
procedure lua_pushlstring(L : Plua_State; const s : PChar; ls : size_t);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   271
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   272
procedure lua_pushstring(L : Plua_State; const s : PChar);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   273
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   274
function  lua_pushvfstring(L : Plua_State;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   275
                           const fmt : PChar; argp : Pointer) : PChar;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   276
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   277
function  lua_pushfstring(L : Plua_State; const fmt : PChar) : PChar; varargs;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   278
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   279
procedure lua_pushcclosure(L : Plua_State; fn : lua_CFunction; n : LongInt);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   280
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   281
procedure lua_pushboolean(L : Plua_State; b : LongBool);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   282
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   283
procedure lua_pushlightuserdata(L : Plua_State; p : Pointer);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   284
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   285
function  lua_pushthread(L : Plua_state) : Cardinal;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   286
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   287
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   288
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   289
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   290
** get functions (Lua -> stack)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   291
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   292
procedure lua_gettable(L : Plua_State ; idx : LongInt);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   293
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   294
procedure lua_getfield(L : Plua_State; idx : LongInt; k : PChar);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   295
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   296
procedure lua_rawget(L : Plua_State; idx : LongInt);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   297
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   298
procedure lua_rawgeti(L : Plua_State; idx, n : LongInt);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   299
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   300
procedure lua_createtable(L : Plua_State; narr, nrec : LongInt);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   301
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   302
function  lua_newuserdata(L : Plua_State; sz : size_t) : Pointer;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   303
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   304
function  lua_getmetatable(L : Plua_State; objindex : LongInt) : LongBool;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   305
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   306
procedure lua_getfenv(L : Plua_State; idx : LongInt);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   307
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   308
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   309
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   310
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   311
** set functions (stack -> Lua)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   312
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   313
procedure lua_settable(L : Plua_State; idx : LongInt);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   314
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   315
procedure lua_setfield(L : Plua_State; idx : LongInt; const k : PChar);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   316
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   317
procedure lua_rawset(L : Plua_State; idx : LongInt);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   318
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   319
procedure lua_rawseti(L : Plua_State; idx , n: LongInt);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   320
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   321
function lua_setmetatable(L : Plua_State; objindex : LongInt): LongBool;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   322
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   323
function lua_setfenv(L : Plua_State; idx : LongInt): LongBool;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   324
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   325
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   326
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   327
** `load' and `call' functions (load and run Lua code)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   328
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   329
procedure lua_call(L : Plua_State; nargs, nresults : LongInt);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   330
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   331
function  lua_pcall(L : Plua_State;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   332
                    nargs, nresults, errfunc : LongInt) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   333
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   334
function  lua_cpcall(L : Plua_State;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   335
                     func : lua_CFunction; ud : Pointer) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   336
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   337
function  lua_load(L : Plua_State; reader : lua_Reader;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   338
                   dt : Pointer; const chunkname : PChar) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   339
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   340
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   341
function lua_dump(L : Plua_State; writer : lua_Writer; data: Pointer) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   342
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   343
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   344
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   345
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   346
** coroutine functions
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   347
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   348
function lua_yield(L : Plua_State; nresults : LongInt) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   349
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   350
function lua_resume(L : Plua_State; narg : LongInt) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   351
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   352
function lua_status(L : Plua_State) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   353
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   354
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   355
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   356
** garbage-collection functions and options
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   357
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   358
const
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   359
  LUA_GCSTOP       = 0;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   360
  LUA_GCRESTART    = 1;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   361
  LUA_GCCOLLECT    = 2;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   362
  LUA_GCCOUNT      = 3;
2948
3f21a9dc93d0 Replace tabs with spaces using 'expand -t 4' command
unc0rr
parents: 2924
diff changeset
   363
  LUA_GCCOUNTB     = 4;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   364
  LUA_GCSTEP       = 5;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   365
  LUA_GCSETPAUSE   = 6;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   366
  LUA_GCSETSTEPMUL = 7;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   367
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   368
function lua_gc(L : Plua_State; what, data : LongInt) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   369
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   370
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   371
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   372
** miscellaneous functions
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   373
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   374
function lua_error(L : Plua_State) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   375
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   376
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   377
function lua_next(L : Plua_State; idx : LongInt) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   378
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   379
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   380
procedure lua_concat(L : Plua_State; n : LongInt);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   381
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   382
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   383
function  lua_getallocf(L : Plua_State; ud : PPointer) : lua_Alloc;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   384
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   385
procedure lua_setallocf(L : Plua_State; f : lua_Alloc; ud : Pointer);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   386
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   387
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   388
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   389
** ===============================================================
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   390
** some useful macros
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   391
** ===============================================================
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   392
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   393
procedure lua_pop(L : Plua_State; n : LongInt);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   394
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   395
procedure lua_newtable(L : Plua_State);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   396
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   397
procedure lua_register(L : Plua_State; n : PChar; f : lua_CFunction);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   398
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   399
procedure lua_pushcfunction(L : Plua_State; f : lua_CFunction);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   400
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   401
function  lua_strlen(L : Plua_State; idx : LongInt) : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   402
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   403
function lua_isfunction(L : Plua_State; n : LongInt) : Boolean;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   404
function lua_istable(L : Plua_State; n : LongInt) : Boolean;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   405
function lua_islightuserdata(L : Plua_State; n : LongInt) : Boolean;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   406
function lua_isnil(L : Plua_State; n : LongInt) : Boolean;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   407
function lua_isboolean(L : Plua_State; n : LongInt) : Boolean;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   408
function lua_isthread(L : Plua_State; n : LongInt) : Boolean;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   409
function lua_isnone(L : Plua_State; n : LongInt) : Boolean;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   410
function lua_isnoneornil(L : Plua_State; n : LongInt) : Boolean;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   411
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   412
procedure lua_pushliteral(L : Plua_State; s : PChar);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   413
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   414
procedure lua_setglobal(L : Plua_State; s : PChar);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   415
procedure lua_getglobal(L : Plua_State; s : PChar);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   416
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   417
function lua_tostring(L : Plua_State; idx : LongInt) : PChar;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   418
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   419
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   420
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   421
** compatibility macros and functions
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   422
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   423
function lua_open : Plua_State;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   424
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   425
procedure lua_getregistry(L : Plua_State);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   426
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   427
function lua_getgccount(L : Plua_State) : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   428
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   429
type
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   430
  lua_Chuckreader = type lua_Reader;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   431
  lua_Chuckwriter = type lua_Writer;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   432
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   433
(* ====================================================================== *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   434
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   435
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   436
** {======================================================================
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   437
** Debug API
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   438
** =======================================================================
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   439
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   440
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   441
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   442
** Event codes
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   443
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   444
const
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   445
  LUA_HOOKCALL    = 0;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   446
  LUA_HOOKRET     = 1;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   447
  LUA_HOOKLINE    = 2;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   448
  LUA_HOOKCOUNT   = 3;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   449
  LUA_HOOKTAILRET = 4;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   450
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   451
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   452
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   453
** Event masks
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   454
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   455
  LUA_MASKCALL  = 1 shl LUA_HOOKCALL;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   456
  LUA_MASKRET   = 1 shl LUA_HOOKRET;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   457
  LUA_MASKLINE  = 1 shl LUA_HOOKLINE;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   458
  LUA_MASKCOUNT = 1 shl LUA_HOOKCOUNT;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   459
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   460
type
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   461
  lua_Debug = packed record
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   462
    event : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   463
    name : PChar;          (* (n) *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   464
    namewhat : PChar;      (* (n) `global', `local', `field', `method' *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   465
    what : PChar;          (* (S) `Lua', `C', `main', `tail' *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   466
    source : PChar;        (* (S) *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   467
    currentline : LongInt; (* (l) *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   468
    nups : LongInt;        (* (u) number of upvalues *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   469
    linedefined : LongInt; (* (S) *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   470
    short_src : array [0..LUA_IDSIZE-1] of Char; (* (S) *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   471
    (* private part *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   472
    i_ci : LongInt;        (* active function *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   473
  end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   474
  Plua_Debug = ^lua_Debug;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   475
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   476
  (* Functions to be called by the debuger in specific events *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   477
  lua_Hook = procedure (L : Plua_State; ar : Plua_Debug); cdecl;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   478
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   479
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   480
function lua_getstack(L : Plua_State; level : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   481
                      ar : Plua_Debug) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   482
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   483
function lua_getinfo(L : Plua_State; const what : PChar;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   484
                     ar: Plua_Debug): LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   485
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   486
function lua_getlocal(L : Plua_State;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   487
                      ar : Plua_Debug; n : LongInt) : PChar;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   488
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   489
function lua_setlocal(L : Plua_State;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   490
                      ar : Plua_Debug; n : LongInt) : PChar;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   491
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   492
function lua_getupvalue(L : Plua_State; funcindex, n : LongInt) : PChar;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   493
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   494
function lua_setupvalue(L : Plua_State; funcindex, n : LongInt) : PChar;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   495
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   496
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   497
function lua_sethook(L : Plua_State; func : lua_Hook;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   498
                     mask, count: LongInt): LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   499
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   500
{$IFDEF LUA_GETHOOK}
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   501
function lua_gethook(L : Plua_State) : lua_Hook;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   502
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   503
{$ENDIF}
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   504
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   505
function lua_gethookmask(L : Plua_State) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   506
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   507
function lua_gethookcount(L : Plua_State) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   508
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   509
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   510
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   511
(*****************************************************************************)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   512
(*                                  lualib.h                                 *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   513
(*****************************************************************************)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   514
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   515
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   516
** $Id: lualib.h,v 1.36 2005/12/27 17:12:00 roberto Exp $
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   517
** Lua standard libraries
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   518
** See Copyright Notice at the end of this file
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   519
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   520
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   521
const
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   522
  (* Key to file-handle type *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   523
  LUA_FILEHANDLE  = 'FILE*';
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   524
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   525
  LUA_COLIBNAME   = 'coroutine';
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   526
  LUA_TABLIBNAME  = 'table';
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   527
  LUA_IOLIBNAME   = 'io';
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   528
  LUA_OSLIBNAME   = 'os';
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   529
  LUA_STRLIBNAME  = 'string';
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   530
  LUA_MATHLIBNAME = 'math';
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   531
  LUA_DBLIBNAME   = 'debug';
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   532
  LUA_LOADLIBNAME = 'package';
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   533
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   534
function luaopen_base(L : Plua_State) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   535
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   536
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   537
function luaopen_table(L : Plua_State) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   538
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   539
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   540
function luaopen_io(L : Plua_State) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   541
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   542
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   543
function luaopen_os(L : Plua_State) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   544
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   545
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   546
function luaopen_string(L : Plua_State) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   547
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   548
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   549
function luaopen_math(L : Plua_State) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   550
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   551
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   552
function luaopen_debug(L : Plua_State) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   553
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   554
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   555
function luaopen_package(L : Plua_State) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   556
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   557
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   558
procedure luaL_openlibs(L : Plua_State);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   559
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   560
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   561
procedure lua_assert(x : Boolean);    // a macro
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   562
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   563
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   564
(*****************************************************************************)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   565
(*                                  lauxlib.h                                *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   566
(*****************************************************************************)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   567
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   568
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   569
** $Id: lauxlib.h,v 1.87 2005/12/29 15:32:11 roberto Exp $
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   570
** Auxiliary functions for building Lua libraries
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   571
** See Copyright Notice at the end of this file.
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   572
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   573
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   574
// not compatibility with the behavior of setn/getn in Lua 5.0
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   575
function  luaL_getn(L : Plua_State; idx : LongInt) : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   576
procedure luaL_setn(L : Plua_State; i, j : LongInt);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   577
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   578
const
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   579
  LUA_ERRFILE = LUA_ERRERR + 1;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   580
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   581
type
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   582
  luaL_Reg = packed record
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   583
    name : PChar;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   584
    func : lua_CFunction;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   585
  end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   586
  PluaL_Reg = ^luaL_Reg;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   587
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   588
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   589
procedure luaL_openlib(L : Plua_State; const libname : PChar;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   590
                       const lr : PluaL_Reg; nup : LongInt);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   591
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   592
procedure luaL_register(L : Plua_State; const libname : PChar;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   593
                       const lr : PluaL_Reg);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   594
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   595
function luaL_getmetafield(L : Plua_State; obj : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   596
                           const e : PChar) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   597
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   598
function luaL_callmeta(L : Plua_State; obj : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   599
                       const e : PChar) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   600
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   601
function luaL_typerror(L : Plua_State; narg : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   602
                       const tname : PChar) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   603
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   604
function luaL_argerror(L : Plua_State; numarg : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   605
                       const extramsg : PChar) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   606
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   607
function luaL_checklstring(L : Plua_State; numArg : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   608
                           ls : Psize_t) : PChar;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   609
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   610
function luaL_optlstring(L : Plua_State; numArg : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   611
                         const def: PChar; ls: Psize_t) : PChar;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   612
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   613
function luaL_checknumber(L : Plua_State; numArg : LongInt) : lua_Number;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   614
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   615
function luaL_optnumber(L : Plua_State; nArg : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   616
                        def : lua_Number) : lua_Number;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   617
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   618
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   619
function luaL_checkinteger(L : Plua_State; numArg : LongInt) : lua_Integer;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   620
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   621
function luaL_optinteger(L : Plua_State; nArg : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   622
                        def : lua_Integer) : lua_Integer;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   623
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   624
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   625
procedure luaL_checkstack(L : Plua_State; sz : LongInt; const msg : PChar);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   626
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   627
procedure luaL_checktype(L : Plua_State; narg, t : LongInt);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   628
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   629
procedure luaL_checkany(L : Plua_State; narg : LongInt);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   630
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   631
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   632
function luaL_newmetatable(L : Plua_State; const tname : PChar) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   633
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   634
function luaL_checkudata(L : Plua_State; ud : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   635
                         const tname : PChar) : Pointer;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   636
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   637
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   638
procedure luaL_where(L : Plua_State; lvl : LongInt);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   639
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   640
function  luaL_error(L : Plua_State; const fmt : PChar) : LongInt; varargs;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   641
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   642
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   643
function luaL_checkoption(L : Plua_State; narg : LongInt; const def : PChar;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   644
                          const lst : array of PChar) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   645
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   646
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   647
function  luaL_ref(L : Plua_State; t : LongInt) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   648
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   649
procedure luaL_unref(L : Plua_State; t, ref : LongInt);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   650
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   651
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   652
function luaL_loadfile(L : Plua_State; const filename : PChar) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   653
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   654
function luaL_loadbuffer(L : Plua_State; const buff : PChar;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   655
                         sz : size_t; const name: PChar) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   656
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   657
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   658
function luaL_loadstring(L : Plua_State; const s : Pchar) : LongInt;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   659
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   660
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   661
function luaL_newstate : Plua_State;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   662
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   663
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   664
function luaL_gsub(L : Plua_State; const s, p, r : PChar) : PChar;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   665
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   666
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   667
function luaL_findtable(L : Plua_State; idx : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   668
                        const fname : PChar; szhint : LongInt) : PChar;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   669
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   670
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   671
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   672
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   673
** ===============================================================
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   674
** some useful macros
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   675
** ===============================================================
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   676
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   677
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   678
function luaL_argcheck(L : Plua_State; cond : Boolean; numarg : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   679
                       extramsg : PChar): LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   680
function luaL_checkstring(L : Plua_State; n : LongInt) : PChar;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   681
function luaL_optstring(L : Plua_State; n : LongInt; d : PChar) : PChar;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   682
function luaL_checkint(L : Plua_State; n : LongInt) : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   683
function luaL_optint(L : Plua_State; n, d : LongInt): LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   684
function luaL_checklong(L : Plua_State; n : LongInt) : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   685
function luaL_optlong(L : Plua_State; n : LongInt; d : LongInt) : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   686
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   687
function luaL_typename(L : Plua_State; idx : LongInt) : PChar;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   688
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   689
function luaL_dofile(L : Plua_State; fn : PChar) : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   690
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   691
function luaL_dostring(L : Plua_State; s : PChar) : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   692
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   693
procedure luaL_getmetatable(L : Plua_State; n : PChar);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   694
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   695
(* not implemented yet
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   696
#define luaL_opt(L,f,n,d) (lua_isnoneornil(L,(n)) ? (d) : f(L,(n)))
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   697
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   698
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   699
(*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   700
** {======================================================
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   701
** Generic Buffer manipulation
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   702
** =======================================================
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   703
*)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   704
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   705
type
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   706
  luaL_Buffer = packed record
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   707
    p : PChar;       (* current position in buffer *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   708
    lvl : LongInt;   (* number of strings in the stack (level) *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   709
    L : Plua_State;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   710
    buffer : array [0..LUAL_BUFFERSIZE-1] of Char;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   711
  end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   712
  PluaL_Buffer = ^luaL_Buffer;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   713
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   714
procedure luaL_addchar(B : PluaL_Buffer; c : Char);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   715
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   716
(* compatibility only *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   717
procedure luaL_putchar(B : PluaL_Buffer; c : Char);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   718
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   719
procedure luaL_addsize(B : PluaL_Buffer; n : LongInt);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   720
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   721
procedure luaL_buffinit(L : Plua_State; B : PluaL_Buffer);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   722
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   723
function  luaL_prepbuffer(B : PluaL_Buffer) : PChar;
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   724
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   725
procedure luaL_addlstring(B : PluaL_Buffer; const s : PChar; ls : size_t);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   726
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   727
procedure luaL_addstring(B : PluaL_Buffer; const s : PChar);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   728
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   729
procedure luaL_addvalue(B : PluaL_Buffer);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   730
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   731
procedure luaL_pushresult(B : PluaL_Buffer);
2799
558b29bf00c5 add a new way to fetch version info from pascal to c
koda
parents: 2786
diff changeset
   732
  cdecl; external LuaLibName;
2786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   733
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   734
(* ====================================================== *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   735
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   736
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   737
(* compatibility with ref system *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   738
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   739
(* pre-defined references *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   740
const
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   741
  LUA_NOREF  = -2;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   742
  LUA_REFNIL = -1;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   743
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   744
function lua_ref(L : Plua_State; lock : Boolean) : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   745
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   746
procedure lua_unref(L : Plua_State; ref : LongInt);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   747
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   748
procedure lua_getref(L : Plua_State; ref : LongInt);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   749
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   750
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   751
(******************************************************************************)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   752
(******************************************************************************)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   753
(******************************************************************************)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   754
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   755
implementation
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   756
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   757
uses
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   758
  SysUtils;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   759
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   760
(*****************************************************************************)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   761
(*                            luaconfig.h                                    *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   762
(*****************************************************************************)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   763
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   764
function  lua_readline(L : Plua_State; var b : PChar; p : PChar): Boolean;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   765
var
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   766
  s : AnsiString;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   767
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   768
  Write(p);                        // show prompt
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   769
  ReadLn(s);                       // get line
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   770
  b := PChar(s);                   //   and return it
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   771
  lua_readline := (b[0] <> #4);          // test for ctrl-D
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   772
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   773
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   774
procedure lua_saveline(L : Plua_State; idx : LongInt);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   775
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   776
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   777
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   778
procedure lua_freeline(L : Plua_State; b : PChar);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   779
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   780
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   781
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   782
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   783
(*****************************************************************************)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   784
(*                                  lua.h                                    *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   785
(*****************************************************************************)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   786
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   787
function lua_upvalueindex(idx : LongInt) : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   788
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   789
  lua_upvalueindex := LUA_GLOBALSINDEX - idx;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   790
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   791
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   792
procedure lua_pop(L : Plua_State; n : LongInt);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   793
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   794
  lua_settop(L, -n - 1);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   795
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   796
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   797
procedure lua_newtable(L : Plua_State);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   798
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   799
  lua_createtable(L, 0, 0);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   800
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   801
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   802
procedure lua_register(L : Plua_State; n : PChar; f : lua_CFunction);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   803
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   804
  lua_pushcfunction(L, f);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   805
  lua_setglobal(L, n);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   806
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   807
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   808
procedure lua_pushcfunction(L : Plua_State; f : lua_CFunction);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   809
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   810
  lua_pushcclosure(L, f, 0);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   811
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   812
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   813
function  lua_strlen(L : Plua_State; idx : LongInt) : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   814
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   815
  lua_strlen := lua_objlen(L, idx);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   816
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   817
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   818
function lua_isfunction(L : Plua_State; n : LongInt) : Boolean;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   819
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   820
  lua_isfunction := lua_type(L, n) = LUA_TFUNCTION;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   821
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   822
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   823
function lua_istable(L : Plua_State; n : LongInt) : Boolean;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   824
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   825
  lua_istable := lua_type(L, n) = LUA_TTABLE;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   826
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   827
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   828
function lua_islightuserdata(L : Plua_State; n : LongInt) : Boolean;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   829
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   830
  lua_islightuserdata := lua_type(L, n) = LUA_TLIGHTUSERDATA;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   831
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   832
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   833
function lua_isnil(L : Plua_State; n : LongInt) : Boolean;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   834
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   835
  lua_isnil := lua_type(L, n) = LUA_TNIL;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   836
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   837
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   838
function lua_isboolean(L : Plua_State; n : LongInt) : Boolean;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   839
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   840
  lua_isboolean := lua_type(L, n) = LUA_TBOOLEAN;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   841
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   842
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   843
function lua_isthread(L : Plua_State; n : LongInt) : Boolean;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   844
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   845
  lua_isthread := lua_type(L, n) = LUA_TTHREAD;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   846
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   847
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   848
function lua_isnone(L : Plua_State; n : LongInt) : Boolean;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   849
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   850
  lua_isnone := lua_type(L, n) = LUA_TNONE;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   851
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   852
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   853
function lua_isnoneornil(L : Plua_State; n : LongInt) : Boolean;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   854
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   855
  lua_isnoneornil := lua_type(L, n) <= 0;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   856
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   857
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   858
procedure lua_pushliteral(L : Plua_State; s : PChar);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   859
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   860
  lua_pushlstring(L, s, StrLen(s));
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   861
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   862
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   863
procedure lua_setglobal(L : Plua_State; s : PChar);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   864
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   865
  lua_setfield(L, LUA_GLOBALSINDEX, s);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   866
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   867
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   868
procedure lua_getglobal(L: Plua_State; s: PChar);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   869
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   870
  lua_getfield(L, LUA_GLOBALSINDEX, s);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   871
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   872
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   873
function lua_tostring(L : Plua_State; idx : LongInt) : PChar;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   874
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   875
  lua_tostring := lua_tolstring(L, idx, nil);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   876
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   877
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   878
function lua_open : Plua_State;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   879
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   880
  lua_open := luaL_newstate;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   881
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   882
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   883
procedure lua_getregistry(L : Plua_State);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   884
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   885
  lua_pushvalue(L, LUA_REGISTRYINDEX);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   886
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   887
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   888
function lua_getgccount(L : Plua_State) : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   889
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   890
  lua_getgccount := lua_gc(L, LUA_GCCOUNT, 0);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   891
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   892
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   893
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   894
(*****************************************************************************)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   895
(*                                  lualib.h                                 *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   896
(*****************************************************************************)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   897
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   898
procedure lua_assert(x : Boolean);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   899
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   900
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   901
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   902
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   903
(*****************************************************************************)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   904
(*                                  lauxlib.h    n                           *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   905
(*****************************************************************************)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   906
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   907
function luaL_getn(L : Plua_State; idx : LongInt) : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   908
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   909
  luaL_getn := lua_objlen(L, idx);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   910
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   911
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   912
procedure luaL_setn(L : plua_State; i, j : LongInt);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   913
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   914
  (* no op *)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   915
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   916
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   917
function luaL_argcheck(L : Plua_State; cond : Boolean; numarg : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   918
                       extramsg : PChar): LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   919
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   920
  if not cond then
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   921
    luaL_argcheck := luaL_argerror(L, numarg, extramsg)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   922
  else
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   923
    luaL_argcheck := 0;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   924
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   925
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   926
function luaL_checkstring(L : Plua_State; n : LongInt) : PChar;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   927
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   928
  luaL_checkstring := luaL_checklstring(L, n, nil);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   929
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   930
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   931
function luaL_optstring(L : Plua_State; n : LongInt; d : PChar) : PChar;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   932
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   933
  luaL_optstring := luaL_optlstring(L, n, d, nil);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   934
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   935
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   936
function luaL_checkint(L : Plua_State; n : LongInt) : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   937
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   938
  luaL_checkint := luaL_checkinteger(L, n);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   939
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   940
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   941
function luaL_optint(L : Plua_State; n, d : LongInt): LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   942
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   943
  luaL_optint := luaL_optinteger(L, n, d);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   944
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   945
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   946
function luaL_checklong(L : Plua_State; n : LongInt) : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   947
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   948
  luaL_checklong := luaL_checkinteger(L, n);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   949
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   950
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   951
function luaL_optlong(L : Plua_State; n : LongInt; d : LongInt) : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   952
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   953
  luaL_optlong := luaL_optinteger(L, n, d);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   954
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   955
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   956
function luaL_typename(L : Plua_State; idx : LongInt) : PChar;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   957
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   958
  luaL_typename := lua_typename( L, lua_type(L, idx) );
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   959
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   960
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   961
function luaL_dofile(L : Plua_State; fn : PChar) : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   962
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   963
  luaL_dofile := luaL_loadfile(L, fn);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   964
  if luaL_dofile = 0 then
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   965
    luaL_dofile := lua_pcall(L, 0, 0, 0);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   966
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   967
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   968
function luaL_dostring(L : Plua_State; s : PChar) : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   969
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   970
  luaL_dostring := luaL_loadstring(L, s);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   971
  if luaL_dostring = 0 then
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   972
    luaL_dostring := lua_pcall(L, 0, 0, 0);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   973
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   974
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   975
procedure luaL_getmetatable(L : Plua_State; n : PChar);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   976
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   977
  lua_getfield(L, LUA_REGISTRYINDEX, n);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   978
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   979
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   980
procedure luaL_addchar(B : PluaL_Buffer; c : Char);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   981
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   982
  if not(B^.p < B^.buffer + LUAL_BUFFERSIZE) then
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   983
    luaL_prepbuffer(B);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   984
  B^.p^ := c;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   985
  Inc(B^.p);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   986
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   987
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   988
procedure luaL_putchar(B : PluaL_Buffer; c : Char);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   989
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   990
  luaL_addchar(B, c);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   991
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   992
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   993
procedure luaL_addsize(B : PluaL_Buffer; n : LongInt);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   994
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   995
  Inc(B^.p, n);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   996
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   997
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   998
function lua_ref(L : Plua_State; lock : Boolean) : LongInt;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
   999
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1000
  if lock then
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1001
    lua_ref := luaL_ref(L, LUA_REGISTRYINDEX)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1002
  else begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1003
    lua_pushstring(L, 'unlocked references are obsolete');
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1004
    lua_error(L);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1005
    lua_ref := 0;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1006
  end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1007
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1008
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1009
procedure lua_unref(L : Plua_State; ref : LongInt);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1010
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1011
  luaL_unref(L, LUA_REGISTRYINDEX, ref);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1012
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1013
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1014
procedure lua_getref(L : Plua_State; ref : LongInt);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1015
begin
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1016
  lua_rawgeti(L, LUA_REGISTRYINDEX, ref);
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1017
end;
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1018
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1019
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1020
(******************************************************************************
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1021
* Original copyright for the lua source and headers:
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1022
*  1994-2004 Tecgraf, PUC-Rio.
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1023
*  www.lua.org.
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1024
*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1025
*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1026
* Permission is hereby granted, free of charge, to any person obtaining
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1027
* a copy of this software and associated documentation files (the
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1028
* "Software"), to deal in the Software without restriction, including
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1029
* without limitation the rights to use, copy, modify, merge, publish,
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1030
* distribute, sublicense, and/or sell copies of the Software, and to
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1031
* permit persons to whom the Software is furnished to do so, subject to
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1032
* the following conditions:
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1033
*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1034
* The above copyright notice and this permission notice shall be
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1035
* included in all copies or substantial portions of the Software.
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1036
*
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1037
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1038
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1039
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1040
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1041
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1042
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1043
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1044
******************************************************************************)
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1045
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1046
end.
85f6425a4d74 Engine:
smxx
parents:
diff changeset
  1047