FFMS2 and Lua now statically building with Singe.
This commit is contained in:
parent
04a89a6a79
commit
a3c83bb0c6
154 changed files with 37004 additions and 10 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -6,3 +6,4 @@
|
||||||
*.index
|
*.index
|
||||||
*.avi
|
*.avi
|
||||||
*.vob
|
*.vob
|
||||||
|
build-*/
|
||||||
|
|
135
singe/singe.pro
135
singe/singe.pro
|
@ -26,22 +26,137 @@ CONFIG -= \
|
||||||
app_bundle
|
app_bundle
|
||||||
qt
|
qt
|
||||||
|
|
||||||
FFMS = $$PWD/../ffms2
|
# === FFMS2 ===
|
||||||
|
|
||||||
|
FFMS_DEFINES =
|
||||||
|
|
||||||
|
FFMS_INCLUDES = \
|
||||||
|
thirdparty/ffms2/include
|
||||||
|
|
||||||
|
FFMS_HEADERS = \
|
||||||
|
thirdparty/ffms2/include/ffms.h \
|
||||||
|
thirdparty/ffms2/include/ffmscompat.h \
|
||||||
|
thirdparty/ffms2/src/core/audiosource.h \
|
||||||
|
thirdparty/ffms2/src/core/filehandle.h \
|
||||||
|
thirdparty/ffms2/src/core/indexing.h \
|
||||||
|
thirdparty/ffms2/src/core/track.h \
|
||||||
|
thirdparty/ffms2/src/core/utils.h \
|
||||||
|
thirdparty/ffms2/src/core/videosource.h \
|
||||||
|
thirdparty/ffms2/src/core/videoutils.h \
|
||||||
|
thirdparty/ffms2/src/core/zipfile.h
|
||||||
|
|
||||||
|
FFMS_SOURCES = \
|
||||||
|
thirdparty/ffms2/src/core/audiosource.cpp \
|
||||||
|
thirdparty/ffms2/src/core/ffms.cpp \
|
||||||
|
thirdparty/ffms2/src/core/filehandle.cpp \
|
||||||
|
thirdparty/ffms2/src/core/indexing.cpp \
|
||||||
|
thirdparty/ffms2/src/core/track.cpp \
|
||||||
|
thirdparty/ffms2/src/core/utils.cpp \
|
||||||
|
thirdparty/ffms2/src/core/videosource.cpp \
|
||||||
|
thirdparty/ffms2/src/core/videoutils.cpp \
|
||||||
|
thirdparty/ffms2/src/core/zipfile.cpp
|
||||||
|
|
||||||
|
FFMS_LIBS = \
|
||||||
|
-lavformat \
|
||||||
|
-lavcodec \
|
||||||
|
-lswscale \
|
||||||
|
-lavutil \
|
||||||
|
-lswresample \
|
||||||
|
-lz
|
||||||
|
|
||||||
|
# === LUA ===
|
||||||
|
|
||||||
|
LUA_DEFINES = \
|
||||||
|
LUA_COMPAT_5_2
|
||||||
|
|
||||||
|
LUA_INCLUDES =
|
||||||
|
|
||||||
|
LUA_HEADERS = \
|
||||||
|
thirdparty/lua/src/lapi.h \
|
||||||
|
thirdparty/lua/src/lauxlib.h \
|
||||||
|
thirdparty/lua/src/lcode.h \
|
||||||
|
thirdparty/lua/src/lctype.h \
|
||||||
|
thirdparty/lua/src/ldebug.h \
|
||||||
|
thirdparty/lua/src/ldo.h \
|
||||||
|
thirdparty/lua/src/lfunc.h \
|
||||||
|
thirdparty/lua/src/lgc.h \
|
||||||
|
thirdparty/lua/src/llex.h \
|
||||||
|
thirdparty/lua/src/llimits.h \
|
||||||
|
thirdparty/lua/src/lmem.h \
|
||||||
|
thirdparty/lua/src/lobject.h \
|
||||||
|
thirdparty/lua/src/lopcodes.h \
|
||||||
|
thirdparty/lua/src/lparser.h \
|
||||||
|
thirdparty/lua/src/lprefix.h \
|
||||||
|
thirdparty/lua/src/lstate.h \
|
||||||
|
thirdparty/lua/src/lstring.h \
|
||||||
|
thirdparty/lua/src/ltable.h \
|
||||||
|
thirdparty/lua/src/ltm.h \
|
||||||
|
thirdparty/lua/src/luaconf.h \
|
||||||
|
thirdparty/lua/src/lualib.h \
|
||||||
|
thirdparty/lua/src/lundump.h \
|
||||||
|
thirdparty/lua/src/lvm.h \
|
||||||
|
thirdparty/lua/src/lzio.h
|
||||||
|
|
||||||
|
LUA_SOURCES = \
|
||||||
|
thirdparty/lua/src/lapi.c \
|
||||||
|
thirdparty/lua/src/lauxlib.c \
|
||||||
|
thirdparty/lua/src/lbaselib.c \
|
||||||
|
thirdparty/lua/src/lbitlib.c \
|
||||||
|
thirdparty/lua/src/lcode.c \
|
||||||
|
thirdparty/lua/src/lcorolib.c \
|
||||||
|
thirdparty/lua/src/lctype.c \
|
||||||
|
thirdparty/lua/src/ldblib.c \
|
||||||
|
thirdparty/lua/src/ldebug.c \
|
||||||
|
thirdparty/lua/src/ldo.c \
|
||||||
|
thirdparty/lua/src/ldump.c \
|
||||||
|
thirdparty/lua/src/lfunc.c \
|
||||||
|
thirdparty/lua/src/lgc.c \
|
||||||
|
thirdparty/lua/src/linit.c \
|
||||||
|
thirdparty/lua/src/liolib.c \
|
||||||
|
thirdparty/lua/src/llex.c \
|
||||||
|
thirdparty/lua/src/lmathlib.c \
|
||||||
|
thirdparty/lua/src/lmem.c \
|
||||||
|
thirdparty/lua/src/loadlib.c \
|
||||||
|
thirdparty/lua/src/lobject.c \
|
||||||
|
thirdparty/lua/src/lopcodes.c \
|
||||||
|
thirdparty/lua/src/loslib.c \
|
||||||
|
thirdparty/lua/src/lparser.c \
|
||||||
|
thirdparty/lua/src/lstate.c \
|
||||||
|
thirdparty/lua/src/lstring.c \
|
||||||
|
thirdparty/lua/src/lstrlib.c \
|
||||||
|
thirdparty/lua/src/ltable.c \
|
||||||
|
thirdparty/lua/src/ltablib.c \
|
||||||
|
thirdparty/lua/src/ltm.c \
|
||||||
|
thirdparty/lua/src/lundump.c \
|
||||||
|
thirdparty/lua/src/lutf8lib.c \
|
||||||
|
thirdparty/lua/src/lvm.c \
|
||||||
|
thirdparty/lua/src/lzio.c
|
||||||
|
|
||||||
|
LUA_LIBS = \
|
||||||
|
-lm
|
||||||
|
|
||||||
|
# === SINGE ===
|
||||||
|
|
||||||
|
DEFINES += \
|
||||||
|
$$FFMS_DEFINES \
|
||||||
|
$$LUA_DEFINES
|
||||||
|
|
||||||
INCLUDEPATH += \
|
INCLUDEPATH += \
|
||||||
$$FFMS/include
|
$$FFMS_INCLUDES \
|
||||||
|
$$LUA_INCLUDES
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
stddclmr.h
|
stddclmr.h \
|
||||||
|
$$FFMS_HEADERS \
|
||||||
|
$$LUA_HEADERS
|
||||||
|
|
||||||
SOURCES += \
|
SOURCES += \
|
||||||
main.c
|
main.c \
|
||||||
|
$$FFMS_SOURCES \
|
||||||
# This is for testing only
|
$$LUA_SOURCES
|
||||||
QMAKE_RPATHDIR += \
|
|
||||||
$$FFMS/src/core/.libs
|
|
||||||
|
|
||||||
LIBS += \
|
LIBS += \
|
||||||
-lSDL2 \
|
-lSDL2 \
|
||||||
-L$$FFMS/src/core/.libs \
|
$$FFMS_LIBS \
|
||||||
-lffms2
|
$$LUA_LIBS
|
||||||
|
|
||||||
|
|
114
singe/thirdparty/lua/Makefile
vendored
Normal file
114
singe/thirdparty/lua/Makefile
vendored
Normal file
|
@ -0,0 +1,114 @@
|
||||||
|
# Makefile for installing Lua
|
||||||
|
# See doc/readme.html for installation and customization instructions.
|
||||||
|
|
||||||
|
# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======================
|
||||||
|
|
||||||
|
# Your platform. See PLATS for possible values.
|
||||||
|
PLAT= none
|
||||||
|
|
||||||
|
# Where to install. The installation starts in the src and doc directories,
|
||||||
|
# so take care if INSTALL_TOP is not an absolute path. See the local target.
|
||||||
|
# You may want to make INSTALL_LMOD and INSTALL_CMOD consistent with
|
||||||
|
# LUA_ROOT, LUA_LDIR, and LUA_CDIR in luaconf.h.
|
||||||
|
INSTALL_TOP= /usr/local
|
||||||
|
INSTALL_BIN= $(INSTALL_TOP)/bin
|
||||||
|
INSTALL_INC= $(INSTALL_TOP)/include
|
||||||
|
INSTALL_LIB= $(INSTALL_TOP)/lib
|
||||||
|
INSTALL_MAN= $(INSTALL_TOP)/man/man1
|
||||||
|
INSTALL_LMOD= $(INSTALL_TOP)/share/lua/$V
|
||||||
|
INSTALL_CMOD= $(INSTALL_TOP)/lib/lua/$V
|
||||||
|
|
||||||
|
# How to install. If your install program does not support "-p", then
|
||||||
|
# you may have to run ranlib on the installed liblua.a.
|
||||||
|
INSTALL= install -p
|
||||||
|
INSTALL_EXEC= $(INSTALL) -m 0755
|
||||||
|
INSTALL_DATA= $(INSTALL) -m 0644
|
||||||
|
#
|
||||||
|
# If you don't have "install" you can use "cp" instead.
|
||||||
|
# INSTALL= cp -p
|
||||||
|
# INSTALL_EXEC= $(INSTALL)
|
||||||
|
# INSTALL_DATA= $(INSTALL)
|
||||||
|
|
||||||
|
# Other utilities.
|
||||||
|
MKDIR= mkdir -p
|
||||||
|
RM= rm -f
|
||||||
|
|
||||||
|
# == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE =======
|
||||||
|
|
||||||
|
# Convenience platforms targets.
|
||||||
|
PLATS= aix bsd c89 freebsd generic linux macosx mingw posix solaris
|
||||||
|
|
||||||
|
# What to install.
|
||||||
|
TO_BIN= lua luac
|
||||||
|
TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp
|
||||||
|
TO_LIB= liblua.a
|
||||||
|
TO_MAN= lua.1 luac.1
|
||||||
|
|
||||||
|
# Lua version and release.
|
||||||
|
V= 5.3
|
||||||
|
R= $V.4
|
||||||
|
|
||||||
|
# Targets start here.
|
||||||
|
all: $(PLAT)
|
||||||
|
|
||||||
|
$(PLATS) clean:
|
||||||
|
cd src && $(MAKE) $@
|
||||||
|
|
||||||
|
test: dummy
|
||||||
|
src/lua -v
|
||||||
|
|
||||||
|
install: dummy
|
||||||
|
cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD)
|
||||||
|
cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN)
|
||||||
|
cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
|
||||||
|
cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB)
|
||||||
|
cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN)
|
||||||
|
|
||||||
|
uninstall:
|
||||||
|
cd src && cd $(INSTALL_BIN) && $(RM) $(TO_BIN)
|
||||||
|
cd src && cd $(INSTALL_INC) && $(RM) $(TO_INC)
|
||||||
|
cd src && cd $(INSTALL_LIB) && $(RM) $(TO_LIB)
|
||||||
|
cd doc && cd $(INSTALL_MAN) && $(RM) $(TO_MAN)
|
||||||
|
|
||||||
|
local:
|
||||||
|
$(MAKE) install INSTALL_TOP=../install
|
||||||
|
|
||||||
|
none:
|
||||||
|
@echo "Please do 'make PLATFORM' where PLATFORM is one of these:"
|
||||||
|
@echo " $(PLATS)"
|
||||||
|
@echo "See doc/readme.html for complete instructions."
|
||||||
|
|
||||||
|
# make may get confused with test/ and install/
|
||||||
|
dummy:
|
||||||
|
|
||||||
|
# echo config parameters
|
||||||
|
echo:
|
||||||
|
@cd src && $(MAKE) -s echo
|
||||||
|
@echo "PLAT= $(PLAT)"
|
||||||
|
@echo "V= $V"
|
||||||
|
@echo "R= $R"
|
||||||
|
@echo "TO_BIN= $(TO_BIN)"
|
||||||
|
@echo "TO_INC= $(TO_INC)"
|
||||||
|
@echo "TO_LIB= $(TO_LIB)"
|
||||||
|
@echo "TO_MAN= $(TO_MAN)"
|
||||||
|
@echo "INSTALL_TOP= $(INSTALL_TOP)"
|
||||||
|
@echo "INSTALL_BIN= $(INSTALL_BIN)"
|
||||||
|
@echo "INSTALL_INC= $(INSTALL_INC)"
|
||||||
|
@echo "INSTALL_LIB= $(INSTALL_LIB)"
|
||||||
|
@echo "INSTALL_MAN= $(INSTALL_MAN)"
|
||||||
|
@echo "INSTALL_LMOD= $(INSTALL_LMOD)"
|
||||||
|
@echo "INSTALL_CMOD= $(INSTALL_CMOD)"
|
||||||
|
@echo "INSTALL_EXEC= $(INSTALL_EXEC)"
|
||||||
|
@echo "INSTALL_DATA= $(INSTALL_DATA)"
|
||||||
|
|
||||||
|
# echo pkg-config data
|
||||||
|
pc:
|
||||||
|
@echo "version=$R"
|
||||||
|
@echo "prefix=$(INSTALL_TOP)"
|
||||||
|
@echo "libdir=$(INSTALL_LIB)"
|
||||||
|
@echo "includedir=$(INSTALL_INC)"
|
||||||
|
|
||||||
|
# list targets that do not create files (but not all makes understand .PHONY)
|
||||||
|
.PHONY: all $(PLATS) clean test install local none dummy echo pecho lecho
|
||||||
|
|
||||||
|
# (end of Makefile)
|
6
singe/thirdparty/lua/README
vendored
Normal file
6
singe/thirdparty/lua/README
vendored
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
|
||||||
|
This is Lua 5.3.5, released on 26 Jun 2018.
|
||||||
|
|
||||||
|
For installation instructions, license details, and
|
||||||
|
further information about Lua, see doc/readme.html.
|
||||||
|
|
619
singe/thirdparty/lua/doc/contents.html
vendored
Normal file
619
singe/thirdparty/lua/doc/contents.html
vendored
Normal file
|
@ -0,0 +1,619 @@
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<HTML>
|
||||||
|
<HEAD>
|
||||||
|
<TITLE>Lua 5.3 Reference Manual - contents</TITLE>
|
||||||
|
<LINK REL="stylesheet" TYPE="text/css" HREF="lua.css">
|
||||||
|
<LINK REL="stylesheet" TYPE="text/css" HREF="index.css">
|
||||||
|
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">
|
||||||
|
</HEAD>
|
||||||
|
|
||||||
|
<BODY>
|
||||||
|
|
||||||
|
<H1>
|
||||||
|
<A HREF="http://www.lua.org/"><IMG SRC="logo.gif" ALT="Lua"></A>
|
||||||
|
Lua 5.3 Reference Manual
|
||||||
|
</H1>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
The reference manual is the official definition of the Lua language.
|
||||||
|
<BR>
|
||||||
|
For a complete introduction to Lua programming, see the book
|
||||||
|
<A HREF="http://www.lua.org/pil/">Programming in Lua</A>.
|
||||||
|
|
||||||
|
<DIV CLASS="menubar">
|
||||||
|
<A HREF="manual.html">start</A>
|
||||||
|
·
|
||||||
|
<A HREF="#contents">contents</A>
|
||||||
|
·
|
||||||
|
<A HREF="#index">index</A>
|
||||||
|
·
|
||||||
|
<A HREF="http://www.lua.org/manual/">other versions</A>
|
||||||
|
</DIV>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<SMALL>
|
||||||
|
Copyright © 2015–2018 Lua.org, PUC-Rio.
|
||||||
|
Freely available under the terms of the
|
||||||
|
<A HREF="http://www.lua.org/license.html">Lua license</A>.
|
||||||
|
</SMALL>
|
||||||
|
|
||||||
|
<H2><A NAME="contents">Contents</A></H2>
|
||||||
|
<UL CLASS="contents menubar">
|
||||||
|
<LI><A HREF="manual.html">1 – Introduction</A>
|
||||||
|
<P>
|
||||||
|
<LI><A HREF="manual.html#2">2 – Basic Concepts</A>
|
||||||
|
<UL>
|
||||||
|
<LI><A HREF="manual.html#2.1">2.1 – Values and Types</A>
|
||||||
|
<LI><A HREF="manual.html#2.2">2.2 – Environments and the Global Environment</A>
|
||||||
|
<LI><A HREF="manual.html#2.3">2.3 – Error Handling</A>
|
||||||
|
<LI><A HREF="manual.html#2.4">2.4 – Metatables and Metamethods</A>
|
||||||
|
<LI><A HREF="manual.html#2.5">2.5 – Garbage Collection</A>
|
||||||
|
<UL>
|
||||||
|
<LI><A HREF="manual.html#2.5.1">2.5.1 – Garbage-Collection Metamethods</A>
|
||||||
|
<LI><A HREF="manual.html#2.5.2">2.5.2 – Weak Tables</A>
|
||||||
|
</UL>
|
||||||
|
<LI><A HREF="manual.html#2.6">2.6 – Coroutines</A>
|
||||||
|
</UL>
|
||||||
|
<P>
|
||||||
|
<LI><A HREF="manual.html#3">3 – The Language</A>
|
||||||
|
<UL>
|
||||||
|
<LI><A HREF="manual.html#3.1">3.1 – Lexical Conventions</A>
|
||||||
|
<LI><A HREF="manual.html#3.2">3.2 – Variables</A>
|
||||||
|
<LI><A HREF="manual.html#3.3">3.3 – Statements</A>
|
||||||
|
<UL>
|
||||||
|
<LI><A HREF="manual.html#3.3.1">3.3.1 – Blocks</A>
|
||||||
|
<LI><A HREF="manual.html#3.3.2">3.3.2 – Chunks</A>
|
||||||
|
<LI><A HREF="manual.html#3.3.3">3.3.3 – Assignment</A>
|
||||||
|
<LI><A HREF="manual.html#3.3.4">3.3.4 – Control Structures</A>
|
||||||
|
<LI><A HREF="manual.html#3.3.5">3.3.5 – For Statement</A>
|
||||||
|
<LI><A HREF="manual.html#3.3.6">3.3.6 – Function Calls as Statements</A>
|
||||||
|
<LI><A HREF="manual.html#3.3.7">3.3.7 – Local Declarations</A>
|
||||||
|
</UL>
|
||||||
|
<LI><A HREF="manual.html#3.4">3.4 – Expressions</A>
|
||||||
|
<UL>
|
||||||
|
<LI><A HREF="manual.html#3.4.1">3.4.1 – Arithmetic Operators</A>
|
||||||
|
<LI><A HREF="manual.html#3.4.2">3.4.2 – Bitwise Operators</A>
|
||||||
|
<LI><A HREF="manual.html#3.4.3">3.4.3 – Coercions and Conversions</A>
|
||||||
|
<LI><A HREF="manual.html#3.4.4">3.4.4 – Relational Operators</A>
|
||||||
|
<LI><A HREF="manual.html#3.4.5">3.4.5 – Logical Operators</A>
|
||||||
|
<LI><A HREF="manual.html#3.4.6">3.4.6 – Concatenation</A>
|
||||||
|
<LI><A HREF="manual.html#3.4.7">3.4.7 – The Length Operator</A>
|
||||||
|
<LI><A HREF="manual.html#3.4.8">3.4.8 – Precedence</A>
|
||||||
|
<LI><A HREF="manual.html#3.4.9">3.4.9 – Table Constructors</A>
|
||||||
|
<LI><A HREF="manual.html#3.4.10">3.4.10 – Function Calls</A>
|
||||||
|
<LI><A HREF="manual.html#3.4.11">3.4.11 – Function Definitions</A>
|
||||||
|
</UL>
|
||||||
|
<LI><A HREF="manual.html#3.5">3.5 – Visibility Rules</A>
|
||||||
|
</UL>
|
||||||
|
<P>
|
||||||
|
<LI><A HREF="manual.html#4">4 – The Application Program Interface</A>
|
||||||
|
<UL>
|
||||||
|
<LI><A HREF="manual.html#4.1">4.1 – The Stack</A>
|
||||||
|
<LI><A HREF="manual.html#4.2">4.2 – Stack Size</A>
|
||||||
|
<LI><A HREF="manual.html#4.3">4.3 – Valid and Acceptable Indices</A>
|
||||||
|
<LI><A HREF="manual.html#4.4">4.4 – C Closures</A>
|
||||||
|
<LI><A HREF="manual.html#4.5">4.5 – Registry</A>
|
||||||
|
<LI><A HREF="manual.html#4.6">4.6 – Error Handling in C</A>
|
||||||
|
<LI><A HREF="manual.html#4.7">4.7 – Handling Yields in C</A>
|
||||||
|
<LI><A HREF="manual.html#4.8">4.8 – Functions and Types</A>
|
||||||
|
<LI><A HREF="manual.html#4.9">4.9 – The Debug Interface</A>
|
||||||
|
</UL>
|
||||||
|
<P>
|
||||||
|
<LI><A HREF="manual.html#5">5 – The Auxiliary Library</A>
|
||||||
|
<UL>
|
||||||
|
<LI><A HREF="manual.html#5.1">5.1 – Functions and Types</A>
|
||||||
|
</UL>
|
||||||
|
<P>
|
||||||
|
<LI><A HREF="manual.html#6">6 – Standard Libraries</A>
|
||||||
|
<UL>
|
||||||
|
<LI><A HREF="manual.html#6.1">6.1 – Basic Functions</A>
|
||||||
|
<LI><A HREF="manual.html#6.2">6.2 – Coroutine Manipulation</A>
|
||||||
|
<LI><A HREF="manual.html#6.3">6.3 – Modules</A>
|
||||||
|
<LI><A HREF="manual.html#6.4">6.4 – String Manipulation</A>
|
||||||
|
<UL>
|
||||||
|
<LI><A HREF="manual.html#6.4.1">6.4.1 – Patterns</A>
|
||||||
|
<LI><A HREF="manual.html#6.4.2">6.4.2 – Format Strings for Pack and Unpack</A>
|
||||||
|
</UL>
|
||||||
|
<LI><A HREF="manual.html#6.5">6.5 – UTF-8 Support</A>
|
||||||
|
<LI><A HREF="manual.html#6.6">6.6 – Table Manipulation</A>
|
||||||
|
<LI><A HREF="manual.html#6.7">6.7 – Mathematical Functions</A>
|
||||||
|
<LI><A HREF="manual.html#6.8">6.8 – Input and Output Facilities</A>
|
||||||
|
<LI><A HREF="manual.html#6.9">6.9 – Operating System Facilities</A>
|
||||||
|
<LI><A HREF="manual.html#6.10">6.10 – The Debug Library</A>
|
||||||
|
</UL>
|
||||||
|
<P>
|
||||||
|
<LI><A HREF="manual.html#7">7 – Lua Standalone</A>
|
||||||
|
<P>
|
||||||
|
<LI><A HREF="manual.html#8">8 – Incompatibilities with the Previous Version</A>
|
||||||
|
<UL>
|
||||||
|
<LI><A HREF="manual.html#8.1">8.1 – Changes in the Language</A>
|
||||||
|
<LI><A HREF="manual.html#8.2">8.2 – Changes in the Libraries</A>
|
||||||
|
<LI><A HREF="manual.html#8.3">8.3 – Changes in the API</A>
|
||||||
|
</UL>
|
||||||
|
<P>
|
||||||
|
<LI><A HREF="manual.html#9">9 – The Complete Syntax of Lua</A>
|
||||||
|
</UL>
|
||||||
|
|
||||||
|
<H2><A NAME="index">Index</A></H2>
|
||||||
|
<TABLE CLASS="menubar" WIDTH="100%">
|
||||||
|
<TR>
|
||||||
|
<TD>
|
||||||
|
<H3><A NAME="functions">Lua functions</A></H3>
|
||||||
|
<P>
|
||||||
|
<A HREF="manual.html#6.1">basic</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-_G">_G</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-_VERSION">_VERSION</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-assert">assert</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-collectgarbage">collectgarbage</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-dofile">dofile</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-error">error</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-getmetatable">getmetatable</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-ipairs">ipairs</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-load">load</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-loadfile">loadfile</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-next">next</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-pairs">pairs</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-pcall">pcall</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-print">print</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-rawequal">rawequal</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-rawget">rawget</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-rawlen">rawlen</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-rawset">rawset</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-require">require</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-select">select</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-setmetatable">setmetatable</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-tonumber">tonumber</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-tostring">tostring</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-type">type</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-xpcall">xpcall</A><BR>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<A HREF="manual.html#6.2">coroutine</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-coroutine.create">coroutine.create</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-coroutine.isyieldable">coroutine.isyieldable</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-coroutine.resume">coroutine.resume</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-coroutine.running">coroutine.running</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-coroutine.status">coroutine.status</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-coroutine.wrap">coroutine.wrap</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-coroutine.yield">coroutine.yield</A><BR>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<A HREF="manual.html#6.10">debug</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-debug.debug">debug.debug</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-debug.gethook">debug.gethook</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-debug.getinfo">debug.getinfo</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-debug.getlocal">debug.getlocal</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-debug.getmetatable">debug.getmetatable</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-debug.getregistry">debug.getregistry</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-debug.getupvalue">debug.getupvalue</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-debug.getuservalue">debug.getuservalue</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-debug.sethook">debug.sethook</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-debug.setlocal">debug.setlocal</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-debug.setmetatable">debug.setmetatable</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-debug.setupvalue">debug.setupvalue</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-debug.setuservalue">debug.setuservalue</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-debug.traceback">debug.traceback</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-debug.upvalueid">debug.upvalueid</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-debug.upvaluejoin">debug.upvaluejoin</A><BR>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<A HREF="manual.html#6.8">io</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-io.close">io.close</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-io.flush">io.flush</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-io.input">io.input</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-io.lines">io.lines</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-io.open">io.open</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-io.output">io.output</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-io.popen">io.popen</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-io.read">io.read</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-io.stderr">io.stderr</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-io.stdin">io.stdin</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-io.stdout">io.stdout</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-io.tmpfile">io.tmpfile</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-io.type">io.type</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-io.write">io.write</A><BR>
|
||||||
|
|
||||||
|
<A HREF="manual.html#pdf-file:close">file:close</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-file:flush">file:flush</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-file:lines">file:lines</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-file:read">file:read</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-file:seek">file:seek</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-file:setvbuf">file:setvbuf</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-file:write">file:write</A><BR>
|
||||||
|
|
||||||
|
</TD>
|
||||||
|
<TD>
|
||||||
|
<H3> </H3>
|
||||||
|
<P>
|
||||||
|
<A HREF="manual.html#6.7">math</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.abs">math.abs</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.acos">math.acos</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.asin">math.asin</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.atan">math.atan</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.ceil">math.ceil</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.cos">math.cos</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.deg">math.deg</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.exp">math.exp</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.floor">math.floor</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.fmod">math.fmod</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.huge">math.huge</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.log">math.log</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.max">math.max</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.maxinteger">math.maxinteger</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.min">math.min</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.mininteger">math.mininteger</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.modf">math.modf</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.pi">math.pi</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.rad">math.rad</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.random">math.random</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.randomseed">math.randomseed</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.sin">math.sin</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.sqrt">math.sqrt</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.tan">math.tan</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.tointeger">math.tointeger</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.type">math.type</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-math.ult">math.ult</A><BR>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<A HREF="manual.html#6.9">os</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-os.clock">os.clock</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-os.date">os.date</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-os.difftime">os.difftime</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-os.execute">os.execute</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-os.exit">os.exit</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-os.getenv">os.getenv</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-os.remove">os.remove</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-os.rename">os.rename</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-os.setlocale">os.setlocale</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-os.time">os.time</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-os.tmpname">os.tmpname</A><BR>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<A HREF="manual.html#6.3">package</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-package.config">package.config</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-package.cpath">package.cpath</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-package.loaded">package.loaded</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-package.loadlib">package.loadlib</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-package.path">package.path</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-package.preload">package.preload</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-package.searchers">package.searchers</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-package.searchpath">package.searchpath</A><BR>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<A HREF="manual.html#6.4">string</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-string.byte">string.byte</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-string.char">string.char</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-string.dump">string.dump</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-string.find">string.find</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-string.format">string.format</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-string.gmatch">string.gmatch</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-string.gsub">string.gsub</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-string.len">string.len</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-string.lower">string.lower</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-string.match">string.match</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-string.pack">string.pack</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-string.packsize">string.packsize</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-string.rep">string.rep</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-string.reverse">string.reverse</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-string.sub">string.sub</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-string.unpack">string.unpack</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-string.upper">string.upper</A><BR>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<A HREF="manual.html#6.6">table</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-table.concat">table.concat</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-table.insert">table.insert</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-table.move">table.move</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-table.pack">table.pack</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-table.remove">table.remove</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-table.sort">table.sort</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-table.unpack">table.unpack</A><BR>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<A HREF="manual.html#6.5">utf8</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-utf8.char">utf8.char</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-utf8.charpattern">utf8.charpattern</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-utf8.codepoint">utf8.codepoint</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-utf8.codes">utf8.codes</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-utf8.len">utf8.len</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-utf8.offset">utf8.offset</A><BR>
|
||||||
|
|
||||||
|
<H3><A NAME="env">environment<BR>variables</A></H3>
|
||||||
|
<P>
|
||||||
|
<A HREF="manual.html#pdf-LUA_CPATH">LUA_CPATH</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_CPATH_5_3">LUA_CPATH_5_3</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_INIT">LUA_INIT</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_INIT_5_3">LUA_INIT_5_3</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_PATH">LUA_PATH</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_PATH_5_3">LUA_PATH_5_3</A><BR>
|
||||||
|
|
||||||
|
</TD>
|
||||||
|
<TD>
|
||||||
|
<H3><A NAME="api">C API</A></H3>
|
||||||
|
<P>
|
||||||
|
<A HREF="manual.html#lua_Alloc">lua_Alloc</A><BR>
|
||||||
|
<A HREF="manual.html#lua_CFunction">lua_CFunction</A><BR>
|
||||||
|
<A HREF="manual.html#lua_Debug">lua_Debug</A><BR>
|
||||||
|
<A HREF="manual.html#lua_Hook">lua_Hook</A><BR>
|
||||||
|
<A HREF="manual.html#lua_Integer">lua_Integer</A><BR>
|
||||||
|
<A HREF="manual.html#lua_KContext">lua_KContext</A><BR>
|
||||||
|
<A HREF="manual.html#lua_KFunction">lua_KFunction</A><BR>
|
||||||
|
<A HREF="manual.html#lua_Number">lua_Number</A><BR>
|
||||||
|
<A HREF="manual.html#lua_Reader">lua_Reader</A><BR>
|
||||||
|
<A HREF="manual.html#lua_State">lua_State</A><BR>
|
||||||
|
<A HREF="manual.html#lua_Unsigned">lua_Unsigned</A><BR>
|
||||||
|
<A HREF="manual.html#lua_Writer">lua_Writer</A><BR>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<A HREF="manual.html#lua_absindex">lua_absindex</A><BR>
|
||||||
|
<A HREF="manual.html#lua_arith">lua_arith</A><BR>
|
||||||
|
<A HREF="manual.html#lua_atpanic">lua_atpanic</A><BR>
|
||||||
|
<A HREF="manual.html#lua_call">lua_call</A><BR>
|
||||||
|
<A HREF="manual.html#lua_callk">lua_callk</A><BR>
|
||||||
|
<A HREF="manual.html#lua_checkstack">lua_checkstack</A><BR>
|
||||||
|
<A HREF="manual.html#lua_close">lua_close</A><BR>
|
||||||
|
<A HREF="manual.html#lua_compare">lua_compare</A><BR>
|
||||||
|
<A HREF="manual.html#lua_concat">lua_concat</A><BR>
|
||||||
|
<A HREF="manual.html#lua_copy">lua_copy</A><BR>
|
||||||
|
<A HREF="manual.html#lua_createtable">lua_createtable</A><BR>
|
||||||
|
<A HREF="manual.html#lua_dump">lua_dump</A><BR>
|
||||||
|
<A HREF="manual.html#lua_error">lua_error</A><BR>
|
||||||
|
<A HREF="manual.html#lua_gc">lua_gc</A><BR>
|
||||||
|
<A HREF="manual.html#lua_getallocf">lua_getallocf</A><BR>
|
||||||
|
<A HREF="manual.html#lua_getextraspace">lua_getextraspace</A><BR>
|
||||||
|
<A HREF="manual.html#lua_getfield">lua_getfield</A><BR>
|
||||||
|
<A HREF="manual.html#lua_getglobal">lua_getglobal</A><BR>
|
||||||
|
<A HREF="manual.html#lua_gethook">lua_gethook</A><BR>
|
||||||
|
<A HREF="manual.html#lua_gethookcount">lua_gethookcount</A><BR>
|
||||||
|
<A HREF="manual.html#lua_gethookmask">lua_gethookmask</A><BR>
|
||||||
|
<A HREF="manual.html#lua_geti">lua_geti</A><BR>
|
||||||
|
<A HREF="manual.html#lua_getinfo">lua_getinfo</A><BR>
|
||||||
|
<A HREF="manual.html#lua_getlocal">lua_getlocal</A><BR>
|
||||||
|
<A HREF="manual.html#lua_getmetatable">lua_getmetatable</A><BR>
|
||||||
|
<A HREF="manual.html#lua_getstack">lua_getstack</A><BR>
|
||||||
|
<A HREF="manual.html#lua_gettable">lua_gettable</A><BR>
|
||||||
|
<A HREF="manual.html#lua_gettop">lua_gettop</A><BR>
|
||||||
|
<A HREF="manual.html#lua_getupvalue">lua_getupvalue</A><BR>
|
||||||
|
<A HREF="manual.html#lua_getuservalue">lua_getuservalue</A><BR>
|
||||||
|
<A HREF="manual.html#lua_insert">lua_insert</A><BR>
|
||||||
|
<A HREF="manual.html#lua_isboolean">lua_isboolean</A><BR>
|
||||||
|
<A HREF="manual.html#lua_iscfunction">lua_iscfunction</A><BR>
|
||||||
|
<A HREF="manual.html#lua_isfunction">lua_isfunction</A><BR>
|
||||||
|
<A HREF="manual.html#lua_isinteger">lua_isinteger</A><BR>
|
||||||
|
<A HREF="manual.html#lua_islightuserdata">lua_islightuserdata</A><BR>
|
||||||
|
<A HREF="manual.html#lua_isnil">lua_isnil</A><BR>
|
||||||
|
<A HREF="manual.html#lua_isnone">lua_isnone</A><BR>
|
||||||
|
<A HREF="manual.html#lua_isnoneornil">lua_isnoneornil</A><BR>
|
||||||
|
<A HREF="manual.html#lua_isnumber">lua_isnumber</A><BR>
|
||||||
|
<A HREF="manual.html#lua_isstring">lua_isstring</A><BR>
|
||||||
|
<A HREF="manual.html#lua_istable">lua_istable</A><BR>
|
||||||
|
<A HREF="manual.html#lua_isthread">lua_isthread</A><BR>
|
||||||
|
<A HREF="manual.html#lua_isuserdata">lua_isuserdata</A><BR>
|
||||||
|
<A HREF="manual.html#lua_isyieldable">lua_isyieldable</A><BR>
|
||||||
|
<A HREF="manual.html#lua_len">lua_len</A><BR>
|
||||||
|
<A HREF="manual.html#lua_load">lua_load</A><BR>
|
||||||
|
<A HREF="manual.html#lua_newstate">lua_newstate</A><BR>
|
||||||
|
<A HREF="manual.html#lua_newtable">lua_newtable</A><BR>
|
||||||
|
<A HREF="manual.html#lua_newthread">lua_newthread</A><BR>
|
||||||
|
<A HREF="manual.html#lua_newuserdata">lua_newuserdata</A><BR>
|
||||||
|
<A HREF="manual.html#lua_next">lua_next</A><BR>
|
||||||
|
<A HREF="manual.html#lua_numbertointeger">lua_numbertointeger</A><BR>
|
||||||
|
<A HREF="manual.html#lua_pcall">lua_pcall</A><BR>
|
||||||
|
<A HREF="manual.html#lua_pcallk">lua_pcallk</A><BR>
|
||||||
|
<A HREF="manual.html#lua_pop">lua_pop</A><BR>
|
||||||
|
<A HREF="manual.html#lua_pushboolean">lua_pushboolean</A><BR>
|
||||||
|
<A HREF="manual.html#lua_pushcclosure">lua_pushcclosure</A><BR>
|
||||||
|
<A HREF="manual.html#lua_pushcfunction">lua_pushcfunction</A><BR>
|
||||||
|
<A HREF="manual.html#lua_pushfstring">lua_pushfstring</A><BR>
|
||||||
|
<A HREF="manual.html#lua_pushglobaltable">lua_pushglobaltable</A><BR>
|
||||||
|
<A HREF="manual.html#lua_pushinteger">lua_pushinteger</A><BR>
|
||||||
|
<A HREF="manual.html#lua_pushlightuserdata">lua_pushlightuserdata</A><BR>
|
||||||
|
<A HREF="manual.html#lua_pushliteral">lua_pushliteral</A><BR>
|
||||||
|
<A HREF="manual.html#lua_pushlstring">lua_pushlstring</A><BR>
|
||||||
|
<A HREF="manual.html#lua_pushnil">lua_pushnil</A><BR>
|
||||||
|
<A HREF="manual.html#lua_pushnumber">lua_pushnumber</A><BR>
|
||||||
|
<A HREF="manual.html#lua_pushstring">lua_pushstring</A><BR>
|
||||||
|
<A HREF="manual.html#lua_pushthread">lua_pushthread</A><BR>
|
||||||
|
<A HREF="manual.html#lua_pushvalue">lua_pushvalue</A><BR>
|
||||||
|
<A HREF="manual.html#lua_pushvfstring">lua_pushvfstring</A><BR>
|
||||||
|
<A HREF="manual.html#lua_rawequal">lua_rawequal</A><BR>
|
||||||
|
<A HREF="manual.html#lua_rawget">lua_rawget</A><BR>
|
||||||
|
<A HREF="manual.html#lua_rawgeti">lua_rawgeti</A><BR>
|
||||||
|
<A HREF="manual.html#lua_rawgetp">lua_rawgetp</A><BR>
|
||||||
|
<A HREF="manual.html#lua_rawlen">lua_rawlen</A><BR>
|
||||||
|
<A HREF="manual.html#lua_rawset">lua_rawset</A><BR>
|
||||||
|
<A HREF="manual.html#lua_rawseti">lua_rawseti</A><BR>
|
||||||
|
<A HREF="manual.html#lua_rawsetp">lua_rawsetp</A><BR>
|
||||||
|
<A HREF="manual.html#lua_register">lua_register</A><BR>
|
||||||
|
<A HREF="manual.html#lua_remove">lua_remove</A><BR>
|
||||||
|
<A HREF="manual.html#lua_replace">lua_replace</A><BR>
|
||||||
|
<A HREF="manual.html#lua_resume">lua_resume</A><BR>
|
||||||
|
<A HREF="manual.html#lua_rotate">lua_rotate</A><BR>
|
||||||
|
<A HREF="manual.html#lua_setallocf">lua_setallocf</A><BR>
|
||||||
|
<A HREF="manual.html#lua_setfield">lua_setfield</A><BR>
|
||||||
|
<A HREF="manual.html#lua_setglobal">lua_setglobal</A><BR>
|
||||||
|
<A HREF="manual.html#lua_sethook">lua_sethook</A><BR>
|
||||||
|
<A HREF="manual.html#lua_seti">lua_seti</A><BR>
|
||||||
|
<A HREF="manual.html#lua_setlocal">lua_setlocal</A><BR>
|
||||||
|
<A HREF="manual.html#lua_setmetatable">lua_setmetatable</A><BR>
|
||||||
|
<A HREF="manual.html#lua_settable">lua_settable</A><BR>
|
||||||
|
<A HREF="manual.html#lua_settop">lua_settop</A><BR>
|
||||||
|
<A HREF="manual.html#lua_setupvalue">lua_setupvalue</A><BR>
|
||||||
|
<A HREF="manual.html#lua_setuservalue">lua_setuservalue</A><BR>
|
||||||
|
<A HREF="manual.html#lua_status">lua_status</A><BR>
|
||||||
|
<A HREF="manual.html#lua_stringtonumber">lua_stringtonumber</A><BR>
|
||||||
|
<A HREF="manual.html#lua_toboolean">lua_toboolean</A><BR>
|
||||||
|
<A HREF="manual.html#lua_tocfunction">lua_tocfunction</A><BR>
|
||||||
|
<A HREF="manual.html#lua_tointeger">lua_tointeger</A><BR>
|
||||||
|
<A HREF="manual.html#lua_tointegerx">lua_tointegerx</A><BR>
|
||||||
|
<A HREF="manual.html#lua_tolstring">lua_tolstring</A><BR>
|
||||||
|
<A HREF="manual.html#lua_tonumber">lua_tonumber</A><BR>
|
||||||
|
<A HREF="manual.html#lua_tonumberx">lua_tonumberx</A><BR>
|
||||||
|
<A HREF="manual.html#lua_topointer">lua_topointer</A><BR>
|
||||||
|
<A HREF="manual.html#lua_tostring">lua_tostring</A><BR>
|
||||||
|
<A HREF="manual.html#lua_tothread">lua_tothread</A><BR>
|
||||||
|
<A HREF="manual.html#lua_touserdata">lua_touserdata</A><BR>
|
||||||
|
<A HREF="manual.html#lua_type">lua_type</A><BR>
|
||||||
|
<A HREF="manual.html#lua_typename">lua_typename</A><BR>
|
||||||
|
<A HREF="manual.html#lua_upvalueid">lua_upvalueid</A><BR>
|
||||||
|
<A HREF="manual.html#lua_upvalueindex">lua_upvalueindex</A><BR>
|
||||||
|
<A HREF="manual.html#lua_upvaluejoin">lua_upvaluejoin</A><BR>
|
||||||
|
<A HREF="manual.html#lua_version">lua_version</A><BR>
|
||||||
|
<A HREF="manual.html#lua_xmove">lua_xmove</A><BR>
|
||||||
|
<A HREF="manual.html#lua_yield">lua_yield</A><BR>
|
||||||
|
<A HREF="manual.html#lua_yieldk">lua_yieldk</A><BR>
|
||||||
|
|
||||||
|
</TD>
|
||||||
|
<TD>
|
||||||
|
<H3><A NAME="auxlib">auxiliary library</A></H3>
|
||||||
|
<P>
|
||||||
|
<A HREF="manual.html#luaL_Buffer">luaL_Buffer</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_Reg">luaL_Reg</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_Stream">luaL_Stream</A><BR>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<A HREF="manual.html#luaL_addchar">luaL_addchar</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_addlstring">luaL_addlstring</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_addsize">luaL_addsize</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_addstring">luaL_addstring</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_addvalue">luaL_addvalue</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_argcheck">luaL_argcheck</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_argerror">luaL_argerror</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_buffinit">luaL_buffinit</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_buffinitsize">luaL_buffinitsize</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_callmeta">luaL_callmeta</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_checkany">luaL_checkany</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_checkinteger">luaL_checkinteger</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_checklstring">luaL_checklstring</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_checknumber">luaL_checknumber</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_checkoption">luaL_checkoption</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_checkstack">luaL_checkstack</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_checkstring">luaL_checkstring</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_checktype">luaL_checktype</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_checkudata">luaL_checkudata</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_checkversion">luaL_checkversion</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_dofile">luaL_dofile</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_dostring">luaL_dostring</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_error">luaL_error</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_execresult">luaL_execresult</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_fileresult">luaL_fileresult</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_getmetafield">luaL_getmetafield</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_getmetatable">luaL_getmetatable</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_getsubtable">luaL_getsubtable</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_gsub">luaL_gsub</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_len">luaL_len</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_loadbuffer">luaL_loadbuffer</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_loadbufferx">luaL_loadbufferx</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_loadfile">luaL_loadfile</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_loadfilex">luaL_loadfilex</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_loadstring">luaL_loadstring</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_newlib">luaL_newlib</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_newlibtable">luaL_newlibtable</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_newmetatable">luaL_newmetatable</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_newstate">luaL_newstate</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_openlibs">luaL_openlibs</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_opt">luaL_opt</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_optinteger">luaL_optinteger</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_optlstring">luaL_optlstring</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_optnumber">luaL_optnumber</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_optstring">luaL_optstring</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_prepbuffer">luaL_prepbuffer</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_prepbuffsize">luaL_prepbuffsize</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_pushresult">luaL_pushresult</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_pushresultsize">luaL_pushresultsize</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_ref">luaL_ref</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_requiref">luaL_requiref</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_setfuncs">luaL_setfuncs</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_setmetatable">luaL_setmetatable</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_testudata">luaL_testudata</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_tolstring">luaL_tolstring</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_traceback">luaL_traceback</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_typename">luaL_typename</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_unref">luaL_unref</A><BR>
|
||||||
|
<A HREF="manual.html#luaL_where">luaL_where</A><BR>
|
||||||
|
|
||||||
|
<H3><A NAME="library">standard library</A></H3>
|
||||||
|
<P>
|
||||||
|
<A HREF="manual.html#pdf-luaopen_base">luaopen_base</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-luaopen_coroutine">luaopen_coroutine</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-luaopen_debug">luaopen_debug</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-luaopen_io">luaopen_io</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-luaopen_math">luaopen_math</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-luaopen_os">luaopen_os</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-luaopen_package">luaopen_package</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-luaopen_string">luaopen_string</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-luaopen_table">luaopen_table</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-luaopen_utf8">luaopen_utf8</A><BR>
|
||||||
|
|
||||||
|
<H3><A NAME="constants">constants</A></H3>
|
||||||
|
<P>
|
||||||
|
<A HREF="manual.html#pdf-LUA_ERRERR">LUA_ERRERR</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_ERRFILE">LUA_ERRFILE</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_ERRGCMM">LUA_ERRGCMM</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_ERRMEM">LUA_ERRMEM</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_ERRRUN">LUA_ERRRUN</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_ERRSYNTAX">LUA_ERRSYNTAX</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_HOOKCALL">LUA_HOOKCALL</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_HOOKCOUNT">LUA_HOOKCOUNT</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_HOOKLINE">LUA_HOOKLINE</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_HOOKRET">LUA_HOOKRET</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_HOOKTAILCALL">LUA_HOOKTAILCALL</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_MASKCALL">LUA_MASKCALL</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_MASKCOUNT">LUA_MASKCOUNT</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_MASKLINE">LUA_MASKLINE</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_MASKRET">LUA_MASKRET</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_MAXINTEGER">LUA_MAXINTEGER</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_MININTEGER">LUA_MININTEGER</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_MINSTACK">LUA_MINSTACK</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_MULTRET">LUA_MULTRET</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_NOREF">LUA_NOREF</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_OK">LUA_OK</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_OPADD">LUA_OPADD</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_OPBAND">LUA_OPBAND</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_OPBNOT">LUA_OPBNOT</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_OPBOR">LUA_OPBOR</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_OPBXOR">LUA_OPBXOR</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_OPDIV">LUA_OPDIV</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_OPEQ">LUA_OPEQ</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_OPIDIV">LUA_OPIDIV</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_OPLE">LUA_OPLE</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_OPLT">LUA_OPLT</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_OPMOD">LUA_OPMOD</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_OPMUL">LUA_OPMUL</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_OPPOW">LUA_OPPOW</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_OPSHL">LUA_OPSHL</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_OPSHR">LUA_OPSHR</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_OPSUB">LUA_OPSUB</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_OPUNM">LUA_OPUNM</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_REFNIL">LUA_REFNIL</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_REGISTRYINDEX">LUA_REGISTRYINDEX</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_RIDX_GLOBALS">LUA_RIDX_GLOBALS</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_RIDX_MAINTHREAD">LUA_RIDX_MAINTHREAD</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_TBOOLEAN">LUA_TBOOLEAN</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_TFUNCTION">LUA_TFUNCTION</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_TLIGHTUSERDATA">LUA_TLIGHTUSERDATA</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_TNIL">LUA_TNIL</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_TNONE">LUA_TNONE</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_TNUMBER">LUA_TNUMBER</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_TSTRING">LUA_TSTRING</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_TTABLE">LUA_TTABLE</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_TTHREAD">LUA_TTHREAD</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_TUSERDATA">LUA_TUSERDATA</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_USE_APICHECK">LUA_USE_APICHECK</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUA_YIELD">LUA_YIELD</A><BR>
|
||||||
|
<A HREF="manual.html#pdf-LUAL_BUFFERSIZE">LUAL_BUFFERSIZE</A><BR>
|
||||||
|
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<P CLASS="footer">
|
||||||
|
Last update:
|
||||||
|
Mon Jun 18 22:56:06 -03 2018
|
||||||
|
</P>
|
||||||
|
<!--
|
||||||
|
Last change: revised for Lua 5.3.5
|
||||||
|
-->
|
||||||
|
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
21
singe/thirdparty/lua/doc/index.css
vendored
Normal file
21
singe/thirdparty/lua/doc/index.css
vendored
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
ul {
|
||||||
|
list-style-type: none ;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.contents {
|
||||||
|
padding: 0 ;
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
border: none ;
|
||||||
|
border-spacing: 0 ;
|
||||||
|
border-collapse: collapse ;
|
||||||
|
}
|
||||||
|
|
||||||
|
td {
|
||||||
|
vertical-align: top ;
|
||||||
|
padding: 0 ;
|
||||||
|
text-align: left ;
|
||||||
|
line-height: 1.25 ;
|
||||||
|
width: 15% ;
|
||||||
|
}
|
BIN
singe/thirdparty/lua/doc/logo.gif
vendored
Normal file
BIN
singe/thirdparty/lua/doc/logo.gif
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.7 KiB |
112
singe/thirdparty/lua/doc/lua.1
vendored
Normal file
112
singe/thirdparty/lua/doc/lua.1
vendored
Normal file
|
@ -0,0 +1,112 @@
|
||||||
|
.\" $Id: lua.man,v 1.14 2016/10/17 15:43:50 lhf Exp $
|
||||||
|
.TH LUA 1 "$Date: 2016/10/17 15:43:50 $"
|
||||||
|
.SH NAME
|
||||||
|
lua \- Lua interpreter
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B lua
|
||||||
|
[
|
||||||
|
.I options
|
||||||
|
]
|
||||||
|
[
|
||||||
|
.I script
|
||||||
|
[
|
||||||
|
.I args
|
||||||
|
]
|
||||||
|
]
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.B lua
|
||||||
|
is the standalone Lua interpreter.
|
||||||
|
It loads and executes Lua programs,
|
||||||
|
either in textual source form or
|
||||||
|
in precompiled binary form.
|
||||||
|
(Precompiled binaries are output by
|
||||||
|
.BR luac ,
|
||||||
|
the Lua compiler.)
|
||||||
|
.B lua
|
||||||
|
can be used as a batch interpreter and also interactively.
|
||||||
|
.LP
|
||||||
|
The given
|
||||||
|
.I options
|
||||||
|
are handled in order and then
|
||||||
|
the Lua program in file
|
||||||
|
.I script
|
||||||
|
is loaded and executed.
|
||||||
|
The given
|
||||||
|
.I args
|
||||||
|
are available to
|
||||||
|
.I script
|
||||||
|
as strings in a global table named
|
||||||
|
.BR arg .
|
||||||
|
If no options or arguments are given,
|
||||||
|
then
|
||||||
|
.B "\-v \-i"
|
||||||
|
is assumed when the standard input is a terminal;
|
||||||
|
otherwise,
|
||||||
|
.B "\-"
|
||||||
|
is assumed.
|
||||||
|
.LP
|
||||||
|
In interactive mode,
|
||||||
|
.B lua
|
||||||
|
prompts the user,
|
||||||
|
reads lines from the standard input,
|
||||||
|
and executes them as they are read.
|
||||||
|
If the line contains an expression or list of expressions,
|
||||||
|
then the line is evaluated and the results are printed.
|
||||||
|
If a line does not contain a complete statement,
|
||||||
|
then a secondary prompt is displayed and
|
||||||
|
lines are read until a complete statement is formed or
|
||||||
|
a syntax error is found.
|
||||||
|
.LP
|
||||||
|
At the very start,
|
||||||
|
before even handling the command line,
|
||||||
|
.B lua
|
||||||
|
checks the contents of the environment variables
|
||||||
|
.B LUA_INIT_5_3
|
||||||
|
or
|
||||||
|
.BR LUA_INIT ,
|
||||||
|
in that order.
|
||||||
|
If the contents is of the form
|
||||||
|
.RI '@ filename ',
|
||||||
|
then
|
||||||
|
.I filename
|
||||||
|
is executed.
|
||||||
|
Otherwise, the string is assumed to be a Lua statement and is executed.
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
.BI \-e " stat"
|
||||||
|
execute statement
|
||||||
|
.IR stat .
|
||||||
|
.TP
|
||||||
|
.B \-i
|
||||||
|
enter interactive mode after executing
|
||||||
|
.IR script .
|
||||||
|
.TP
|
||||||
|
.BI \-l " name"
|
||||||
|
execute the equivalent of
|
||||||
|
.IB name =require(' name ')
|
||||||
|
before executing
|
||||||
|
.IR script .
|
||||||
|
.TP
|
||||||
|
.B \-v
|
||||||
|
show version information.
|
||||||
|
.TP
|
||||||
|
.B \-E
|
||||||
|
ignore environment variables.
|
||||||
|
.TP
|
||||||
|
.B \-\-
|
||||||
|
stop handling options.
|
||||||
|
.TP
|
||||||
|
.B \-
|
||||||
|
stop handling options and execute the standard input as a file.
|
||||||
|
.SH "SEE ALSO"
|
||||||
|
.BR luac (1)
|
||||||
|
.br
|
||||||
|
The documentation at lua.org,
|
||||||
|
especially section 7 of the reference manual.
|
||||||
|
.SH DIAGNOSTICS
|
||||||
|
Error messages should be self explanatory.
|
||||||
|
.SH AUTHORS
|
||||||
|
R. Ierusalimschy,
|
||||||
|
L. H. de Figueiredo,
|
||||||
|
W. Celes
|
||||||
|
.\" EOF
|
161
singe/thirdparty/lua/doc/lua.css
vendored
Normal file
161
singe/thirdparty/lua/doc/lua.css
vendored
Normal file
|
@ -0,0 +1,161 @@
|
||||||
|
html {
|
||||||
|
background-color: #F8F8F8 ;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background-color: #FFFFFF ;
|
||||||
|
color: #000000 ;
|
||||||
|
font-family: Helvetica, Arial, sans-serif ;
|
||||||
|
text-align: justify ;
|
||||||
|
line-height: 1.25 ;
|
||||||
|
margin: 16px auto ;
|
||||||
|
padding: 32px ;
|
||||||
|
border: solid #ccc 1px ;
|
||||||
|
border-radius: 20px ;
|
||||||
|
max-width: 70em ;
|
||||||
|
width: 90% ;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1, h2, h3, h4 {
|
||||||
|
color: #000080 ;
|
||||||
|
font-family: Verdana, Geneva, sans-serif ;
|
||||||
|
font-weight: normal ;
|
||||||
|
font-style: normal ;
|
||||||
|
text-align: left ;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 28pt ;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 img {
|
||||||
|
vertical-align: text-bottom ;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2:before {
|
||||||
|
content: "\2756" ;
|
||||||
|
padding-right: 0.5em ;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
text-decoration: none ;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:link {
|
||||||
|
color: #000080 ;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:link:hover, a:visited:hover {
|
||||||
|
background-color: #D0D0FF ;
|
||||||
|
color: #000080 ;
|
||||||
|
border-radius: 4px ;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:link:active, a:visited:active {
|
||||||
|
color: #FF0000 ;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.menubar {
|
||||||
|
padding-bottom: 0.5em ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.menubar {
|
||||||
|
margin-left: 2.5em ;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menubar a:hover {
|
||||||
|
margin: -3px -3px -3px -3px ;
|
||||||
|
padding: 3px 3px 3px 3px ;
|
||||||
|
border-radius: 4px ;
|
||||||
|
}
|
||||||
|
|
||||||
|
:target {
|
||||||
|
background-color: #F0F0F0 ;
|
||||||
|
margin: -8px ;
|
||||||
|
padding: 8px ;
|
||||||
|
border-radius: 8px ;
|
||||||
|
outline: none ;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
display: none ;
|
||||||
|
}
|
||||||
|
|
||||||
|
table hr {
|
||||||
|
background-color: #a0a0a0 ;
|
||||||
|
color: #a0a0a0 ;
|
||||||
|
border: 0 ;
|
||||||
|
height: 1px ;
|
||||||
|
display: block ;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer {
|
||||||
|
color: gray ;
|
||||||
|
font-size: x-small ;
|
||||||
|
text-transform: lowercase ;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type=text] {
|
||||||
|
border: solid #a0a0a0 2px ;
|
||||||
|
border-radius: 2em ;
|
||||||
|
background-image: url('images/search.png') ;
|
||||||
|
background-repeat: no-repeat ;
|
||||||
|
background-position: 4px center ;
|
||||||
|
padding-left: 20px ;
|
||||||
|
height: 2em ;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre.session {
|
||||||
|
background-color: #F8F8F8 ;
|
||||||
|
padding: 1em ;
|
||||||
|
border-radius: 8px ;
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
border: none ;
|
||||||
|
border-spacing: 0 ;
|
||||||
|
border-collapse: collapse ;
|
||||||
|
}
|
||||||
|
|
||||||
|
td {
|
||||||
|
padding: 0 ;
|
||||||
|
margin: 0 ;
|
||||||
|
}
|
||||||
|
|
||||||
|
td.gutter {
|
||||||
|
width: 4% ;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.columns td {
|
||||||
|
vertical-align: top ;
|
||||||
|
padding-bottom: 1em ;
|
||||||
|
text-align: justify ;
|
||||||
|
line-height: 1.25 ;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.book td {
|
||||||
|
vertical-align: top ;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.book td.cover {
|
||||||
|
padding-right: 1em ;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.book img {
|
||||||
|
border: solid #000080 1px ;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.book span {
|
||||||
|
font-size: small ;
|
||||||
|
text-align: left ;
|
||||||
|
display: block ;
|
||||||
|
margin-top: 0.25em ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.logos a:link:hover, p.logos a:visited:hover {
|
||||||
|
background-color: inherit ;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
background-color: white ;
|
||||||
|
}
|
118
singe/thirdparty/lua/doc/luac.1
vendored
Normal file
118
singe/thirdparty/lua/doc/luac.1
vendored
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
.\" $Id: luac.man,v 1.29 2011/11/16 13:53:40 lhf Exp $
|
||||||
|
.TH LUAC 1 "$Date: 2011/11/16 13:53:40 $"
|
||||||
|
.SH NAME
|
||||||
|
luac \- Lua compiler
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B luac
|
||||||
|
[
|
||||||
|
.I options
|
||||||
|
] [
|
||||||
|
.I filenames
|
||||||
|
]
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.B luac
|
||||||
|
is the Lua compiler.
|
||||||
|
It translates programs written in the Lua programming language
|
||||||
|
into binary files containing precompiled chunks
|
||||||
|
that can be later loaded and executed.
|
||||||
|
.LP
|
||||||
|
The main advantages of precompiling chunks are:
|
||||||
|
faster loading,
|
||||||
|
protecting source code from accidental user changes,
|
||||||
|
and
|
||||||
|
off-line syntax checking.
|
||||||
|
Precompiling does not imply faster execution
|
||||||
|
because in Lua chunks are always compiled into bytecodes before being executed.
|
||||||
|
.B luac
|
||||||
|
simply allows those bytecodes to be saved in a file for later execution.
|
||||||
|
Precompiled chunks are not necessarily smaller than the corresponding source.
|
||||||
|
The main goal in precompiling is faster loading.
|
||||||
|
.LP
|
||||||
|
In the command line,
|
||||||
|
you can mix
|
||||||
|
text files containing Lua source and
|
||||||
|
binary files containing precompiled chunks.
|
||||||
|
.B luac
|
||||||
|
produces a single output file containing the combined bytecodes
|
||||||
|
for all files given.
|
||||||
|
Executing the combined file is equivalent to executing the given files.
|
||||||
|
By default,
|
||||||
|
the output file is named
|
||||||
|
.BR luac.out ,
|
||||||
|
but you can change this with the
|
||||||
|
.B \-o
|
||||||
|
option.
|
||||||
|
.LP
|
||||||
|
Precompiled chunks are
|
||||||
|
.I not
|
||||||
|
portable across different architectures.
|
||||||
|
Moreover,
|
||||||
|
the internal format of precompiled chunks
|
||||||
|
is likely to change when a new version of Lua is released.
|
||||||
|
Make sure you save the source files of all Lua programs that you precompile.
|
||||||
|
.LP
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
.B \-l
|
||||||
|
produce a listing of the compiled bytecode for Lua's virtual machine.
|
||||||
|
Listing bytecodes is useful to learn about Lua's virtual machine.
|
||||||
|
If no files are given, then
|
||||||
|
.B luac
|
||||||
|
loads
|
||||||
|
.B luac.out
|
||||||
|
and lists its contents.
|
||||||
|
Use
|
||||||
|
.B \-l \-l
|
||||||
|
for a full listing.
|
||||||
|
.TP
|
||||||
|
.BI \-o " file"
|
||||||
|
output to
|
||||||
|
.IR file ,
|
||||||
|
instead of the default
|
||||||
|
.BR luac.out .
|
||||||
|
(You can use
|
||||||
|
.B "'\-'"
|
||||||
|
for standard output,
|
||||||
|
but not on platforms that open standard output in text mode.)
|
||||||
|
The output file may be one of the given files because
|
||||||
|
all files are loaded before the output file is written.
|
||||||
|
Be careful not to overwrite precious files.
|
||||||
|
.TP
|
||||||
|
.B \-p
|
||||||
|
load files but do not generate any output file.
|
||||||
|
Used mainly for syntax checking and for testing precompiled chunks:
|
||||||
|
corrupted files will probably generate errors when loaded.
|
||||||
|
If no files are given, then
|
||||||
|
.B luac
|
||||||
|
loads
|
||||||
|
.B luac.out
|
||||||
|
and tests its contents.
|
||||||
|
No messages are displayed if the file loads without errors.
|
||||||
|
.TP
|
||||||
|
.B \-s
|
||||||
|
strip debug information before writing the output file.
|
||||||
|
This saves some space in very large chunks,
|
||||||
|
but if errors occur when running a stripped chunk,
|
||||||
|
then the error messages may not contain the full information they usually do.
|
||||||
|
In particular,
|
||||||
|
line numbers and names of local variables are lost.
|
||||||
|
.TP
|
||||||
|
.B \-v
|
||||||
|
show version information.
|
||||||
|
.TP
|
||||||
|
.B \-\-
|
||||||
|
stop handling options.
|
||||||
|
.TP
|
||||||
|
.B \-
|
||||||
|
stop handling options and process standard input.
|
||||||
|
.SH "SEE ALSO"
|
||||||
|
.BR lua (1)
|
||||||
|
.br
|
||||||
|
The documentation at lua.org.
|
||||||
|
.SH DIAGNOSTICS
|
||||||
|
Error messages should be self explanatory.
|
||||||
|
.SH AUTHORS
|
||||||
|
R. Ierusalimschy,
|
||||||
|
L. H. de Figueiredo,
|
||||||
|
W. Celes
|
||||||
|
.\" EOF
|
21
singe/thirdparty/lua/doc/manual.css
vendored
Normal file
21
singe/thirdparty/lua/doc/manual.css
vendored
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
h3 code {
|
||||||
|
font-family: inherit ;
|
||||||
|
font-size: inherit ;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre, code {
|
||||||
|
font-size: 12pt ;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.apii {
|
||||||
|
color: gray ;
|
||||||
|
float: right ;
|
||||||
|
font-family: inherit ;
|
||||||
|
font-style: normal ;
|
||||||
|
font-size: small ;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2:before {
|
||||||
|
content: "" ;
|
||||||
|
padding-right: 0em ;
|
||||||
|
}
|
10982
singe/thirdparty/lua/doc/manual.html
vendored
Normal file
10982
singe/thirdparty/lua/doc/manual.html
vendored
Normal file
File diff suppressed because it is too large
Load diff
BIN
singe/thirdparty/lua/doc/osi-certified-72x60.png
vendored
Normal file
BIN
singe/thirdparty/lua/doc/osi-certified-72x60.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.7 KiB |
365
singe/thirdparty/lua/doc/readme.html
vendored
Normal file
365
singe/thirdparty/lua/doc/readme.html
vendored
Normal file
|
@ -0,0 +1,365 @@
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<HTML>
|
||||||
|
<HEAD>
|
||||||
|
<TITLE>Lua 5.3 readme</TITLE>
|
||||||
|
<LINK REL="stylesheet" TYPE="text/css" HREF="lua.css">
|
||||||
|
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">
|
||||||
|
<STYLE TYPE="text/css">
|
||||||
|
blockquote, .display {
|
||||||
|
border: solid #a0a0a0 2px ;
|
||||||
|
border-radius: 8px ;
|
||||||
|
padding: 1em ;
|
||||||
|
margin: 0px ;
|
||||||
|
}
|
||||||
|
|
||||||
|
.display {
|
||||||
|
word-spacing: 0.25em ;
|
||||||
|
}
|
||||||
|
|
||||||
|
dl.display dd {
|
||||||
|
padding-bottom: 0.2em ;
|
||||||
|
}
|
||||||
|
|
||||||
|
tt, kbd, code {
|
||||||
|
font-size: 12pt ;
|
||||||
|
}
|
||||||
|
</STYLE>
|
||||||
|
</HEAD>
|
||||||
|
|
||||||
|
<BODY>
|
||||||
|
|
||||||
|
<H1>
|
||||||
|
<A HREF="http://www.lua.org/"><IMG SRC="logo.gif" ALT="Lua"></A>
|
||||||
|
Welcome to Lua 5.3
|
||||||
|
</H1>
|
||||||
|
|
||||||
|
<DIV CLASS="menubar">
|
||||||
|
<A HREF="#about">about</A>
|
||||||
|
·
|
||||||
|
<A HREF="#install">installation</A>
|
||||||
|
·
|
||||||
|
<A HREF="#changes">changes</A>
|
||||||
|
·
|
||||||
|
<A HREF="#license">license</A>
|
||||||
|
·
|
||||||
|
<A HREF="contents.html">reference manual</A>
|
||||||
|
</DIV>
|
||||||
|
|
||||||
|
<H2><A NAME="about">About Lua</A></H2>
|
||||||
|
<P>
|
||||||
|
Lua is a powerful, fast, lightweight, embeddable scripting language
|
||||||
|
developed by a
|
||||||
|
<A HREF="http://www.lua.org/authors.html">team</A>
|
||||||
|
at
|
||||||
|
<A HREF="http://www.puc-rio.br/">PUC-Rio</A>,
|
||||||
|
the Pontifical Catholic University of Rio de Janeiro in Brazil.
|
||||||
|
Lua is
|
||||||
|
<A HREF="#license">free software</A>
|
||||||
|
used in many products and projects around the world.
|
||||||
|
|
||||||
|
<P>
|
||||||
|
Lua's
|
||||||
|
<A HREF="http://www.lua.org/">official web site</A>
|
||||||
|
provides complete information
|
||||||
|
about Lua,
|
||||||
|
including
|
||||||
|
an
|
||||||
|
<A HREF="http://www.lua.org/about.html">executive summary</A>
|
||||||
|
and
|
||||||
|
updated
|
||||||
|
<A HREF="http://www.lua.org/docs.html">documentation</A>,
|
||||||
|
especially the
|
||||||
|
<A HREF="http://www.lua.org/manual/5.3/">reference manual</A>,
|
||||||
|
which may differ slightly from the
|
||||||
|
<A HREF="contents.html">local copy</A>
|
||||||
|
distributed in this package.
|
||||||
|
|
||||||
|
<H2><A NAME="install">Installing Lua</A></H2>
|
||||||
|
<P>
|
||||||
|
Lua is distributed in
|
||||||
|
<A HREF="http://www.lua.org/ftp/">source</A>
|
||||||
|
form.
|
||||||
|
You need to build it before using it.
|
||||||
|
Building Lua should be straightforward
|
||||||
|
because
|
||||||
|
Lua is implemented in pure ANSI C and compiles unmodified in all known
|
||||||
|
platforms that have an ANSI C compiler.
|
||||||
|
Lua also compiles unmodified as C++.
|
||||||
|
The instructions given below for building Lua are for Unix-like platforms.
|
||||||
|
See also
|
||||||
|
<A HREF="#other">instructions for other systems</A>
|
||||||
|
and
|
||||||
|
<A HREF="#customization">customization options</A>.
|
||||||
|
|
||||||
|
<P>
|
||||||
|
If you don't have the time or the inclination to compile Lua yourself,
|
||||||
|
get a binary from
|
||||||
|
<A HREF="http://lua-users.org/wiki/LuaBinaries">LuaBinaries</A>.
|
||||||
|
Try also
|
||||||
|
<A HREF="http://luadist.org/">LuaDist</A>,
|
||||||
|
a multi-platform distribution of Lua that includes batteries.
|
||||||
|
|
||||||
|
<H3>Building Lua</H3>
|
||||||
|
<P>
|
||||||
|
In most Unix-like platforms, simply do "<KBD>make</KBD>" with a suitable target.
|
||||||
|
Here are the details.
|
||||||
|
|
||||||
|
<OL>
|
||||||
|
<LI>
|
||||||
|
Open a terminal window and move to
|
||||||
|
the top-level directory, which is named <TT>lua-5.3.5</TT>.
|
||||||
|
The <TT>Makefile</TT> there controls both the build process and the installation process.
|
||||||
|
<P>
|
||||||
|
<LI>
|
||||||
|
Do "<KBD>make</KBD>" and see if your platform is listed.
|
||||||
|
The platforms currently supported are:
|
||||||
|
<P>
|
||||||
|
<P CLASS="display">
|
||||||
|
aix bsd c89 freebsd generic linux macosx mingw posix solaris
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
If your platform is listed, just do "<KBD>make xxx</KBD>", where xxx
|
||||||
|
is your platform name.
|
||||||
|
<P>
|
||||||
|
If your platform is not listed, try the closest one or posix, generic,
|
||||||
|
c89, in this order.
|
||||||
|
<P>
|
||||||
|
<LI>
|
||||||
|
The compilation takes only a few moments
|
||||||
|
and produces three files in the <TT>src</TT> directory:
|
||||||
|
lua (the interpreter),
|
||||||
|
luac (the compiler),
|
||||||
|
and liblua.a (the library).
|
||||||
|
<P>
|
||||||
|
<LI>
|
||||||
|
To check that Lua has been built correctly, do "<KBD>make test</KBD>"
|
||||||
|
after building Lua. This will run the interpreter and print its version.
|
||||||
|
</OL>
|
||||||
|
<P>
|
||||||
|
If you're running Linux and get compilation errors,
|
||||||
|
make sure you have installed the <TT>readline</TT> development package
|
||||||
|
(which is probably named <TT>libreadline-dev</TT> or <TT>readline-devel</TT>).
|
||||||
|
If you get link errors after that,
|
||||||
|
then try "<KBD>make linux MYLIBS=-ltermcap</KBD>".
|
||||||
|
|
||||||
|
<H3>Installing Lua</H3>
|
||||||
|
<P>
|
||||||
|
Once you have built Lua, you may want to install it in an official
|
||||||
|
place in your system. In this case, do "<KBD>make install</KBD>". The official
|
||||||
|
place and the way to install files are defined in the <TT>Makefile</TT>. You'll
|
||||||
|
probably need the right permissions to install files.
|
||||||
|
|
||||||
|
<P>
|
||||||
|
To build and install Lua in one step, do "<KBD>make xxx install</KBD>",
|
||||||
|
where xxx is your platform name.
|
||||||
|
|
||||||
|
<P>
|
||||||
|
To install Lua locally, do "<KBD>make local</KBD>".
|
||||||
|
This will create a directory <TT>install</TT> with subdirectories
|
||||||
|
<TT>bin</TT>, <TT>include</TT>, <TT>lib</TT>, <TT>man</TT>, <TT>share</TT>,
|
||||||
|
and install Lua as listed below.
|
||||||
|
|
||||||
|
To install Lua locally, but in some other directory, do
|
||||||
|
"<KBD>make install INSTALL_TOP=xxx</KBD>", where xxx is your chosen directory.
|
||||||
|
The installation starts in the <TT>src</TT> and <TT>doc</TT> directories,
|
||||||
|
so take care if <TT>INSTALL_TOP</TT> is not an absolute path.
|
||||||
|
|
||||||
|
<DL CLASS="display">
|
||||||
|
<DT>
|
||||||
|
bin:
|
||||||
|
<DD>
|
||||||
|
lua luac
|
||||||
|
<DT>
|
||||||
|
include:
|
||||||
|
<DD>
|
||||||
|
lua.h luaconf.h lualib.h lauxlib.h lua.hpp
|
||||||
|
<DT>
|
||||||
|
lib:
|
||||||
|
<DD>
|
||||||
|
liblua.a
|
||||||
|
<DT>
|
||||||
|
man/man1:
|
||||||
|
<DD>
|
||||||
|
lua.1 luac.1
|
||||||
|
</DL>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
These are the only directories you need for development.
|
||||||
|
If you only want to run Lua programs,
|
||||||
|
you only need the files in <TT>bin</TT> and <TT>man</TT>.
|
||||||
|
The files in <TT>include</TT> and <TT>lib</TT> are needed for
|
||||||
|
embedding Lua in C or C++ programs.
|
||||||
|
|
||||||
|
<H3><A NAME="customization">Customization</A></H3>
|
||||||
|
<P>
|
||||||
|
Three kinds of things can be customized by editing a file:
|
||||||
|
<UL>
|
||||||
|
<LI> Where and how to install Lua — edit <TT>Makefile</TT>.
|
||||||
|
<LI> How to build Lua — edit <TT>src/Makefile</TT>.
|
||||||
|
<LI> Lua features — edit <TT>src/luaconf.h</TT>.
|
||||||
|
</UL>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
You don't actually need to edit the Makefiles because you may set the
|
||||||
|
relevant variables in the command line when invoking make.
|
||||||
|
Nevertheless, it's probably best to edit and save the Makefiles to
|
||||||
|
record the changes you've made.
|
||||||
|
|
||||||
|
<P>
|
||||||
|
On the other hand, if you need to customize some Lua features, you'll need
|
||||||
|
to edit <TT>src/luaconf.h</TT> before building and installing Lua.
|
||||||
|
The edited file will be the one installed, and
|
||||||
|
it will be used by any Lua clients that you build, to ensure consistency.
|
||||||
|
Further customization is available to experts by editing the Lua sources.
|
||||||
|
|
||||||
|
<H3><A NAME="other">Building Lua on other systems</A></H3>
|
||||||
|
<P>
|
||||||
|
If you're not using the usual Unix tools, then the instructions for
|
||||||
|
building Lua depend on the compiler you use. You'll need to create
|
||||||
|
projects (or whatever your compiler uses) for building the library,
|
||||||
|
the interpreter, and the compiler, as follows:
|
||||||
|
|
||||||
|
<DL CLASS="display">
|
||||||
|
<DT>
|
||||||
|
library:
|
||||||
|
<DD>
|
||||||
|
lapi.c lcode.c lctype.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c
|
||||||
|
lmem.c lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c
|
||||||
|
ltm.c lundump.c lvm.c lzio.c
|
||||||
|
lauxlib.c lbaselib.c lbitlib.c lcorolib.c ldblib.c liolib.c
|
||||||
|
lmathlib.c loslib.c lstrlib.c ltablib.c lutf8lib.c loadlib.c linit.c
|
||||||
|
<DT>
|
||||||
|
interpreter:
|
||||||
|
<DD>
|
||||||
|
library, lua.c
|
||||||
|
<DT>
|
||||||
|
compiler:
|
||||||
|
<DD>
|
||||||
|
library, luac.c
|
||||||
|
</DL>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
To use Lua as a library in your own programs you'll need to know how to
|
||||||
|
create and use libraries with your compiler. Moreover, to dynamically load
|
||||||
|
C libraries for Lua you'll need to know how to create dynamic libraries
|
||||||
|
and you'll need to make sure that the Lua API functions are accessible to
|
||||||
|
those dynamic libraries — but <EM>don't</EM> link the Lua library
|
||||||
|
into each dynamic library. For Unix, we recommend that the Lua library
|
||||||
|
be linked statically into the host program and its symbols exported for
|
||||||
|
dynamic linking; <TT>src/Makefile</TT> does this for the Lua interpreter.
|
||||||
|
For Windows, we recommend that the Lua library be a DLL.
|
||||||
|
In all cases, the compiler luac should be linked statically.
|
||||||
|
|
||||||
|
<P>
|
||||||
|
As mentioned above, you may edit <TT>src/luaconf.h</TT> to customize
|
||||||
|
some features before building Lua.
|
||||||
|
|
||||||
|
<H2><A NAME="changes">Changes since Lua 5.2</A></H2>
|
||||||
|
<P>
|
||||||
|
Here are the main changes introduced in Lua 5.3.
|
||||||
|
The
|
||||||
|
<A HREF="contents.html">reference manual</A>
|
||||||
|
lists the
|
||||||
|
<A HREF="manual.html#8">incompatibilities</A> that had to be introduced.
|
||||||
|
|
||||||
|
<H3>Main changes</H3>
|
||||||
|
<UL>
|
||||||
|
<LI> integers (64-bit by default)
|
||||||
|
<LI> official support for 32-bit numbers
|
||||||
|
<LI> bitwise operators
|
||||||
|
<LI> basic utf-8 support
|
||||||
|
<LI> functions for packing and unpacking values
|
||||||
|
|
||||||
|
</UL>
|
||||||
|
|
||||||
|
Here are the other changes introduced in Lua 5.3:
|
||||||
|
<H3>Language</H3>
|
||||||
|
<UL>
|
||||||
|
<LI> userdata can have any Lua value as uservalue
|
||||||
|
<LI> floor division
|
||||||
|
<LI> more flexible rules for some metamethods
|
||||||
|
</UL>
|
||||||
|
|
||||||
|
<H3>Libraries</H3>
|
||||||
|
<UL>
|
||||||
|
<LI> <CODE>ipairs</CODE> and the table library respect metamethods
|
||||||
|
<LI> strip option in <CODE>string.dump</CODE>
|
||||||
|
<LI> table library respects metamethods
|
||||||
|
<LI> new function <CODE>table.move</CODE>
|
||||||
|
<LI> new function <CODE>string.pack</CODE>
|
||||||
|
<LI> new function <CODE>string.unpack</CODE>
|
||||||
|
<LI> new function <CODE>string.packsize</CODE>
|
||||||
|
</UL>
|
||||||
|
|
||||||
|
<H3>C API</H3>
|
||||||
|
<UL>
|
||||||
|
<LI> simpler API for continuation functions in C
|
||||||
|
<LI> <CODE>lua_gettable</CODE> and similar functions return type of resulted value
|
||||||
|
<LI> strip option in <CODE>lua_dump</CODE>
|
||||||
|
<LI> new function: <CODE>lua_geti</CODE>
|
||||||
|
<LI> new function: <CODE>lua_seti</CODE>
|
||||||
|
<LI> new function: <CODE>lua_isyieldable</CODE>
|
||||||
|
<LI> new function: <CODE>lua_numbertointeger</CODE>
|
||||||
|
<LI> new function: <CODE>lua_rotate</CODE>
|
||||||
|
<LI> new function: <CODE>lua_stringtonumber</CODE>
|
||||||
|
</UL>
|
||||||
|
|
||||||
|
<H3>Lua standalone interpreter</H3>
|
||||||
|
<UL>
|
||||||
|
<LI> can be used as calculator; no need to prefix with '='
|
||||||
|
<LI> <CODE>arg</CODE> table available to all code
|
||||||
|
</UL>
|
||||||
|
|
||||||
|
<H2><A NAME="license">License</A></H2>
|
||||||
|
<P>
|
||||||
|
<A HREF="http://www.opensource.org/docs/definition.php">
|
||||||
|
<IMG SRC="osi-certified-72x60.png" ALIGN="right" ALT="[osi certified]" STYLE="padding-left: 30px ;">
|
||||||
|
</A>
|
||||||
|
Lua is free software distributed under the terms of the
|
||||||
|
<A HREF="http://www.opensource.org/licenses/mit-license.html">MIT license</A>
|
||||||
|
reproduced below;
|
||||||
|
it may be used for any purpose, including commercial purposes,
|
||||||
|
at absolutely no cost without having to ask us.
|
||||||
|
|
||||||
|
The only requirement is that if you do use Lua,
|
||||||
|
then you should give us credit by including the appropriate copyright notice somewhere in your product or its documentation.
|
||||||
|
|
||||||
|
For details, see
|
||||||
|
<A HREF="http://www.lua.org/license.html">this</A>.
|
||||||
|
|
||||||
|
<BLOCKQUOTE STYLE="padding-bottom: 0em">
|
||||||
|
Copyright © 1994–2017 Lua.org, PUC-Rio.
|
||||||
|
|
||||||
|
<P>
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
<P>
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
<P>
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
</BLOCKQUOTE>
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<P CLASS="footer">
|
||||||
|
Last update:
|
||||||
|
Mon Jun 18 22:57:33 -03 2018
|
||||||
|
</P>
|
||||||
|
<!--
|
||||||
|
Last change: revised for Lua 5.3.5
|
||||||
|
-->
|
||||||
|
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
197
singe/thirdparty/lua/src/Makefile
vendored
Normal file
197
singe/thirdparty/lua/src/Makefile
vendored
Normal file
|
@ -0,0 +1,197 @@
|
||||||
|
# Makefile for building Lua
|
||||||
|
# See ../doc/readme.html for installation and customization instructions.
|
||||||
|
|
||||||
|
# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======================
|
||||||
|
|
||||||
|
# Your platform. See PLATS for possible values.
|
||||||
|
PLAT= none
|
||||||
|
|
||||||
|
CC= gcc -std=gnu99
|
||||||
|
CFLAGS= -O2 -Wall -Wextra -DLUA_COMPAT_5_2 $(SYSCFLAGS) $(MYCFLAGS)
|
||||||
|
LDFLAGS= $(SYSLDFLAGS) $(MYLDFLAGS)
|
||||||
|
LIBS= -lm $(SYSLIBS) $(MYLIBS)
|
||||||
|
|
||||||
|
AR= ar rcu
|
||||||
|
RANLIB= ranlib
|
||||||
|
RM= rm -f
|
||||||
|
|
||||||
|
SYSCFLAGS=
|
||||||
|
SYSLDFLAGS=
|
||||||
|
SYSLIBS=
|
||||||
|
|
||||||
|
MYCFLAGS=
|
||||||
|
MYLDFLAGS=
|
||||||
|
MYLIBS=
|
||||||
|
MYOBJS=
|
||||||
|
|
||||||
|
# == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE =======
|
||||||
|
|
||||||
|
PLATS= aix bsd c89 freebsd generic linux macosx mingw posix solaris
|
||||||
|
|
||||||
|
LUA_A= liblua.a
|
||||||
|
CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \
|
||||||
|
lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \
|
||||||
|
ltm.o lundump.o lvm.o lzio.o
|
||||||
|
LIB_O= lauxlib.o lbaselib.o lbitlib.o lcorolib.o ldblib.o liolib.o \
|
||||||
|
lmathlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o loadlib.o linit.o
|
||||||
|
BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS)
|
||||||
|
|
||||||
|
LUA_T= lua
|
||||||
|
LUA_O= lua.o
|
||||||
|
|
||||||
|
LUAC_T= luac
|
||||||
|
LUAC_O= luac.o
|
||||||
|
|
||||||
|
ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O)
|
||||||
|
ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T)
|
||||||
|
ALL_A= $(LUA_A)
|
||||||
|
|
||||||
|
# Targets start here.
|
||||||
|
default: $(PLAT)
|
||||||
|
|
||||||
|
all: $(ALL_T)
|
||||||
|
|
||||||
|
o: $(ALL_O)
|
||||||
|
|
||||||
|
a: $(ALL_A)
|
||||||
|
|
||||||
|
$(LUA_A): $(BASE_O)
|
||||||
|
$(AR) $@ $(BASE_O)
|
||||||
|
$(RANLIB) $@
|
||||||
|
|
||||||
|
$(LUA_T): $(LUA_O) $(LUA_A)
|
||||||
|
$(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
|
||||||
|
|
||||||
|
$(LUAC_T): $(LUAC_O) $(LUA_A)
|
||||||
|
$(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
$(RM) $(ALL_T) $(ALL_O)
|
||||||
|
|
||||||
|
depend:
|
||||||
|
@$(CC) $(CFLAGS) -MM l*.c
|
||||||
|
|
||||||
|
echo:
|
||||||
|
@echo "PLAT= $(PLAT)"
|
||||||
|
@echo "CC= $(CC)"
|
||||||
|
@echo "CFLAGS= $(CFLAGS)"
|
||||||
|
@echo "LDFLAGS= $(SYSLDFLAGS)"
|
||||||
|
@echo "LIBS= $(LIBS)"
|
||||||
|
@echo "AR= $(AR)"
|
||||||
|
@echo "RANLIB= $(RANLIB)"
|
||||||
|
@echo "RM= $(RM)"
|
||||||
|
|
||||||
|
# Convenience targets for popular platforms
|
||||||
|
ALL= all
|
||||||
|
|
||||||
|
none:
|
||||||
|
@echo "Please do 'make PLATFORM' where PLATFORM is one of these:"
|
||||||
|
@echo " $(PLATS)"
|
||||||
|
|
||||||
|
aix:
|
||||||
|
$(MAKE) $(ALL) CC="xlc" CFLAGS="-O2 -DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-ldl" SYSLDFLAGS="-brtl -bexpall"
|
||||||
|
|
||||||
|
bsd:
|
||||||
|
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-Wl,-E"
|
||||||
|
|
||||||
|
c89:
|
||||||
|
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_C89" CC="gcc -std=c89"
|
||||||
|
@echo ''
|
||||||
|
@echo '*** C89 does not guarantee 64-bit integers for Lua.'
|
||||||
|
@echo ''
|
||||||
|
|
||||||
|
|
||||||
|
freebsd:
|
||||||
|
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX -DLUA_USE_READLINE -I/usr/include/edit" SYSLIBS="-Wl,-E -ledit" CC="cc"
|
||||||
|
|
||||||
|
generic: $(ALL)
|
||||||
|
|
||||||
|
linux:
|
||||||
|
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline"
|
||||||
|
|
||||||
|
macosx:
|
||||||
|
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX" SYSLIBS="-lreadline"
|
||||||
|
|
||||||
|
mingw:
|
||||||
|
$(MAKE) "LUA_A=lua53.dll" "LUA_T=lua.exe" \
|
||||||
|
"AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \
|
||||||
|
"SYSCFLAGS=-DLUA_BUILD_AS_DLL" "SYSLIBS=" "SYSLDFLAGS=-s" lua.exe
|
||||||
|
$(MAKE) "LUAC_T=luac.exe" luac.exe
|
||||||
|
|
||||||
|
posix:
|
||||||
|
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX"
|
||||||
|
|
||||||
|
solaris:
|
||||||
|
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN -D_REENTRANT" SYSLIBS="-ldl"
|
||||||
|
|
||||||
|
# list targets that do not create files (but not all makes understand .PHONY)
|
||||||
|
.PHONY: all $(PLATS) default o a clean depend echo none
|
||||||
|
|
||||||
|
# DO NOT DELETE
|
||||||
|
|
||||||
|
lapi.o: lapi.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \
|
||||||
|
lobject.h ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h lstring.h \
|
||||||
|
ltable.h lundump.h lvm.h
|
||||||
|
lauxlib.o: lauxlib.c lprefix.h lua.h luaconf.h lauxlib.h
|
||||||
|
lbaselib.o: lbaselib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
|
||||||
|
lbitlib.o: lbitlib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
|
||||||
|
lcode.o: lcode.c lprefix.h lua.h luaconf.h lcode.h llex.h lobject.h \
|
||||||
|
llimits.h lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h \
|
||||||
|
ldo.h lgc.h lstring.h ltable.h lvm.h
|
||||||
|
lcorolib.o: lcorolib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
|
||||||
|
lctype.o: lctype.c lprefix.h lctype.h lua.h luaconf.h llimits.h
|
||||||
|
ldblib.o: ldblib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
|
||||||
|
ldebug.o: ldebug.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \
|
||||||
|
lobject.h ltm.h lzio.h lmem.h lcode.h llex.h lopcodes.h lparser.h \
|
||||||
|
ldebug.h ldo.h lfunc.h lstring.h lgc.h ltable.h lvm.h
|
||||||
|
ldo.o: ldo.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \
|
||||||
|
lobject.h ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h lopcodes.h \
|
||||||
|
lparser.h lstring.h ltable.h lundump.h lvm.h
|
||||||
|
ldump.o: ldump.c lprefix.h lua.h luaconf.h lobject.h llimits.h lstate.h \
|
||||||
|
ltm.h lzio.h lmem.h lundump.h
|
||||||
|
lfunc.o: lfunc.c lprefix.h lua.h luaconf.h lfunc.h lobject.h llimits.h \
|
||||||
|
lgc.h lstate.h ltm.h lzio.h lmem.h
|
||||||
|
lgc.o: lgc.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \
|
||||||
|
llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h lstring.h ltable.h
|
||||||
|
linit.o: linit.c lprefix.h lua.h luaconf.h lualib.h lauxlib.h
|
||||||
|
liolib.o: liolib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
|
||||||
|
llex.o: llex.c lprefix.h lua.h luaconf.h lctype.h llimits.h ldebug.h \
|
||||||
|
lstate.h lobject.h ltm.h lzio.h lmem.h ldo.h lgc.h llex.h lparser.h \
|
||||||
|
lstring.h ltable.h
|
||||||
|
lmathlib.o: lmathlib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
|
||||||
|
lmem.o: lmem.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \
|
||||||
|
llimits.h ltm.h lzio.h lmem.h ldo.h lgc.h
|
||||||
|
loadlib.o: loadlib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
|
||||||
|
lobject.o: lobject.c lprefix.h lua.h luaconf.h lctype.h llimits.h \
|
||||||
|
ldebug.h lstate.h lobject.h ltm.h lzio.h lmem.h ldo.h lstring.h lgc.h \
|
||||||
|
lvm.h
|
||||||
|
lopcodes.o: lopcodes.c lprefix.h lopcodes.h llimits.h lua.h luaconf.h
|
||||||
|
loslib.o: loslib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
|
||||||
|
lparser.o: lparser.c lprefix.h lua.h luaconf.h lcode.h llex.h lobject.h \
|
||||||
|
llimits.h lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h \
|
||||||
|
ldo.h lfunc.h lstring.h lgc.h ltable.h
|
||||||
|
lstate.o: lstate.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \
|
||||||
|
lobject.h ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h llex.h \
|
||||||
|
lstring.h ltable.h
|
||||||
|
lstring.o: lstring.c lprefix.h lua.h luaconf.h ldebug.h lstate.h \
|
||||||
|
lobject.h llimits.h ltm.h lzio.h lmem.h ldo.h lstring.h lgc.h
|
||||||
|
lstrlib.o: lstrlib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
|
||||||
|
ltable.o: ltable.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \
|
||||||
|
llimits.h ltm.h lzio.h lmem.h ldo.h lgc.h lstring.h ltable.h lvm.h
|
||||||
|
ltablib.o: ltablib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
|
||||||
|
ltm.o: ltm.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \
|
||||||
|
llimits.h ltm.h lzio.h lmem.h ldo.h lstring.h lgc.h ltable.h lvm.h
|
||||||
|
lua.o: lua.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
|
||||||
|
luac.o: luac.c lprefix.h lua.h luaconf.h lauxlib.h lobject.h llimits.h \
|
||||||
|
lstate.h ltm.h lzio.h lmem.h lundump.h ldebug.h lopcodes.h
|
||||||
|
lundump.o: lundump.c lprefix.h lua.h luaconf.h ldebug.h lstate.h \
|
||||||
|
lobject.h llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lstring.h lgc.h \
|
||||||
|
lundump.h
|
||||||
|
lutf8lib.o: lutf8lib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
|
||||||
|
lvm.o: lvm.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \
|
||||||
|
llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h lopcodes.h lstring.h \
|
||||||
|
ltable.h lvm.h
|
||||||
|
lzio.o: lzio.c lprefix.h lua.h luaconf.h llimits.h lmem.h lstate.h \
|
||||||
|
lobject.h ltm.h lzio.h
|
||||||
|
|
||||||
|
# (end of Makefile)
|
1299
singe/thirdparty/lua/src/lapi.c
vendored
Normal file
1299
singe/thirdparty/lua/src/lapi.c
vendored
Normal file
File diff suppressed because it is too large
Load diff
24
singe/thirdparty/lua/src/lapi.h
vendored
Normal file
24
singe/thirdparty/lua/src/lapi.h
vendored
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
/*
|
||||||
|
** $Id: lapi.h,v 2.9.1.1 2017/04/19 17:20:42 roberto Exp $
|
||||||
|
** Auxiliary functions from Lua API
|
||||||
|
** See Copyright Notice in lua.h
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef lapi_h
|
||||||
|
#define lapi_h
|
||||||
|
|
||||||
|
|
||||||
|
#include "llimits.h"
|
||||||
|
#include "lstate.h"
|
||||||
|
|
||||||
|
#define api_incr_top(L) {L->top++; api_check(L, L->top <= L->ci->top, \
|
||||||
|
"stack overflow");}
|
||||||
|
|
||||||
|
#define adjustresults(L,nres) \
|
||||||
|
{ if ((nres) == LUA_MULTRET && L->ci->top < L->top) L->ci->top = L->top; }
|
||||||
|
|
||||||
|
#define api_checknelems(L,n) api_check(L, (n) < (L->top - L->ci->func), \
|
||||||
|
"not enough elements in the stack")
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
1043
singe/thirdparty/lua/src/lauxlib.c
vendored
Normal file
1043
singe/thirdparty/lua/src/lauxlib.c
vendored
Normal file
File diff suppressed because it is too large
Load diff
264
singe/thirdparty/lua/src/lauxlib.h
vendored
Normal file
264
singe/thirdparty/lua/src/lauxlib.h
vendored
Normal file
|
@ -0,0 +1,264 @@
|
||||||
|
/*
|
||||||
|
** $Id: lauxlib.h,v 1.131.1.1 2017/04/19 17:20:42 roberto Exp $
|
||||||
|
** Auxiliary functions for building Lua libraries
|
||||||
|
** See Copyright Notice in lua.h
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef lauxlib_h
|
||||||
|
#define lauxlib_h
|
||||||
|
|
||||||
|
|
||||||
|
#include <stddef.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include "lua.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* extra error code for 'luaL_loadfilex' */
|
||||||
|
#define LUA_ERRFILE (LUA_ERRERR+1)
|
||||||
|
|
||||||
|
|
||||||
|
/* key, in the registry, for table of loaded modules */
|
||||||
|
#define LUA_LOADED_TABLE "_LOADED"
|
||||||
|
|
||||||
|
|
||||||
|
/* key, in the registry, for table of preloaded loaders */
|
||||||
|
#define LUA_PRELOAD_TABLE "_PRELOAD"
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct luaL_Reg {
|
||||||
|
const char *name;
|
||||||
|
lua_CFunction func;
|
||||||
|
} luaL_Reg;
|
||||||
|
|
||||||
|
|
||||||
|
#define LUAL_NUMSIZES (sizeof(lua_Integer)*16 + sizeof(lua_Number))
|
||||||
|
|
||||||
|
LUALIB_API void (luaL_checkversion_) (lua_State *L, lua_Number ver, size_t sz);
|
||||||
|
#define luaL_checkversion(L) \
|
||||||
|
luaL_checkversion_(L, LUA_VERSION_NUM, LUAL_NUMSIZES)
|
||||||
|
|
||||||
|
LUALIB_API int (luaL_getmetafield) (lua_State *L, int obj, const char *e);
|
||||||
|
LUALIB_API int (luaL_callmeta) (lua_State *L, int obj, const char *e);
|
||||||
|
LUALIB_API const char *(luaL_tolstring) (lua_State *L, int idx, size_t *len);
|
||||||
|
LUALIB_API int (luaL_argerror) (lua_State *L, int arg, const char *extramsg);
|
||||||
|
LUALIB_API const char *(luaL_checklstring) (lua_State *L, int arg,
|
||||||
|
size_t *l);
|
||||||
|
LUALIB_API const char *(luaL_optlstring) (lua_State *L, int arg,
|
||||||
|
const char *def, size_t *l);
|
||||||
|
LUALIB_API lua_Number (luaL_checknumber) (lua_State *L, int arg);
|
||||||
|
LUALIB_API lua_Number (luaL_optnumber) (lua_State *L, int arg, lua_Number def);
|
||||||
|
|
||||||
|
LUALIB_API lua_Integer (luaL_checkinteger) (lua_State *L, int arg);
|
||||||
|
LUALIB_API lua_Integer (luaL_optinteger) (lua_State *L, int arg,
|
||||||
|
lua_Integer def);
|
||||||
|
|
||||||
|
LUALIB_API void (luaL_checkstack) (lua_State *L, int sz, const char *msg);
|
||||||
|
LUALIB_API void (luaL_checktype) (lua_State *L, int arg, int t);
|
||||||
|
LUALIB_API void (luaL_checkany) (lua_State *L, int arg);
|
||||||
|
|
||||||
|
LUALIB_API int (luaL_newmetatable) (lua_State *L, const char *tname);
|
||||||
|
LUALIB_API void (luaL_setmetatable) (lua_State *L, const char *tname);
|
||||||
|
LUALIB_API void *(luaL_testudata) (lua_State *L, int ud, const char *tname);
|
||||||
|
LUALIB_API void *(luaL_checkudata) (lua_State *L, int ud, const char *tname);
|
||||||
|
|
||||||
|
LUALIB_API void (luaL_where) (lua_State *L, int lvl);
|
||||||
|
LUALIB_API int (luaL_error) (lua_State *L, const char *fmt, ...);
|
||||||
|
|
||||||
|
LUALIB_API int (luaL_checkoption) (lua_State *L, int arg, const char *def,
|
||||||
|
const char *const lst[]);
|
||||||
|
|
||||||
|
LUALIB_API int (luaL_fileresult) (lua_State *L, int stat, const char *fname);
|
||||||
|
LUALIB_API int (luaL_execresult) (lua_State *L, int stat);
|
||||||
|
|
||||||
|
/* predefined references */
|
||||||
|
#define LUA_NOREF (-2)
|
||||||
|
#define LUA_REFNIL (-1)
|
||||||
|
|
||||||
|
LUALIB_API int (luaL_ref) (lua_State *L, int t);
|
||||||
|
LUALIB_API void (luaL_unref) (lua_State *L, int t, int ref);
|
||||||
|
|
||||||
|
LUALIB_API int (luaL_loadfilex) (lua_State *L, const char *filename,
|
||||||
|
const char *mode);
|
||||||
|
|
||||||
|
#define luaL_loadfile(L,f) luaL_loadfilex(L,f,NULL)
|
||||||
|
|
||||||
|
LUALIB_API int (luaL_loadbufferx) (lua_State *L, const char *buff, size_t sz,
|
||||||
|
const char *name, const char *mode);
|
||||||
|
LUALIB_API int (luaL_loadstring) (lua_State *L, const char *s);
|
||||||
|
|
||||||
|
LUALIB_API lua_State *(luaL_newstate) (void);
|
||||||
|
|
||||||
|
LUALIB_API lua_Integer (luaL_len) (lua_State *L, int idx);
|
||||||
|
|
||||||
|
LUALIB_API const char *(luaL_gsub) (lua_State *L, const char *s, const char *p,
|
||||||
|
const char *r);
|
||||||
|
|
||||||
|
LUALIB_API void (luaL_setfuncs) (lua_State *L, const luaL_Reg *l, int nup);
|
||||||
|
|
||||||
|
LUALIB_API int (luaL_getsubtable) (lua_State *L, int idx, const char *fname);
|
||||||
|
|
||||||
|
LUALIB_API void (luaL_traceback) (lua_State *L, lua_State *L1,
|
||||||
|
const char *msg, int level);
|
||||||
|
|
||||||
|
LUALIB_API void (luaL_requiref) (lua_State *L, const char *modname,
|
||||||
|
lua_CFunction openf, int glb);
|
||||||
|
|
||||||
|
/*
|
||||||
|
** ===============================================================
|
||||||
|
** some useful macros
|
||||||
|
** ===============================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#define luaL_newlibtable(L,l) \
|
||||||
|
lua_createtable(L, 0, sizeof(l)/sizeof((l)[0]) - 1)
|
||||||
|
|
||||||
|
#define luaL_newlib(L,l) \
|
||||||
|
(luaL_checkversion(L), luaL_newlibtable(L,l), luaL_setfuncs(L,l,0))
|
||||||
|
|
||||||
|
#define luaL_argcheck(L, cond,arg,extramsg) \
|
||||||
|
((void)((cond) || luaL_argerror(L, (arg), (extramsg))))
|
||||||
|
#define luaL_checkstring(L,n) (luaL_checklstring(L, (n), NULL))
|
||||||
|
#define luaL_optstring(L,n,d) (luaL_optlstring(L, (n), (d), NULL))
|
||||||
|
|
||||||
|
#define luaL_typename(L,i) lua_typename(L, lua_type(L,(i)))
|
||||||
|
|
||||||
|
#define luaL_dofile(L, fn) \
|
||||||
|
(luaL_loadfile(L, fn) || lua_pcall(L, 0, LUA_MULTRET, 0))
|
||||||
|
|
||||||
|
#define luaL_dostring(L, s) \
|
||||||
|
(luaL_loadstring(L, s) || lua_pcall(L, 0, LUA_MULTRET, 0))
|
||||||
|
|
||||||
|
#define luaL_getmetatable(L,n) (lua_getfield(L, LUA_REGISTRYINDEX, (n)))
|
||||||
|
|
||||||
|
#define luaL_opt(L,f,n,d) (lua_isnoneornil(L,(n)) ? (d) : f(L,(n)))
|
||||||
|
|
||||||
|
#define luaL_loadbuffer(L,s,sz,n) luaL_loadbufferx(L,s,sz,n,NULL)
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
** {======================================================
|
||||||
|
** Generic Buffer manipulation
|
||||||
|
** =======================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef struct luaL_Buffer {
|
||||||
|
char *b; /* buffer address */
|
||||||
|
size_t size; /* buffer size */
|
||||||
|
size_t n; /* number of characters in buffer */
|
||||||
|
lua_State *L;
|
||||||
|
char initb[LUAL_BUFFERSIZE]; /* initial buffer */
|
||||||
|
} luaL_Buffer;
|
||||||
|
|
||||||
|
|
||||||
|
#define luaL_addchar(B,c) \
|
||||||
|
((void)((B)->n < (B)->size || luaL_prepbuffsize((B), 1)), \
|
||||||
|
((B)->b[(B)->n++] = (c)))
|
||||||
|
|
||||||
|
#define luaL_addsize(B,s) ((B)->n += (s))
|
||||||
|
|
||||||
|
LUALIB_API void (luaL_buffinit) (lua_State *L, luaL_Buffer *B);
|
||||||
|
LUALIB_API char *(luaL_prepbuffsize) (luaL_Buffer *B, size_t sz);
|
||||||
|
LUALIB_API void (luaL_addlstring) (luaL_Buffer *B, const char *s, size_t l);
|
||||||
|
LUALIB_API void (luaL_addstring) (luaL_Buffer *B, const char *s);
|
||||||
|
LUALIB_API void (luaL_addvalue) (luaL_Buffer *B);
|
||||||
|
LUALIB_API void (luaL_pushresult) (luaL_Buffer *B);
|
||||||
|
LUALIB_API void (luaL_pushresultsize) (luaL_Buffer *B, size_t sz);
|
||||||
|
LUALIB_API char *(luaL_buffinitsize) (lua_State *L, luaL_Buffer *B, size_t sz);
|
||||||
|
|
||||||
|
#define luaL_prepbuffer(B) luaL_prepbuffsize(B, LUAL_BUFFERSIZE)
|
||||||
|
|
||||||
|
/* }====================================================== */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
** {======================================================
|
||||||
|
** File handles for IO library
|
||||||
|
** =======================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
** A file handle is a userdata with metatable 'LUA_FILEHANDLE' and
|
||||||
|
** initial structure 'luaL_Stream' (it may contain other fields
|
||||||
|
** after that initial structure).
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define LUA_FILEHANDLE "FILE*"
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct luaL_Stream {
|
||||||
|
FILE *f; /* stream (NULL for incompletely created streams) */
|
||||||
|
lua_CFunction closef; /* to close stream (NULL for closed streams) */
|
||||||
|
} luaL_Stream;
|
||||||
|
|
||||||
|
/* }====================================================== */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* compatibility with old module system */
|
||||||
|
#if defined(LUA_COMPAT_MODULE)
|
||||||
|
|
||||||
|
LUALIB_API void (luaL_pushmodule) (lua_State *L, const char *modname,
|
||||||
|
int sizehint);
|
||||||
|
LUALIB_API void (luaL_openlib) (lua_State *L, const char *libname,
|
||||||
|
const luaL_Reg *l, int nup);
|
||||||
|
|
||||||
|
#define luaL_register(L,n,l) (luaL_openlib(L,(n),(l),0))
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
** {==================================================================
|
||||||
|
** "Abstraction Layer" for basic report of messages and errors
|
||||||
|
** ===================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* print a string */
|
||||||
|
#if !defined(lua_writestring)
|
||||||
|
#define lua_writestring(s,l) fwrite((s), sizeof(char), (l), stdout)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* print a newline and flush the output */
|
||||||
|
#if !defined(lua_writeline)
|
||||||
|
#define lua_writeline() (lua_writestring("\n", 1), fflush(stdout))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* print an error message */
|
||||||
|
#if !defined(lua_writestringerror)
|
||||||
|
#define lua_writestringerror(s,p) \
|
||||||
|
(fprintf(stderr, (s), (p)), fflush(stderr))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* }================================================================== */
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
** {============================================================
|
||||||
|
** Compatibility with deprecated conversions
|
||||||
|
** =============================================================
|
||||||
|
*/
|
||||||
|
#if defined(LUA_COMPAT_APIINTCASTS)
|
||||||
|
|
||||||
|
#define luaL_checkunsigned(L,a) ((lua_Unsigned)luaL_checkinteger(L,a))
|
||||||
|
#define luaL_optunsigned(L,a,d) \
|
||||||
|
((lua_Unsigned)luaL_optinteger(L,a,(lua_Integer)(d)))
|
||||||
|
|
||||||
|
#define luaL_checkint(L,n) ((int)luaL_checkinteger(L, (n)))
|
||||||
|
#define luaL_optint(L,n,d) ((int)luaL_optinteger(L, (n), (d)))
|
||||||
|
|
||||||
|
#define luaL_checklong(L,n) ((long)luaL_checkinteger(L, (n)))
|
||||||
|
#define luaL_optlong(L,n,d) ((long)luaL_optinteger(L, (n), (d)))
|
||||||
|
|
||||||
|
#endif
|
||||||
|
/* }============================================================ */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
498
singe/thirdparty/lua/src/lbaselib.c
vendored
Normal file
498
singe/thirdparty/lua/src/lbaselib.c
vendored
Normal file
|
@ -0,0 +1,498 @@
|
||||||
|
/*
|
||||||
|
** $Id: lbaselib.c,v 1.314.1.1 2017/04/19 17:39:34 roberto Exp $
|
||||||
|
** Basic library
|
||||||
|
** See Copyright Notice in lua.h
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define lbaselib_c
|
||||||
|
#define LUA_LIB
|
||||||
|
|
||||||
|
#include "lprefix.h"
|
||||||
|
|
||||||
|
|
||||||
|
#include <ctype.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "lua.h"
|
||||||
|
|
||||||
|
#include "lauxlib.h"
|
||||||
|
#include "lualib.h"
|
||||||
|
|
||||||
|
|
||||||
|
static int luaB_print (lua_State *L) {
|
||||||
|
int n = lua_gettop(L); /* number of arguments */
|
||||||
|
int i;
|
||||||
|
lua_getglobal(L, "tostring");
|
||||||
|
for (i=1; i<=n; i++) {
|
||||||
|
const char *s;
|
||||||
|
size_t l;
|
||||||
|
lua_pushvalue(L, -1); /* function to be called */
|
||||||
|
lua_pushvalue(L, i); /* value to print */
|
||||||
|
lua_call(L, 1, 1);
|
||||||
|
s = lua_tolstring(L, -1, &l); /* get result */
|
||||||
|
if (s == NULL)
|
||||||
|
return luaL_error(L, "'tostring' must return a string to 'print'");
|
||||||
|
if (i>1) lua_writestring("\t", 1);
|
||||||
|
lua_writestring(s, l);
|
||||||
|
lua_pop(L, 1); /* pop result */
|
||||||
|
}
|
||||||
|
lua_writeline();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#define SPACECHARS " \f\n\r\t\v"
|
||||||
|
|
||||||
|
static const char *b_str2int (const char *s, int base, lua_Integer *pn) {
|
||||||
|
lua_Unsigned n = 0;
|
||||||
|
int neg = 0;
|
||||||
|
s += strspn(s, SPACECHARS); /* skip initial spaces */
|
||||||
|
if (*s == '-') { s++; neg = 1; } /* handle signal */
|
||||||
|
else if (*s == '+') s++;
|
||||||
|
if (!isalnum((unsigned char)*s)) /* no digit? */
|
||||||
|
return NULL;
|
||||||
|
do {
|
||||||
|
int digit = (isdigit((unsigned char)*s)) ? *s - '0'
|
||||||
|
: (toupper((unsigned char)*s) - 'A') + 10;
|
||||||
|
if (digit >= base) return NULL; /* invalid numeral */
|
||||||
|
n = n * base + digit;
|
||||||
|
s++;
|
||||||
|
} while (isalnum((unsigned char)*s));
|
||||||
|
s += strspn(s, SPACECHARS); /* skip trailing spaces */
|
||||||
|
*pn = (lua_Integer)((neg) ? (0u - n) : n);
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int luaB_tonumber (lua_State *L) {
|
||||||
|
if (lua_isnoneornil(L, 2)) { /* standard conversion? */
|
||||||
|
luaL_checkany(L, 1);
|
||||||
|
if (lua_type(L, 1) == LUA_TNUMBER) { /* already a number? */
|
||||||
|
lua_settop(L, 1); /* yes; return it */
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
size_t l;
|
||||||
|
const char *s = lua_tolstring(L, 1, &l);
|
||||||
|
if (s != NULL && lua_stringtonumber(L, s) == l + 1)
|
||||||
|
return 1; /* successful conversion to number */
|
||||||
|
/* else not a number */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
size_t l;
|
||||||
|
const char *s;
|
||||||
|
lua_Integer n = 0; /* to avoid warnings */
|
||||||
|
lua_Integer base = luaL_checkinteger(L, 2);
|
||||||
|
luaL_checktype(L, 1, LUA_TSTRING); /* no numbers as strings */
|
||||||
|
s = lua_tolstring(L, 1, &l);
|
||||||
|
luaL_argcheck(L, 2 <= base && base <= 36, 2, "base out of range");
|
||||||
|
if (b_str2int(s, (int)base, &n) == s + l) {
|
||||||
|
lua_pushinteger(L, n);
|
||||||
|
return 1;
|
||||||
|
} /* else not a number */
|
||||||
|
} /* else not a number */
|
||||||
|
lua_pushnil(L); /* not a number */
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int luaB_error (lua_State *L) {
|
||||||
|
int level = (int)luaL_optinteger(L, 2, 1);
|
||||||
|
lua_settop(L, 1);
|
||||||
|
if (lua_type(L, 1) == LUA_TSTRING && level > 0) {
|
||||||
|
luaL_where(L, level); /* add extra information */
|
||||||
|
lua_pushvalue(L, 1);
|
||||||
|
lua_concat(L, 2);
|
||||||
|
}
|
||||||
|
return lua_error(L);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int luaB_getmetatable (lua_State *L) {
|
||||||
|
luaL_checkany(L, 1);
|
||||||
|
if (!lua_getmetatable(L, 1)) {
|
||||||
|
lua_pushnil(L);
|
||||||
|
return 1; /* no metatable */
|
||||||
|
}
|
||||||
|
luaL_getmetafield(L, 1, "__metatable");
|
||||||
|
return 1; /* returns either __metatable field (if present) or metatable */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int luaB_setmetatable (lua_State *L) {
|
||||||
|
int t = lua_type(L, 2);
|
||||||
|
luaL_checktype(L, 1, LUA_TTABLE);
|
||||||
|
luaL_argcheck(L, t == LUA_TNIL || t == LUA_TTABLE, 2,
|
||||||
|
"nil or table expected");
|
||||||
|
if (luaL_getmetafield(L, 1, "__metatable") != LUA_TNIL)
|
||||||
|
return luaL_error(L, "cannot change a protected metatable");
|
||||||
|
lua_settop(L, 2);
|
||||||
|
lua_setmetatable(L, 1);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int luaB_rawequal (lua_State *L) {
|
||||||
|
luaL_checkany(L, 1);
|
||||||
|
luaL_checkany(L, 2);
|
||||||
|
lua_pushboolean(L, lua_rawequal(L, 1, 2));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int luaB_rawlen (lua_State *L) {
|
||||||
|
int t = lua_type(L, 1);
|
||||||
|
luaL_argcheck(L, t == LUA_TTABLE || t == LUA_TSTRING, 1,
|
||||||
|
"table or string expected");
|
||||||
|
lua_pushinteger(L, lua_rawlen(L, 1));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int luaB_rawget (lua_State *L) {
|
||||||
|
luaL_checktype(L, 1, LUA_TTABLE);
|
||||||
|
luaL_checkany(L, 2);
|
||||||
|
lua_settop(L, 2);
|
||||||
|
lua_rawget(L, 1);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int luaB_rawset (lua_State *L) {
|
||||||
|
luaL_checktype(L, 1, LUA_TTABLE);
|
||||||
|
luaL_checkany(L, 2);
|
||||||
|
luaL_checkany(L, 3);
|
||||||
|
lua_settop(L, 3);
|
||||||
|
lua_rawset(L, 1);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int luaB_collectgarbage (lua_State *L) {
|
||||||
|
static const char *const opts[] = {"stop", "restart", "collect",
|
||||||
|
"count", "step", "setpause", "setstepmul",
|
||||||
|
"isrunning", NULL};
|
||||||
|
static const int optsnum[] = {LUA_GCSTOP, LUA_GCRESTART, LUA_GCCOLLECT,
|
||||||
|
LUA_GCCOUNT, LUA_GCSTEP, LUA_GCSETPAUSE, LUA_GCSETSTEPMUL,
|
||||||
|
LUA_GCISRUNNING};
|
||||||
|
int o = optsnum[luaL_checkoption(L, 1, "collect", opts)];
|
||||||
|
int ex = (int)luaL_optinteger(L, 2, 0);
|
||||||
|
int res = lua_gc(L, o, ex);
|
||||||
|
switch (o) {
|
||||||
|
case LUA_GCCOUNT: {
|
||||||
|
int b = lua_gc(L, LUA_GCCOUNTB, 0);
|
||||||
|
lua_pushnumber(L, (lua_Number)res + ((lua_Number)b/1024));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
case LUA_GCSTEP: case LUA_GCISRUNNING: {
|
||||||
|
lua_pushboolean(L, res);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
lua_pushinteger(L, res);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int luaB_type (lua_State *L) {
|
||||||
|
int t = lua_type(L, 1);
|
||||||
|
luaL_argcheck(L, t != LUA_TNONE, 1, "value expected");
|
||||||
|
lua_pushstring(L, lua_typename(L, t));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int pairsmeta (lua_State *L, const char *method, int iszero,
|
||||||
|
lua_CFunction iter) {
|
||||||
|
luaL_checkany(L, 1);
|
||||||
|
if (luaL_getmetafield(L, 1, method) == LUA_TNIL) { /* no metamethod? */
|
||||||
|
lua_pushcfunction(L, iter); /* will return generator, */
|
||||||
|
lua_pushvalue(L, 1); /* state, */
|
||||||
|
if (iszero) lua_pushinteger(L, 0); /* and initial value */
|
||||||
|
else lua_pushnil(L);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
lua_pushvalue(L, 1); /* argument 'self' to metamethod */
|
||||||
|
lua_call(L, 1, 3); /* get 3 values from metamethod */
|
||||||
|
}
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int luaB_next (lua_State *L) {
|
||||||
|
luaL_checktype(L, 1, LUA_TTABLE);
|
||||||
|
lua_settop(L, 2); /* create a 2nd argument if there isn't one */
|
||||||
|
if (lua_next(L, 1))
|
||||||
|
return 2;
|
||||||
|
else {
|
||||||
|
lua_pushnil(L);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int luaB_pairs (lua_State *L) {
|
||||||
|
return pairsmeta(L, "__pairs", 0, luaB_next);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Traversal function for 'ipairs'
|
||||||
|
*/
|
||||||
|
static int ipairsaux (lua_State *L) {
|
||||||
|
lua_Integer i = luaL_checkinteger(L, 2) + 1;
|
||||||
|
lua_pushinteger(L, i);
|
||||||
|
return (lua_geti(L, 1, i) == LUA_TNIL) ? 1 : 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
** 'ipairs' function. Returns 'ipairsaux', given "table", 0.
|
||||||
|
** (The given "table" may not be a table.)
|
||||||
|
*/
|
||||||
|
static int luaB_ipairs (lua_State *L) {
|
||||||
|
#if defined(LUA_COMPAT_IPAIRS)
|
||||||
|
return pairsmeta(L, "__ipairs", 1, ipairsaux);
|
||||||
|
#else
|
||||||
|
luaL_checkany(L, 1);
|
||||||
|
lua_pushcfunction(L, ipairsaux); /* iteration function */
|
||||||
|
lua_pushvalue(L, 1); /* state */
|
||||||
|
lua_pushinteger(L, 0); /* initial value */
|
||||||
|
return 3;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int load_aux (lua_State *L, int status, int envidx) {
|
||||||
|
if (status == LUA_OK) {
|
||||||
|
if (envidx != 0) { /* 'env' parameter? */
|
||||||
|
lua_pushvalue(L, envidx); /* environment for loaded function */
|
||||||
|
if (!lua_setupvalue(L, -2, 1)) /* set it as 1st upvalue */
|
||||||
|
lua_pop(L, 1); /* remove 'env' if not used by previous call */
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else { /* error (message is on top of the stack) */
|
||||||
|
lua_pushnil(L);
|
||||||
|
lua_insert(L, -2); /* put before error message */
|
||||||
|
return 2; /* return nil plus error message */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int luaB_loadfile (lua_State *L) {
|
||||||
|
const char *fname = luaL_optstring(L, 1, NULL);
|
||||||
|
const char *mode = luaL_optstring(L, 2, NULL);
|
||||||
|
int env = (!lua_isnone(L, 3) ? 3 : 0); /* 'env' index or 0 if no 'env' */
|
||||||
|
int status = luaL_loadfilex(L, fname, mode);
|
||||||
|
return load_aux(L, status, env);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
** {======================================================
|
||||||
|
** Generic Read function
|
||||||
|
** =======================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
** reserved slot, above all arguments, to hold a copy of the returned
|
||||||
|
** string to avoid it being collected while parsed. 'load' has four
|
||||||
|
** optional arguments (chunk, source name, mode, and environment).
|
||||||
|
*/
|
||||||
|
#define RESERVEDSLOT 5
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Reader for generic 'load' function: 'lua_load' uses the
|
||||||
|
** stack for internal stuff, so the reader cannot change the
|
||||||
|
** stack top. Instead, it keeps its resulting string in a
|
||||||
|
** reserved slot inside the stack.
|
||||||
|
*/
|
||||||
|
static const char *generic_reader (lua_State *L, void *ud, size_t *size) {
|
||||||
|
(void)(ud); /* not used */
|
||||||
|
luaL_checkstack(L, 2, "too many nested functions");
|
||||||
|
lua_pushvalue(L, 1); /* get function */
|
||||||
|
lua_call(L, 0, 1); /* call it */
|
||||||
|
if (lua_isnil(L, -1)) {
|
||||||
|
lua_pop(L, 1); /* pop result */
|
||||||
|
*size = 0;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
else if (!lua_isstring(L, -1))
|
||||||
|
luaL_error(L, "reader function must return a string");
|
||||||
|
lua_replace(L, RESERVEDSLOT); /* save string in reserved slot */
|
||||||
|
return lua_tolstring(L, RESERVEDSLOT, size);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int luaB_load (lua_State *L) {
|
||||||
|
int status;
|
||||||
|
size_t l;
|
||||||
|
const char *s = lua_tolstring(L, 1, &l);
|
||||||
|
const char *mode = luaL_optstring(L, 3, "bt");
|
||||||
|
int env = (!lua_isnone(L, 4) ? 4 : 0); /* 'env' index or 0 if no 'env' */
|
||||||
|
if (s != NULL) { /* loading a string? */
|
||||||
|
const char *chunkname = luaL_optstring(L, 2, s);
|
||||||
|
status = luaL_loadbufferx(L, s, l, chunkname, mode);
|
||||||
|
}
|
||||||
|
else { /* loading from a reader function */
|
||||||
|
const char *chunkname = luaL_optstring(L, 2, "=(load)");
|
||||||
|
luaL_checktype(L, 1, LUA_TFUNCTION);
|
||||||
|
lua_settop(L, RESERVEDSLOT); /* create reserved slot */
|
||||||
|
status = lua_load(L, generic_reader, NULL, chunkname, mode);
|
||||||
|
}
|
||||||
|
return load_aux(L, status, env);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* }====================================================== */
|
||||||
|
|
||||||
|
|
||||||
|
static int dofilecont (lua_State *L, int d1, lua_KContext d2) {
|
||||||
|
(void)d1; (void)d2; /* only to match 'lua_Kfunction' prototype */
|
||||||
|
return lua_gettop(L) - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int luaB_dofile (lua_State *L) {
|
||||||
|
const char *fname = luaL_optstring(L, 1, NULL);
|
||||||
|
lua_settop(L, 1);
|
||||||
|
if (luaL_loadfile(L, fname) != LUA_OK)
|
||||||
|
return lua_error(L);
|
||||||
|
lua_callk(L, 0, LUA_MULTRET, 0, dofilecont);
|
||||||
|
return dofilecont(L, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int luaB_assert (lua_State *L) {
|
||||||
|
if (lua_toboolean(L, 1)) /* condition is true? */
|
||||||
|
return lua_gettop(L); /* return all arguments */
|
||||||
|
else { /* error */
|
||||||
|
luaL_checkany(L, 1); /* there must be a condition */
|
||||||
|
lua_remove(L, 1); /* remove it */
|
||||||
|
lua_pushliteral(L, "assertion failed!"); /* default message */
|
||||||
|
lua_settop(L, 1); /* leave only message (default if no other one) */
|
||||||
|
return luaB_error(L); /* call 'error' */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int luaB_select (lua_State *L) {
|
||||||
|
int n = lua_gettop(L);
|
||||||
|
if (lua_type(L, 1) == LUA_TSTRING && *lua_tostring(L, 1) == '#') {
|
||||||
|
lua_pushinteger(L, n-1);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
lua_Integer i = luaL_checkinteger(L, 1);
|
||||||
|
if (i < 0) i = n + i;
|
||||||
|
else if (i > n) i = n;
|
||||||
|
luaL_argcheck(L, 1 <= i, 1, "index out of range");
|
||||||
|
return n - (int)i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Continuation function for 'pcall' and 'xpcall'. Both functions
|
||||||
|
** already pushed a 'true' before doing the call, so in case of success
|
||||||
|
** 'finishpcall' only has to return everything in the stack minus
|
||||||
|
** 'extra' values (where 'extra' is exactly the number of items to be
|
||||||
|
** ignored).
|
||||||
|
*/
|
||||||
|
static int finishpcall (lua_State *L, int status, lua_KContext extra) {
|
||||||
|
if (status != LUA_OK && status != LUA_YIELD) { /* error? */
|
||||||
|
lua_pushboolean(L, 0); /* first result (false) */
|
||||||
|
lua_pushvalue(L, -2); /* error message */
|
||||||
|
return 2; /* return false, msg */
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return lua_gettop(L) - (int)extra; /* return all results */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int luaB_pcall (lua_State *L) {
|
||||||
|
int status;
|
||||||
|
luaL_checkany(L, 1);
|
||||||
|
lua_pushboolean(L, 1); /* first result if no errors */
|
||||||
|
lua_insert(L, 1); /* put it in place */
|
||||||
|
status = lua_pcallk(L, lua_gettop(L) - 2, LUA_MULTRET, 0, 0, finishpcall);
|
||||||
|
return finishpcall(L, status, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Do a protected call with error handling. After 'lua_rotate', the
|
||||||
|
** stack will have <f, err, true, f, [args...]>; so, the function passes
|
||||||
|
** 2 to 'finishpcall' to skip the 2 first values when returning results.
|
||||||
|
*/
|
||||||
|
static int luaB_xpcall (lua_State *L) {
|
||||||
|
int status;
|
||||||
|
int n = lua_gettop(L);
|
||||||
|
luaL_checktype(L, 2, LUA_TFUNCTION); /* check error function */
|
||||||
|
lua_pushboolean(L, 1); /* first result */
|
||||||
|
lua_pushvalue(L, 1); /* function */
|
||||||
|
lua_rotate(L, 3, 2); /* move them below function's arguments */
|
||||||
|
status = lua_pcallk(L, n - 2, LUA_MULTRET, 2, 2, finishpcall);
|
||||||
|
return finishpcall(L, status, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int luaB_tostring (lua_State *L) {
|
||||||
|
luaL_checkany(L, 1);
|
||||||
|
luaL_tolstring(L, 1, NULL);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static const luaL_Reg base_funcs[] = {
|
||||||
|
{"assert", luaB_assert},
|
||||||
|
{"collectgarbage", luaB_collectgarbage},
|
||||||
|
{"dofile", luaB_dofile},
|
||||||
|
{"error", luaB_error},
|
||||||
|
{"getmetatable", luaB_getmetatable},
|
||||||
|
{"ipairs", luaB_ipairs},
|
||||||
|
{"loadfile", luaB_loadfile},
|
||||||
|
{"load", luaB_load},
|
||||||
|
#if defined(LUA_COMPAT_LOADSTRING)
|
||||||
|
{"loadstring", luaB_load},
|
||||||
|
#endif
|
||||||
|
{"next", luaB_next},
|
||||||
|
{"pairs", luaB_pairs},
|
||||||
|
{"pcall", luaB_pcall},
|
||||||
|
{"print", luaB_print},
|
||||||
|
{"rawequal", luaB_rawequal},
|
||||||
|
{"rawlen", luaB_rawlen},
|
||||||
|
{"rawget", luaB_rawget},
|
||||||
|
{"rawset", luaB_rawset},
|
||||||
|
{"select", luaB_select},
|
||||||
|
{"setmetatable", luaB_setmetatable},
|
||||||
|
{"tonumber", luaB_tonumber},
|
||||||
|
{"tostring", luaB_tostring},
|
||||||
|
{"type", luaB_type},
|
||||||
|
{"xpcall", luaB_xpcall},
|
||||||
|
/* placeholders */
|
||||||
|
{"_G", NULL},
|
||||||
|
{"_VERSION", NULL},
|
||||||
|
{NULL, NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
LUAMOD_API int luaopen_base (lua_State *L) {
|
||||||
|
/* open lib into global table */
|
||||||
|
lua_pushglobaltable(L);
|
||||||
|
luaL_setfuncs(L, base_funcs, 0);
|
||||||
|
/* set global _G */
|
||||||
|
lua_pushvalue(L, -1);
|
||||||
|
lua_setfield(L, -2, "_G");
|
||||||
|
/* set global _VERSION */
|
||||||
|
lua_pushliteral(L, LUA_VERSION);
|
||||||
|
lua_setfield(L, -2, "_VERSION");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
233
singe/thirdparty/lua/src/lbitlib.c
vendored
Normal file
233
singe/thirdparty/lua/src/lbitlib.c
vendored
Normal file
|
@ -0,0 +1,233 @@
|
||||||
|
/*
|
||||||
|
** $Id: lbitlib.c,v 1.30.1.1 2017/04/19 17:20:42 roberto Exp $
|
||||||
|
** Standard library for bitwise operations
|
||||||
|
** See Copyright Notice in lua.h
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define lbitlib_c
|
||||||
|
#define LUA_LIB
|
||||||
|
|
||||||
|
#include "lprefix.h"
|
||||||
|
|
||||||
|
|
||||||
|
#include "lua.h"
|
||||||
|
|
||||||
|
#include "lauxlib.h"
|
||||||
|
#include "lualib.h"
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(LUA_COMPAT_BITLIB) /* { */
|
||||||
|
|
||||||
|
|
||||||
|
#define pushunsigned(L,n) lua_pushinteger(L, (lua_Integer)(n))
|
||||||
|
#define checkunsigned(L,i) ((lua_Unsigned)luaL_checkinteger(L,i))
|
||||||
|
|
||||||
|
|
||||||
|
/* number of bits to consider in a number */
|
||||||
|
#if !defined(LUA_NBITS)
|
||||||
|
#define LUA_NBITS 32
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
** a lua_Unsigned with its first LUA_NBITS bits equal to 1. (Shift must
|
||||||
|
** be made in two parts to avoid problems when LUA_NBITS is equal to the
|
||||||
|
** number of bits in a lua_Unsigned.)
|
||||||
|
*/
|
||||||
|
#define ALLONES (~(((~(lua_Unsigned)0) << (LUA_NBITS - 1)) << 1))
|
||||||
|
|
||||||
|
|
||||||
|
/* macro to trim extra bits */
|
||||||
|
#define trim(x) ((x) & ALLONES)
|
||||||
|
|
||||||
|
|
||||||
|
/* builds a number with 'n' ones (1 <= n <= LUA_NBITS) */
|
||||||
|
#define mask(n) (~((ALLONES << 1) << ((n) - 1)))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static lua_Unsigned andaux (lua_State *L) {
|
||||||
|
int i, n = lua_gettop(L);
|
||||||
|
lua_Unsigned r = ~(lua_Unsigned)0;
|
||||||
|
for (i = 1; i <= n; i++)
|
||||||
|
r &= checkunsigned(L, i);
|
||||||
|
return trim(r);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int b_and (lua_State *L) {
|
||||||
|
lua_Unsigned r = andaux(L);
|
||||||
|
pushunsigned(L, r);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int b_test (lua_State *L) {
|
||||||
|
lua_Unsigned r = andaux(L);
|
||||||
|
lua_pushboolean(L, r != 0);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int b_or (lua_State *L) {
|
||||||
|
int i, n = lua_gettop(L);
|
||||||
|
lua_Unsigned r = 0;
|
||||||
|
for (i = 1; i <= n; i++)
|
||||||
|
r |= checkunsigned(L, i);
|
||||||
|
pushunsigned(L, trim(r));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int b_xor (lua_State *L) {
|
||||||
|
int i, n = lua_gettop(L);
|
||||||
|
lua_Unsigned r = 0;
|
||||||
|
for (i = 1; i <= n; i++)
|
||||||
|
r ^= checkunsigned(L, i);
|
||||||
|
pushunsigned(L, trim(r));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int b_not (lua_State *L) {
|
||||||
|
lua_Unsigned r = ~checkunsigned(L, 1);
|
||||||
|
pushunsigned(L, trim(r));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int b_shift (lua_State *L, lua_Unsigned r, lua_Integer i) {
|
||||||
|
if (i < 0) { /* shift right? */
|
||||||
|
i = -i;
|
||||||
|
r = trim(r);
|
||||||
|
if (i >= LUA_NBITS) r = 0;
|
||||||
|
else r >>= i;
|
||||||
|
}
|
||||||
|
else { /* shift left */
|
||||||
|
if (i >= LUA_NBITS) r = 0;
|
||||||
|
else r <<= i;
|
||||||
|
r = trim(r);
|
||||||
|
}
|
||||||
|
pushunsigned(L, r);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int b_lshift (lua_State *L) {
|
||||||
|
return b_shift(L, checkunsigned(L, 1), luaL_checkinteger(L, 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int b_rshift (lua_State *L) {
|
||||||
|
return b_shift(L, checkunsigned(L, 1), -luaL_checkinteger(L, 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int b_arshift (lua_State *L) {
|
||||||
|
lua_Unsigned r = checkunsigned(L, 1);
|
||||||
|
lua_Integer i = luaL_checkinteger(L, 2);
|
||||||
|
if (i < 0 || !(r & ((lua_Unsigned)1 << (LUA_NBITS - 1))))
|
||||||
|
return b_shift(L, r, -i);
|
||||||
|
else { /* arithmetic shift for 'negative' number */
|
||||||
|
if (i >= LUA_NBITS) r = ALLONES;
|
||||||
|
else
|
||||||
|
r = trim((r >> i) | ~(trim(~(lua_Unsigned)0) >> i)); /* add signal bit */
|
||||||
|
pushunsigned(L, r);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int b_rot (lua_State *L, lua_Integer d) {
|
||||||
|
lua_Unsigned r = checkunsigned(L, 1);
|
||||||
|
int i = d & (LUA_NBITS - 1); /* i = d % NBITS */
|
||||||
|
r = trim(r);
|
||||||
|
if (i != 0) /* avoid undefined shift of LUA_NBITS when i == 0 */
|
||||||
|
r = (r << i) | (r >> (LUA_NBITS - i));
|
||||||
|
pushunsigned(L, trim(r));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int b_lrot (lua_State *L) {
|
||||||
|
return b_rot(L, luaL_checkinteger(L, 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int b_rrot (lua_State *L) {
|
||||||
|
return b_rot(L, -luaL_checkinteger(L, 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
** get field and width arguments for field-manipulation functions,
|
||||||
|
** checking whether they are valid.
|
||||||
|
** ('luaL_error' called without 'return' to avoid later warnings about
|
||||||
|
** 'width' being used uninitialized.)
|
||||||
|
*/
|
||||||
|
static int fieldargs (lua_State *L, int farg, int *width) {
|
||||||
|
lua_Integer f = luaL_checkinteger(L, farg);
|
||||||
|
lua_Integer w = luaL_optinteger(L, farg + 1, 1);
|
||||||
|
luaL_argcheck(L, 0 <= f, farg, "field cannot be negative");
|
||||||
|
luaL_argcheck(L, 0 < w, farg + 1, "width must be positive");
|
||||||
|
if (f + w > LUA_NBITS)
|
||||||
|
luaL_error(L, "trying to access non-existent bits");
|
||||||
|
*width = (int)w;
|
||||||
|
return (int)f;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int b_extract (lua_State *L) {
|
||||||
|
int w;
|
||||||
|
lua_Unsigned r = trim(checkunsigned(L, 1));
|
||||||
|
int f = fieldargs(L, 2, &w);
|
||||||
|
r = (r >> f) & mask(w);
|
||||||
|
pushunsigned(L, r);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int b_replace (lua_State *L) {
|
||||||
|
int w;
|
||||||
|
lua_Unsigned r = trim(checkunsigned(L, 1));
|
||||||
|
lua_Unsigned v = trim(checkunsigned(L, 2));
|
||||||
|
int f = fieldargs(L, 3, &w);
|
||||||
|
lua_Unsigned m = mask(w);
|
||||||
|
r = (r & ~(m << f)) | ((v & m) << f);
|
||||||
|
pushunsigned(L, r);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static const luaL_Reg bitlib[] = {
|
||||||
|
{"arshift", b_arshift},
|
||||||
|
{"band", b_and},
|
||||||
|
{"bnot", b_not},
|
||||||
|
{"bor", b_or},
|
||||||
|
{"bxor", b_xor},
|
||||||
|
{"btest", b_test},
|
||||||
|
{"extract", b_extract},
|
||||||
|
{"lrotate", b_lrot},
|
||||||
|
{"lshift", b_lshift},
|
||||||
|
{"replace", b_replace},
|
||||||
|
{"rrotate", b_rrot},
|
||||||
|
{"rshift", b_rshift},
|
||||||
|
{NULL, NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
LUAMOD_API int luaopen_bit32 (lua_State *L) {
|
||||||
|
luaL_newlib(L, bitlib);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#else /* }{ */
|
||||||
|
|
||||||
|
|
||||||
|
LUAMOD_API int luaopen_bit32 (lua_State *L) {
|
||||||
|
return luaL_error(L, "library 'bit32' has been deprecated");
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* } */
|
1203
singe/thirdparty/lua/src/lcode.c
vendored
Normal file
1203
singe/thirdparty/lua/src/lcode.c
vendored
Normal file
File diff suppressed because it is too large
Load diff
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue