1/*
2** Lua core, libraries, and interpreter in a single file.
3** Compiling just this file generates a complete Lua stand-alone
4** program:
5**
6** $ gcc -O2 -std=c99 -o lua onelua.c -lm
7**
8** or
9**
10** $ gcc -O2 -std=c89 -DLUA_USE_C89 -o lua onelua.c -lm
11**
12*/
13
14/* default is to build the full interpreter */
15#ifndef MAKE_LIB
16#ifndef MAKE_LUAC
17#ifndef MAKE_LUA
18#define MAKE_LUA
19#endif
20#endif
21#endif
22
23
24/*
25** Choose suitable platform-specific features. Default is no
26** platform-specific features. Some of these options may need extra
27** libraries such as -ldl -lreadline -lncurses
28*/
29#if 0
30#define LUA_USE_LINUX
31#define LUA_USE_MACOSX
32#define LUA_USE_POSIX
33#define LUA_ANSI
34#endif
35
36
37/* no need to change anything below this line ----------------------------- */
38
39#include "lprefix.h"
40
41#include <assert.h>
42#include <ctype.h>
43#include <errno.h>
44#include <float.h>
45#include <limits.h>
46#include <locale.h>
47#include <math.h>
48#include <setjmp.h>
49#include <signal.h>
50#include <stdarg.h>
51#include <stddef.h>
52#include <stdio.h>
53#include <stdlib.h>
54#include <string.h>
55#include <time.h>
56
57
58/* setup for luaconf.h */
59#define LUA_CORE
60#define LUA_LIB
61#define ltable_c
62#define lvm_c
63#include "luaconf.h"
64
65/* do not export internal symbols */
66#undef LUAI_FUNC
67#undef LUAI_DDEC
68#undef LUAI_DDEF
69#define LUAI_FUNC static
70#define LUAI_DDEC(def) /* empty */
71#define LUAI_DDEF static
72
73/* core -- used by all */
74#include "lzio.c"
75#include "lctype.c"
76#include "lopcodes.c"
77#include "lmem.c"
78#include "lundump.c"
79#include "ldump.c"
80#include "lstate.c"
81#include "lgc.c"
82#include "llex.c"
83#include "lcode.c"
84#include "lparser.c"
85#include "ldebug.c"
86#include "lfunc.c"
87#include "lobject.c"
88#include "ltm.c"
89#include "lstring.c"
90#include "ltable.c"
91#include "ldo.c"
92#include "lvm.c"
93#include "lapi.c"
94
95/* auxiliary library -- used by all */
96#include "lauxlib.c"
97
98/* standard library -- not used by luac */
99#ifndef MAKE_LUAC
100#include "lbaselib.c"
101#include "lcorolib.c"
102#include "ldblib.c"
103#include "liolib.c"
104#include "lmathlib.c"
105#include "loadlib.c"
106#include "loslib.c"
107#include "lstrlib.c"
108#include "ltablib.c"
109#include "lutf8lib.c"
110#include "linit.c"
111#endif
112
113/* lua */
114#ifdef MAKE_LUA
115#include "lua.c"
116#endif
117
118/* luac */
119#ifdef MAKE_LUAC
120#include "luac.c"
121#endif