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

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

?? lua.c

?? 支持中文變量的lua,基于lua 5.1.1源碼修改而成
?? C
字號:
/*** $Id: lua.c,v 1.160 2006/06/02 15:34:00 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) {  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, lua_pcall(L, 1, 0, 0));}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一区二区三区免费野_久草精品视频
婷婷成人激情在线网| 欧美一区二区美女| 国产三级一区二区| 极品少妇xxxx精品少妇| 久久久久久免费毛片精品| 国产综合色精品一区二区三区| 欧美变态凌虐bdsm| 东方欧美亚洲色图在线| 亚洲丝袜另类动漫二区| 欧美日韩国产高清一区二区三区| 丝袜亚洲另类欧美| 26uuu国产在线精品一区二区| 国产精品亚洲视频| 亚洲免费观看高清完整| 欧美午夜不卡视频| 久久国产福利国产秒拍| 亚洲国产精品高清| 欧美在线影院一区二区| 蜜桃视频第一区免费观看| 国产亚洲精品aa午夜观看| 色哟哟欧美精品| 免费看日韩精品| 国产欧美精品在线观看| 欧美色综合网站| 国产做a爰片久久毛片| 亚洲欧洲制服丝袜| 日韩亚洲欧美一区二区三区| 成人精品免费网站| 五月天精品一区二区三区| 久久精品夜色噜噜亚洲aⅴ| 色哟哟国产精品| 在线精品视频小说1| 激情综合亚洲精品| 国产成人免费在线| 欧洲精品在线观看| 中文字幕一区二区三区不卡在线 | 一本大道久久a久久精品综合| 一本大道久久精品懂色aⅴ| 日韩欧美123| 亚洲一二三四区| 91免费国产视频网站| 亚洲色图欧美在线| 亚洲综合av网| 欧美日本在线看| 97精品超碰一区二区三区| 日韩电影在线免费观看| 亚洲欧美日韩国产成人精品影院| 欧美一区二区福利视频| 色综合久久88色综合天天| 国产自产高清不卡| 日韩精品一二区| 夜夜精品视频一区二区| 国产精品麻豆网站| 欧美精品一区在线观看| 欧美日韩在线直播| 一本大道久久a久久综合婷婷| 国产伦精品一区二区三区免费 | 欧美韩国一区二区| 日韩一区二区免费高清| 欧洲av一区二区嗯嗯嗯啊| 大胆欧美人体老妇| 久久精品国产免费看久久精品| 一区二区三区在线播放| 国产精品妹子av| 国产欧美日韩视频一区二区| 精品日韩一区二区三区 | 成人国产精品免费| 国产一区二区三区美女| 精品一区二区在线观看| 日本成人在线视频网站| 亚洲成av人片| 亚洲大片精品永久免费| 亚洲人123区| 一区二区三区日韩| 亚洲精品国产视频| 一区二区三区四区高清精品免费观看 | 久久久国产综合精品女国产盗摄| 日韩丝袜美女视频| 精品久久久久久久久久久院品网| 日韩精品中文字幕一区| 欧美成人一级视频| 26uuu国产日韩综合| 久久久久久久综合色一本| 久久蜜桃av一区精品变态类天堂| 久久蜜桃av一区精品变态类天堂| 国产色产综合色产在线视频| 国产女人aaa级久久久级| 国产精品成人免费| 玉足女爽爽91| 视频一区中文字幕国产| 免费成人结看片| 国产高清不卡一区| 成人在线视频一区二区| 91天堂素人约啪| 欧美日韩高清一区二区三区| 日韩一级精品视频在线观看| 久久亚洲精品国产精品紫薇 | 国产精品久久久久久妇女6080 | 国产·精品毛片| 91在线丨porny丨国产| 欧美性一二三区| 欧美一区二区视频观看视频| 蜜臀av在线播放一区二区三区 | 狠狠色丁香婷婷综合| 蜜桃在线一区二区三区| 日产国产高清一区二区三区| 亚洲成人久久影院| 毛片一区二区三区| 国产精品一级片| 在线免费观看日本欧美| 欧美日韩国产a| 欧美精品三级日韩久久| 日韩福利电影在线观看| 久久99国产乱子伦精品免费| 豆国产96在线|亚洲| 欧美日韩aaaaa| 中文字幕成人在线观看| 婷婷国产v国产偷v亚洲高清| 国产成人高清视频| 欧美日韩国产另类一区| 欧美激情中文字幕| 日本v片在线高清不卡在线观看| 国产成人午夜高潮毛片| 欧美日韩国产影片| 欧美国产精品一区| 日韩和欧美的一区| 色综合久久综合网欧美综合网| 日韩精品一区二区三区swag| 亚洲欧洲国产专区| 激情综合亚洲精品| 在线观看91精品国产麻豆| 国产精品高清亚洲| 久草精品在线观看| 欧美日韩在线三级| 国产精品久久久久久久久免费相片 | 欧美伊人久久久久久久久影院| 2024国产精品| 日本网站在线观看一区二区三区| 成人免费毛片aaaaa**| 日韩欧美高清在线| 天天综合天天综合色| 不卡一区二区在线| 久久久精品人体av艺术| 免费黄网站欧美| 欧美日韩大陆在线| 亚洲免费观看在线观看| 成人毛片在线观看| 久久影院午夜论| 另类欧美日韩国产在线| 欧美高清dvd| 亚洲成人7777| 欧美日韩精品一二三区| 亚洲一区二区三区免费视频| av一二三不卡影片| 国产精品久久久久三级| 国产大陆精品国产| 久久久久久99精品| 国产精品资源在线| 国产欧美日韩一区二区三区在线观看 | 国产成人免费视频网站| 久久久久久久电影| 国产伦精一区二区三区| 久久伊人蜜桃av一区二区| 久久99精品网久久| 久久嫩草精品久久久精品| 国内精品伊人久久久久av一坑| 日韩欧美成人激情| 激情综合亚洲精品| 久久久91精品国产一区二区精品 | 亚洲r级在线视频| 欧美色欧美亚洲另类二区| 亚洲成a人v欧美综合天堂下载| 欧美视频三区在线播放| 午夜视频一区二区三区| 欧美一级xxx| 国产真实乱偷精品视频免| 337p粉嫩大胆噜噜噜噜噜91av| 国产精品一区二区无线| 欧美激情资源网| 色综合久久综合中文综合网| 亚洲午夜精品久久久久久久久| 欧美精品色综合| 紧缚奴在线一区二区三区| 久久久精品综合| 成人黄色免费短视频| 亚洲欧美日韩国产手机在线| 欧美日韩卡一卡二| 国模娜娜一区二区三区| 国产精品对白交换视频 | 欧美精品久久99久久在免费线 | 精品一区二区三区免费播放| 久久久久久黄色| 色综合久久66| 美洲天堂一区二卡三卡四卡视频 | 亚洲成人在线免费| 日韩欧美亚洲一区二区| 成人一区二区三区视频| 亚洲自拍偷拍麻豆| 欧美电视剧在线看免费| 国产91精品一区二区麻豆亚洲|