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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ltablib.c

?? 這個(gè)是一個(gè)嵌入式腳本支持引擎, 體積十分小巧
?? C
字號(hào):
/*** $Id: ltablib.c,v 1.38.1.3 2008/02/14 16:46:58 roberto Exp $** Library for Table Manipulation** See Copyright Notice in lua.h*/#include <stddef.h>#define ltablib_c#define LUA_LIB#include "lua.h"#include "lauxlib.h"#include "lualib.h"#define aux_getn(L,n)	(luaL_checktype(L, n, LUA_TTABLE), luaL_getn(L, n))static int foreachi (lua_State *L) {  int i;  int n = aux_getn(L, 1);  luaL_checktype(L, 2, LUA_TFUNCTION);  for (i=1; i <= n; i++) {    lua_pushvalue(L, 2);  /* function */    lua_pushinteger(L, i);  /* 1st argument */    lua_rawgeti(L, 1, i);  /* 2nd argument */    lua_call(L, 2, 1);    if (!lua_isnil(L, -1))      return 1;    lua_pop(L, 1);  /* remove nil result */  }  return 0;}static int foreach (lua_State *L) {  luaL_checktype(L, 1, LUA_TTABLE);  luaL_checktype(L, 2, LUA_TFUNCTION);  lua_pushnil(L);  /* first key */  while (lua_next(L, 1)) {    lua_pushvalue(L, 2);  /* function */    lua_pushvalue(L, -3);  /* key */    lua_pushvalue(L, -3);  /* value */    lua_call(L, 2, 1);    if (!lua_isnil(L, -1))      return 1;    lua_pop(L, 2);  /* remove value and result */  }  return 0;}static int maxn (lua_State *L) {  lua_Number max = 0;  luaL_checktype(L, 1, LUA_TTABLE);  lua_pushnil(L);  /* first key */  while (lua_next(L, 1)) {    lua_pop(L, 1);  /* remove value */    if (lua_type(L, -1) == LUA_TNUMBER) {      lua_Number v = lua_tonumber(L, -1);      if (v > max) max = v;    }  }  lua_pushnumber(L, max);  return 1;}static int getn (lua_State *L) {  lua_pushinteger(L, aux_getn(L, 1));  return 1;}static int setn (lua_State *L) {  luaL_checktype(L, 1, LUA_TTABLE);#ifndef luaL_setn  luaL_setn(L, 1, luaL_checkint(L, 2));#else  luaL_error(L, LUA_QL("setn") " is obsolete");#endif  lua_pushvalue(L, 1);  return 1;}static int tinsert (lua_State *L) {  int e = aux_getn(L, 1) + 1;  /* first empty element */  int pos;  /* where to insert new element */  switch (lua_gettop(L)) {    case 2: {  /* called with only 2 arguments */      pos = e;  /* insert new element at the end */      break;    }    case 3: {      int i;      pos = luaL_checkint(L, 2);  /* 2nd argument is the position */      if (pos > e) e = pos;  /* `grow' array if necessary */      for (i = e; i > pos; i--) {  /* move up elements */        lua_rawgeti(L, 1, i-1);        lua_rawseti(L, 1, i);  /* t[i] = t[i-1] */      }      break;    }    default: {      return luaL_error(L, "wrong number of arguments to " LUA_QL("insert"));    }  }  luaL_setn(L, 1, e);  /* new size */  lua_rawseti(L, 1, pos);  /* t[pos] = v */  return 0;}static int tremove (lua_State *L) {  int e = aux_getn(L, 1);  int pos = luaL_optint(L, 2, e);  if (!(1 <= pos && pos <= e))  /* position is outside bounds? */   return 0;  /* nothing to remove */  luaL_setn(L, 1, e - 1);  /* t.n = n-1 */  lua_rawgeti(L, 1, pos);  /* result = t[pos] */  for ( ;pos<e; pos++) {    lua_rawgeti(L, 1, pos+1);    lua_rawseti(L, 1, pos);  /* t[pos] = t[pos+1] */  }  lua_pushnil(L);  lua_rawseti(L, 1, e);  /* t[e] = nil */  return 1;}static void addfield (lua_State *L, luaL_Buffer *b, int i) {  lua_rawgeti(L, 1, i);  if (!lua_isstring(L, -1))    luaL_error(L, "invalid value (%s) at index %d in table for "                  LUA_QL("concat"), luaL_typename(L, -1), i);    luaL_addvalue(b);}static int tconcat (lua_State *L) {  luaL_Buffer b;  size_t lsep;  int i, last;  const char *sep = luaL_optlstring(L, 2, "", &lsep);  luaL_checktype(L, 1, LUA_TTABLE);  i = luaL_optint(L, 3, 1);  last = luaL_opt(L, luaL_checkint, 4, luaL_getn(L, 1));  luaL_buffinit(L, &b);  for (; i < last; i++) {    addfield(L, &b, i);    luaL_addlstring(&b, sep, lsep);  }  if (i == last)  /* add last value (if interval was not empty) */    addfield(L, &b, i);  luaL_pushresult(&b);  return 1;}/*** {======================================================** Quicksort** (based on `Algorithms in MODULA-3', Robert Sedgewick;**  Addison-Wesley, 1993.)*/static void set2 (lua_State *L, int i, int j) {  lua_rawseti(L, 1, i);  lua_rawseti(L, 1, j);}static int sort_comp (lua_State *L, int a, int b) {  if (!lua_isnil(L, 2)) {  /* function? */    int res;    lua_pushvalue(L, 2);    lua_pushvalue(L, a-1);  /* -1 to compensate function */    lua_pushvalue(L, b-2);  /* -2 to compensate function and `a' */    lua_call(L, 2, 1);    res = lua_toboolean(L, -1);    lua_pop(L, 1);    return res;  }  else  /* a < b? */    return lua_lessthan(L, a, b);}static void auxsort (lua_State *L, int l, int u) {  while (l < u) {  /* for tail recursion */    int i, j;    /* sort elements a[l], a[(l+u)/2] and a[u] */    lua_rawgeti(L, 1, l);    lua_rawgeti(L, 1, u);    if (sort_comp(L, -1, -2))  /* a[u] < a[l]? */      set2(L, l, u);  /* swap a[l] - a[u] */    else      lua_pop(L, 2);    if (u-l == 1) break;  /* only 2 elements */    i = (l+u)/2;    lua_rawgeti(L, 1, i);    lua_rawgeti(L, 1, l);    if (sort_comp(L, -2, -1))  /* a[i]<a[l]? */      set2(L, i, l);    else {      lua_pop(L, 1);  /* remove a[l] */      lua_rawgeti(L, 1, u);      if (sort_comp(L, -1, -2))  /* a[u]<a[i]? */        set2(L, i, u);      else        lua_pop(L, 2);    }    if (u-l == 2) break;  /* only 3 elements */    lua_rawgeti(L, 1, i);  /* Pivot */    lua_pushvalue(L, -1);    lua_rawgeti(L, 1, u-1);    set2(L, i, u-1);    /* a[l] <= P == a[u-1] <= a[u], only need to sort from l+1 to u-2 */    i = l; j = u-1;    for (;;) {  /* invariant: a[l..i] <= P <= a[j..u] */      /* repeat ++i until a[i] >= P */      while (lua_rawgeti(L, 1, ++i), sort_comp(L, -1, -2)) {        if (i>u) luaL_error(L, "invalid order function for sorting");        lua_pop(L, 1);  /* remove a[i] */      }      /* repeat --j until a[j] <= P */      while (lua_rawgeti(L, 1, --j), sort_comp(L, -3, -1)) {        if (j<l) luaL_error(L, "invalid order function for sorting");        lua_pop(L, 1);  /* remove a[j] */      }      if (j<i) {        lua_pop(L, 3);  /* pop pivot, a[i], a[j] */        break;      }      set2(L, i, j);    }    lua_rawgeti(L, 1, u-1);    lua_rawgeti(L, 1, i);    set2(L, u-1, i);  /* swap pivot (a[u-1]) with a[i] */    /* a[l..i-1] <= a[i] == P <= a[i+1..u] */    /* adjust so that smaller half is in [j..i] and larger one in [l..u] */    if (i-l < u-i) {      j=l; i=i-1; l=i+2;    }    else {      j=i+1; i=u; u=j-2;    }    auxsort(L, j, i);  /* call recursively the smaller one */  }  /* repeat the routine for the larger one */}static int sort (lua_State *L) {  int n = aux_getn(L, 1);  luaL_checkstack(L, 40, "");  /* assume array is smaller than 2^40 */  if (!lua_isnoneornil(L, 2))  /* is there a 2nd argument? */    luaL_checktype(L, 2, LUA_TFUNCTION);  lua_settop(L, 2);  /* make sure there is two arguments */  auxsort(L, 1, n);  return 0;}/* }====================================================== */static const luaL_Reg tab_funcs[] = {  {"concat", tconcat},  {"foreach", foreach},  {"foreachi", foreachi},  {"getn", getn},  {"maxn", maxn},  {"insert", tinsert},  {"remove", tremove},  {"setn", setn},  {"sort", sort},  {NULL, NULL}};LUALIB_API int luaopen_table (lua_State *L) {  luaL_register(L, LUA_TABLIBNAME, tab_funcs);  return 1;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产激情91久久精品导航| 国产一区 二区| 国产乱子伦视频一区二区三区| 国产黄色精品视频| 欧美久久一二三四区| 自拍偷拍国产亚洲| 国产福利一区二区三区视频| 欧美网站一区二区| ...av二区三区久久精品| 精品在线播放午夜| 欧美久久久久久蜜桃| 国产精品久久久久aaaa樱花 | 人人爽香蕉精品| 91论坛在线播放| 中文字幕av一区二区三区高| 久久国产剧场电影| 欧美一级片在线| 亚洲成人精品在线观看| av电影在线观看不卡| 久久精品亚洲麻豆av一区二区| 日韩精品亚洲一区二区三区免费| 色偷偷久久人人79超碰人人澡| 国产精品午夜久久| 国产成人午夜高潮毛片| 久久综合国产精品| 精品在线你懂的| 精品sm在线观看| 韩国av一区二区| 久久在线免费观看| 久久99九九99精品| 久久精品日产第一区二区三区高清版 | 国产精品免费观看视频| 国产精品白丝jk黑袜喷水| 日韩精品一区二区在线| 美国欧美日韩国产在线播放| 欧美一级搡bbbb搡bbbb| 青青草成人在线观看| 日韩无一区二区| 久久av资源网| 国产女人aaa级久久久级| 大胆亚洲人体视频| 亚洲欧美在线视频| 欧美羞羞免费网站| 性感美女极品91精品| 欧美一区二区日韩一区二区| 麻豆91精品91久久久的内涵| 久久蜜桃一区二区| a亚洲天堂av| 亚洲国产综合视频在线观看| 欧美一区二区三区性视频| 久久精品国内一区二区三区| www久久精品| 91丝袜高跟美女视频| 亚洲成在人线在线播放| 日韩精品一区二区三区视频播放 | 欧美日本一区二区三区四区 | 精品蜜桃在线看| 国产成人在线视频网站| 一区二区三区四区在线| 欧美精品色综合| 国产成人超碰人人澡人人澡| 亚洲免费观看视频| 日韩午夜电影av| 99久久99久久久精品齐齐| 午夜精品福利一区二区三区av | 91麻豆精品国产91久久久久久| 美女视频黄 久久| 国产精品毛片高清在线完整版| 91在线一区二区| 久久国产婷婷国产香蕉| 精品福利一区二区三区免费视频| 成人av片在线观看| 日韩码欧中文字| 欧美人妖巨大在线| 国产成人av资源| 午夜精品久久久久久久久久久| 日本一区二区三级电影在线观看| 欧美羞羞免费网站| 成人免费视频一区| 久久99蜜桃精品| 亚洲一区二区三区小说| 精品日韩在线一区| 在线精品视频一区二区| 国产精品影视网| 天天免费综合色| 中文字幕亚洲精品在线观看| 欧美一二三区在线| 在线看不卡av| 福利视频网站一区二区三区| 免费一级欧美片在线观看| 国产精品视频一区二区三区不卡| 欧美日韩在线免费视频| www.一区二区| 国产中文字幕一区| 日韩在线a电影| 亚洲第一二三四区| 亚洲美女视频一区| 国产精品久久久久久妇女6080 | 日韩午夜av一区| 欧美精品乱码久久久久久| 在线观看成人小视频| 成人性生交大片免费看中文| 日韩国产欧美三级| 午夜成人在线视频| 五月天精品一区二区三区| 一区二区成人在线观看| 中文字幕一区二区5566日韩| 日本一区二区三区四区 | 波多野结衣亚洲| 成人高清免费在线播放| 国产在线观看免费一区| 国产精品888| 国产成人免费网站| 日韩不卡一区二区| 喷白浆一区二区| 麻豆国产精品视频| 精品无码三级在线观看视频| 韩国一区二区视频| 国内成人免费视频| 国产一区视频网站| 成人动漫视频在线| 99精品一区二区| 91国偷自产一区二区使用方法| 色呦呦网站一区| 欧美高清视频不卡网| 日韩三级免费观看| 久久女同精品一区二区| 国产精品无人区| 亚洲天堂久久久久久久| 亚洲永久免费av| 麻豆久久久久久| 风流少妇一区二区| 色噜噜狠狠一区二区三区果冻| 欧美体内she精高潮| 91精品国产91热久久久做人人| 日韩欧美在线一区二区三区| 久久精品日韩一区二区三区| 亚洲美女精品一区| 丝袜美腿亚洲综合| 不卡区在线中文字幕| a级精品国产片在线观看| 91在线观看污| 欧美精品丝袜久久久中文字幕| 欧美成人在线直播| 成人免费在线观看入口| 亚洲成av人**亚洲成av**| 老司机精品视频一区二区三区| 激情深爱一区二区| 色香色香欲天天天影视综合网| 日韩欧美国产综合在线一区二区三区| 久久久国产午夜精品| 亚洲黄色小说网站| 久久草av在线| 欧美网站大全在线观看| 久久先锋影音av| 亚洲丰满少妇videoshd| 国产麻豆成人精品| 欧美日韩一区二区三区四区| 国产亚洲欧美中文| 午夜视频在线观看一区二区三区| 国产精品中文字幕一区二区三区| 欧美在线视频全部完| 国产欧美一区二区精品久导航| 午夜精品久久久久影视| 成人app软件下载大全免费| 91精品国产综合久久蜜臀| 自拍偷拍欧美精品| 国产乱色国产精品免费视频| 欧美精品v国产精品v日韩精品| 中文字幕中文在线不卡住| 麻豆国产一区二区| 欧美视频一区二区在线观看| 国产蜜臀97一区二区三区| 日韩av一级片| a美女胸又www黄视频久久| 91精品国产一区二区三区蜜臀| 中文字幕一区在线观看| 久久精品二区亚洲w码| 波多野结衣亚洲一区| 精品少妇一区二区三区| 视频在线观看91| 欧美体内she精高潮| 亚洲免费电影在线| 99精品国产99久久久久久白柏| 久久综合国产精品| 激情成人午夜视频| 欧美电影免费观看完整版| 天天做天天摸天天爽国产一区| 97精品国产97久久久久久久久久久久| 欧美电影免费观看高清完整版在| 亚洲一区二区欧美| 成人av网址在线观看| 精品三级在线看| 毛片av一区二区| 欧美一级视频精品观看| 香蕉影视欧美成人| 日本丶国产丶欧美色综合| 国产精品久久久久久久裸模 | 美国av一区二区| 日韩视频中午一区|