亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lua.c

?? 這個是一個嵌入式腳本支持引擎, 體積十分小巧
?? C
字號:
/*** $Id: lua.c,v 1.160.1.2 2007/12/28 15:32:23 roberto Exp $** Lua stand-alone interpreter** See Copyright Notice in lua.h*/#include <signal.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#define lua_c#include "lua.h"#include "lauxlib.h"#include "lualib.h"static lua_State *globalL = NULL;static const char *progname = LUA_PROGNAME;static void lstop (lua_State *L, lua_Debug *ar) {  (void)ar;  /* unused arg. */  lua_sethook(L, NULL, 0, 0);  luaL_error(L, "interrupted!");}static void laction (int i) {  signal(i, SIG_DFL); /* if another SIGINT happens before lstop,                              terminate process (default action) */  lua_sethook(globalL, lstop, LUA_MASKCALL | LUA_MASKRET | LUA_MASKCOUNT, 1);}static void print_usage (void) {  fprintf(stderr,  "usage: %s [options] [script [args]].\n"  "Available options are:\n"  "  -e stat  execute string " LUA_QL("stat") "\n"  "  -l name  require library " LUA_QL("name") "\n"  "  -i       enter interactive mode after executing " LUA_QL("script") "\n"  "  -v       show version information\n"  "  --       stop handling options\n"  "  -        execute stdin and stop handling options\n"  ,  progname);  fflush(stderr);}static void l_message (const char *pname, const char *msg) {  if (pname) fprintf(stderr, "%s: ", pname);  fprintf(stderr, "%s\n", msg);  fflush(stderr);}static int report (lua_State *L, int status) {  if (status && !lua_isnil(L, -1)) {    const char *msg = lua_tostring(L, -1);    if (msg == NULL) msg = "(error object is not a string)";    l_message(progname, msg);    lua_pop(L, 1);  }  return status;}static int traceback (lua_State *L) {  if (!lua_isstring(L, 1))  /* 'message' not a string? */    return 1;  /* keep it intact */  lua_getfield(L, LUA_GLOBALSINDEX, "debug");  if (!lua_istable(L, -1)) {    lua_pop(L, 1);    return 1;  }  lua_getfield(L, -1, "traceback");  if (!lua_isfunction(L, -1)) {    lua_pop(L, 2);    return 1;  }  lua_pushvalue(L, 1);  /* pass error message */  lua_pushinteger(L, 2);  /* skip this function and traceback */  lua_call(L, 2, 1);  /* call debug.traceback */  return 1;}static int docall (lua_State *L, int narg, int clear) {  int status;  int base = lua_gettop(L) - narg;  /* function index */  lua_pushcfunction(L, traceback);  /* push traceback function */  lua_insert(L, base);  /* put it under chunk and args */  signal(SIGINT, laction);  status = lua_pcall(L, narg, (clear ? 0 : LUA_MULTRET), base);  signal(SIGINT, SIG_DFL);  lua_remove(L, base);  /* remove traceback function */  /* force a complete garbage collection in case of errors */  if (status != 0) lua_gc(L, LUA_GCCOLLECT, 0);  return status;}static void print_version (void) {  l_message(NULL, LUA_RELEASE "  " LUA_COPYRIGHT);}static int getargs (lua_State *L, char **argv, int n) {  int narg;  int i;  int argc = 0;  while (argv[argc]) argc++;  /* count total number of arguments */  narg = argc - (n + 1);  /* number of arguments to the script */  luaL_checkstack(L, narg + 3, "too many arguments to script");  for (i=n+1; i < argc; i++)    lua_pushstring(L, argv[i]);  lua_createtable(L, narg, n + 1);  for (i=0; i < argc; i++) {    lua_pushstring(L, argv[i]);    lua_rawseti(L, -2, i - n);  }  return narg;}static int dofile (lua_State *L, const char *name) {  int status = luaL_loadfile(L, name) || docall(L, 0, 1);  return report(L, status);}static int dostring (lua_State *L, const char *s, const char *name) {  int status = luaL_loadbuffer(L, s, strlen(s), name) || docall(L, 0, 1);  return report(L, status);}static int dolibrary (lua_State *L, const char *name) {  lua_getglobal(L, "require");  lua_pushstring(L, name);  return report(L, docall(L, 1, 1));}static const char *get_prompt (lua_State *L, int firstline) {  const char *p;  lua_getfield(L, LUA_GLOBALSINDEX, firstline ? "_PROMPT" : "_PROMPT2");  p = lua_tostring(L, -1);  if (p == NULL) p = (firstline ? LUA_PROMPT : LUA_PROMPT2);  lua_pop(L, 1);  /* remove global */  return p;}static int incomplete (lua_State *L, int status) {  if (status == LUA_ERRSYNTAX) {    size_t lmsg;    const char *msg = lua_tolstring(L, -1, &lmsg);    const char *tp = msg + lmsg - (sizeof(LUA_QL("<eof>")) - 1);    if (strstr(msg, LUA_QL("<eof>")) == tp) {      lua_pop(L, 1);      return 1;    }  }  return 0;  /* else... */}static int pushline (lua_State *L, int firstline) {  char buffer[LUA_MAXINPUT];  char *b = buffer;  size_t l;  const char *prmt = get_prompt(L, firstline);  if (lua_readline(L, b, prmt) == 0)    return 0;  /* no input */  l = strlen(b);  if (l > 0 && b[l-1] == '\n')  /* line ends with newline? */    b[l-1] = '\0';  /* remove it */  if (firstline && b[0] == '=')  /* first line starts with `=' ? */    lua_pushfstring(L, "return %s", b+1);  /* change it to `return' */  else    lua_pushstring(L, b);  lua_freeline(L, b);  return 1;}static int loadline (lua_State *L) {  int status;  lua_settop(L, 0);  if (!pushline(L, 1))    return -1;  /* no input */  for (;;) {  /* repeat until gets a complete line */    status = luaL_loadbuffer(L, lua_tostring(L, 1), lua_strlen(L, 1), "=stdin");    if (!incomplete(L, status)) break;  /* cannot try to add lines? */    if (!pushline(L, 0))  /* no more input? */      return -1;    lua_pushliteral(L, "\n");  /* add a new line... */    lua_insert(L, -2);  /* ...between the two lines */    lua_concat(L, 3);  /* join them */  }  lua_saveline(L, 1);  lua_remove(L, 1);  /* remove line */  return status;}static void dotty (lua_State *L) {  int status;  const char *oldprogname = progname;  progname = NULL;  while ((status = loadline(L)) != -1) {    if (status == 0) status = docall(L, 0, 0);    report(L, status);    if (status == 0 && lua_gettop(L) > 0) {  /* any result to print? */      lua_getglobal(L, "print");      lua_insert(L, 1);      if (lua_pcall(L, lua_gettop(L)-1, 0, 0) != 0)        l_message(progname, lua_pushfstring(L,                               "error calling " LUA_QL("print") " (%s)",                               lua_tostring(L, -1)));    }  }  lua_settop(L, 0);  /* clear stack */  fputs("\n", stdout);  fflush(stdout);  progname = oldprogname;}static int handle_script (lua_State *L, char **argv, int n) {  int status;  const char *fname;  int narg = getargs(L, argv, n);  /* collect arguments */  lua_setglobal(L, "arg");  fname = argv[n];  if (strcmp(fname, "-") == 0 && strcmp(argv[n-1], "--") != 0)     fname = NULL;  /* stdin */  status = luaL_loadfile(L, fname);  lua_insert(L, -(narg+1));  if (status == 0)    status = docall(L, narg, 0);  else    lua_pop(L, narg);        return report(L, status);}/* check that argument has no extra characters at the end */#define notail(x)	{if ((x)[2] != '\0') return -1;}static int collectargs (char **argv, int *pi, int *pv, int *pe) {  int i;  for (i = 1; argv[i] != NULL; i++) {    if (argv[i][0] != '-')  /* not an option? */        return i;    switch (argv[i][1]) {  /* option */      case '-':        notail(argv[i]);        return (argv[i+1] != NULL ? i+1 : 0);      case '\0':        return i;      case 'i':        notail(argv[i]);        *pi = 1;  /* go through */      case 'v':        notail(argv[i]);        *pv = 1;        break;      case 'e':        *pe = 1;  /* go through */      case 'l':        if (argv[i][2] == '\0') {          i++;          if (argv[i] == NULL) return -1;        }        break;      default: return -1;  /* invalid option */    }  }  return 0;}static int runargs (lua_State *L, char **argv, int n) {  int i;  for (i = 1; i < n; i++) {    if (argv[i] == NULL) continue;    lua_assert(argv[i][0] == '-');    switch (argv[i][1]) {  /* option */      case 'e': {        const char *chunk = argv[i] + 2;        if (*chunk == '\0') chunk = argv[++i];        lua_assert(chunk != NULL);        if (dostring(L, chunk, "=(command line)") != 0)          return 1;        break;      }      case 'l': {        const char *filename = argv[i] + 2;        if (*filename == '\0') filename = argv[++i];        lua_assert(filename != NULL);        if (dolibrary(L, filename))          return 1;  /* stop if file fails */        break;      }      default: break;    }  }  return 0;}static int handle_luainit (lua_State *L) {  const char *init = getenv(LUA_INIT);  if (init == NULL) return 0;  /* status OK */  else if (init[0] == '@')    return dofile(L, init+1);  else    return dostring(L, init, "=" LUA_INIT);}struct Smain {  int argc;  char **argv;  int status;};static int pmain (lua_State *L) {  struct Smain *s = (struct Smain *)lua_touserdata(L, 1);  char **argv = s->argv;  int script;  int has_i = 0, has_v = 0, has_e = 0;  globalL = L;  if (argv[0] && argv[0][0]) progname = argv[0];  lua_gc(L, LUA_GCSTOP, 0);  /* stop collector during initialization */  luaL_openlibs(L);  /* open libraries */  lua_gc(L, LUA_GCRESTART, 0);  s->status = handle_luainit(L);  if (s->status != 0) return 0;  script = collectargs(argv, &has_i, &has_v, &has_e);  if (script < 0) {  /* invalid args? */    print_usage();    s->status = 1;    return 0;  }  if (has_v) print_version();  s->status = runargs(L, argv, (script > 0) ? script : s->argc);  if (s->status != 0) return 0;  if (script)    s->status = handle_script(L, argv, script);  if (s->status != 0) return 0;  if (has_i)    dotty(L);  else if (script == 0 && !has_e && !has_v) {    if (lua_stdin_is_tty()) {      print_version();      dotty(L);    }    else dofile(L, NULL);  /* executes stdin as a file */  }  return 0;}int main (int argc, char **argv) {  int status;  struct Smain s;  lua_State *L = lua_open();  /* create state */  if (L == NULL) {    l_message(argv[0], "cannot create state: not enough memory");    return EXIT_FAILURE;  }  s.argc = argc;  s.argv = argv;  status = lua_cpcall(L, &pmain, &s);  report(L, status);  lua_close(L);  return (status || s.status) ? EXIT_FAILURE : EXIT_SUCCESS;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
豆国产96在线|亚洲| 大陆成人av片| 欧美日韩精品一区视频| 国产精品毛片高清在线完整版| 麻豆91在线看| 欧美不卡一区二区三区| 视频一区二区三区入口| 日韩一级片在线播放| 免费人成在线不卡| 久久综合av免费| 国产盗摄精品一区二区三区在线| 中文字幕成人av| 色欧美日韩亚洲| 五月天中文字幕一区二区| 91精选在线观看| 国产乱码精品一区二区三区忘忧草| 久久久综合视频| 91在线观看一区二区| 亚洲已满18点击进入久久| 91精品国产综合久久久久久久久久 | 26uuu国产电影一区二区| 国产精品中文字幕欧美| 亚洲六月丁香色婷婷综合久久| 欧美日韩国产成人在线免费| 国产麻豆日韩欧美久久| 国产精品麻豆视频| 欧美成人欧美edvon| 91免费国产视频网站| 狠狠色狠狠色综合日日91app| 亚洲伦在线观看| 久久久精品免费网站| 欧美一卡二卡在线| 日本精品一区二区三区高清| 国内久久婷婷综合| 视频一区二区中文字幕| 亚洲尤物在线视频观看| 自拍偷拍国产亚洲| 中文字幕不卡三区| 久久天堂av综合合色蜜桃网| 在线不卡a资源高清| 色乱码一区二区三区88| 色综合色狠狠天天综合色| 成人av午夜电影| www.亚洲色图.com| 国产成人h网站| 高清shemale亚洲人妖| 国产精品亚洲а∨天堂免在线| 奇米一区二区三区av| 日韩激情视频在线观看| 日本三级韩国三级欧美三级| av一区二区三区黑人| 99久久久精品免费观看国产蜜| 国产一区二区日韩精品| 国产一区二区伦理片| 成人免费视频视频| 色88888久久久久久影院按摩| 色偷偷88欧美精品久久久| 在线观看成人免费视频| 这里只有精品电影| 精品福利在线导航| 国产精品三级电影| 一区二区三区国产| 久久精品国产99久久6| 国产精品主播直播| 91猫先生在线| 91精品国产综合久久久久| 欧美成人一级视频| 国产喂奶挤奶一区二区三区| 亚洲视频一区二区在线| 日本午夜一区二区| av在线综合网| 日韩欧美在线网站| 亚洲亚洲精品在线观看| 国产精品一区二区x88av| 色国产综合视频| 国产欧美一区二区精品仙草咪| 一区av在线播放| 国产不卡免费视频| 欧美va亚洲va国产综合| 亚洲精品精品亚洲| 成人丝袜高跟foot| 欧美精品一区二区三区在线播放| 亚洲制服欧美中文字幕中文字幕| 国产精品一二三在| 欧美伦理视频网站| 亚洲女爱视频在线| 成人三级伦理片| 久久久国产一区二区三区四区小说 | youjizz国产精品| 精品福利一区二区三区免费视频| 无码av中文一区二区三区桃花岛| 欧美主播一区二区三区| 国产精品国产三级国产a| 九九**精品视频免费播放| 大陆成人av片| 久久一日本道色综合| 高清日韩电视剧大全免费| 日韩免费电影一区| 蜜桃视频一区二区三区| 国产精品伦理在线| av高清不卡在线| 亚洲在线视频免费观看| 色久综合一二码| 午夜国产精品影院在线观看| 欧美体内she精高潮| 偷窥国产亚洲免费视频| 日韩一二三四区| 精品中文av资源站在线观看| 精品国产一区二区三区不卡| 国产福利精品导航| 亚洲欧美一区二区三区极速播放 | 91捆绑美女网站| 亚洲第一电影网| 精品国产乱码久久久久久久久| 豆国产96在线|亚洲| 亚洲成人激情自拍| 久久久精品黄色| 国产精品美女www爽爽爽| 欧美体内she精视频| 国产成人av自拍| 亚洲aⅴ怡春院| 国产精品成人免费在线| 日韩一级精品视频在线观看| 97精品久久久久中文字幕| 日韩影院在线观看| 亚洲欧美日本韩国| 欧美xxxx老人做受| 欧美视频完全免费看| 成人国产一区二区三区精品| 亚洲成人在线观看视频| 国产精品欧美久久久久一区二区 | 欧美特级限制片免费在线观看| 国产做a爰片久久毛片| 日韩成人免费在线| 亚洲伦理在线精品| 中文字幕一区二区三区在线不卡 | 一区二区三区日韩精品视频| 欧美国产97人人爽人人喊| 日韩精品一区二区三区中文不卡 | 欧美国产一区视频在线观看| 一区二区三区成人在线视频| 1000精品久久久久久久久| 国产欧美精品一区二区色综合| 久久综合色天天久久综合图片| 3d成人h动漫网站入口| 欧美日本精品一区二区三区| 欧美亚洲免费在线一区| 色伊人久久综合中文字幕| 91毛片在线观看| 欧美三级韩国三级日本三斤| 欧美在线视频不卡| 在线观看免费视频综合| 69堂国产成人免费视频| 91麻豆精品国产91久久久资源速度| 欧美军同video69gay| 国产精品美女一区二区| 亚洲欧洲国产日韩| 亚洲成人综合在线| 国产精品91一区二区| 国产99久久久国产精品免费看| 成人国产精品视频| 欧美日韩综合在线| 久久精品综合网| 国产精品久久久久久久久果冻传媒 | 欧美变态口味重另类| 中文一区一区三区高中清不卡| **网站欧美大片在线观看| 天堂午夜影视日韩欧美一区二区| 奇米一区二区三区| 99久久精品情趣| 日韩精品一区二区三区四区| 国产精品久久久久影院色老大| 亚洲国产精品久久不卡毛片| 国产精品99久久久久久宅男| 欧美日韩国产在线播放网站| 国产精品久久久久影视| 日韩av中文字幕一区二区| 99在线精品免费| 久久久亚洲精品一区二区三区| 性做久久久久久免费观看| 成人黄色网址在线观看| 欧美xxxx老人做受| 麻豆传媒一区二区三区| 欧美日韩精品一区视频| 亚洲另类色综合网站| 国产福利一区二区| 日韩一区二区三| 天天影视涩香欲综合网| 欧美午夜在线一二页| ...av二区三区久久精品| 成人高清av在线| 国产精品久久久久天堂| 成人性生交大片免费看中文| 久久亚洲捆绑美女| 国产精品一区二区在线看| 久久综合久久久久88| 国产一区二区视频在线播放| 精品日产卡一卡二卡麻豆| 日本一不卡视频| 精品久久国产字幕高潮|