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

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

?? ltablib.c

?? 腳本語言lua-5.1的源代碼, 非常的經典!
?? C
字號:
/*** $Id: ltablib.c,v 1.38 2005/10/23 17:38:15 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 (e == 0) return 0;  /* table is `empty' */  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 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++) {    lua_rawgeti(L, 1, i);    luaL_argcheck(L, lua_isstring(L, -1), 1, "table contains non-strings");    luaL_addvalue(&b);    if (i != last)      luaL_addlstring(&b, sep, lsep);  }  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;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美综合一区二区三区| 9人人澡人人爽人人精品| 欧美96一区二区免费视频| 一区二区不卡在线播放| 亚洲精品一二三区| 亚洲国产精品久久不卡毛片| 五月天精品一区二区三区| 男人操女人的视频在线观看欧美 | 老鸭窝一区二区久久精品| 日本不卡123| 黄一区二区三区| 成人av在线网| 91久久免费观看| 制服丝袜国产精品| 91精品黄色片免费大全| 2020日本不卡一区二区视频| 国产精品高潮久久久久无| 亚洲精品v日韩精品| 日韩精品亚洲专区| 国产成人综合亚洲91猫咪| 成人综合在线视频| 欧美性生活一区| 欧美xxxxx牲另类人与| 中文字幕巨乱亚洲| 一区二区三区.www| 久久99久久久久| 成年人午夜久久久| 717成人午夜免费福利电影| 欧美变态口味重另类| 国产精品传媒在线| 日韩中文字幕区一区有砖一区| 久久精品国产免费看久久精品| www.99精品| 337p亚洲精品色噜噜狠狠| 日本一区二区不卡视频| 亚洲欧美综合另类在线卡通| 亚洲va韩国va欧美va| 不卡区在线中文字幕| 日韩欧美国产午夜精品| 亚洲精品高清在线| 国产mv日韩mv欧美| 日韩丝袜情趣美女图片| 亚洲国产视频在线| jizz一区二区| 国产午夜三级一区二区三| 日本一道高清亚洲日美韩| 欧洲激情一区二区| 中文字幕一区二区三区色视频| 精品一区二区免费在线观看| 欧美久久久一区| 亚洲女子a中天字幕| 国产成人精品一区二| 久久综合九色综合欧美就去吻 | 欧美日韩精品免费| 一区二区三区四区在线播放| 北条麻妃一区二区三区| 国产欧美精品一区二区色综合朱莉| 蜜臀久久久久久久| 欧美在线观看一区二区| 亚洲精品国产a| 91蝌蚪国产九色| 国产精品护士白丝一区av| 国产白丝精品91爽爽久久| 精品福利一二区| 久久99精品一区二区三区| 欧美一区二区三区视频在线 | 欧美日韩一区二区三区不卡 | 欧美私模裸体表演在线观看| 亚洲欧美日韩一区二区三区在线观看| 东方aⅴ免费观看久久av| 国产婷婷色一区二区三区四区 | 337p粉嫩大胆噜噜噜噜噜91av | 久久久精品影视| 国产在线精品一区二区夜色| 精品免费日韩av| 韩国精品免费视频| 久久久久久**毛片大全| 国精产品一区一区三区mba桃花| 精品成人a区在线观看| 久久99精品国产91久久来源| 欧美mv日韩mv亚洲| 国产精品影视网| 国产欧美日产一区| av一区二区久久| 亚洲卡通动漫在线| 欧美系列在线观看| 日本免费在线视频不卡一不卡二| 91精品国产综合久久久蜜臀图片| 日本亚洲一区二区| 精品av久久707| 国产精品一二三四区| 国产喷白浆一区二区三区| www.色综合.com| 一区二区免费在线| 在线不卡一区二区| 久久超级碰视频| 中文字幕国产一区| 日本精品视频一区二区| 同产精品九九九| 精品国产百合女同互慰| 成人免费av网站| 一区二区三区.www| 欧美一个色资源| 国产激情视频一区二区在线观看| 国产精品免费视频一区| 色噜噜狠狠色综合欧洲selulu| 日日摸夜夜添夜夜添精品视频| 欧美sm极限捆绑bd| 91香蕉视频在线| 亚洲bt欧美bt精品| 精品88久久久久88久久久| 97久久精品人人做人人爽50路| 亚洲综合一区在线| 亚洲精品一区二区三区蜜桃下载| 国产91精品久久久久久久网曝门| 亚洲精品成人少妇| 日韩欧美一区二区在线视频| 国产成人夜色高潮福利影视| 樱桃国产成人精品视频| 欧美tk—视频vk| 91丝袜国产在线播放| 欧美aaa在线| 中文字幕一区视频| 69堂国产成人免费视频| 波多野结衣中文一区| 午夜精品久久一牛影视| 亚洲国产精品国自产拍av| 欧美视频一区二区三区四区| 国产麻豆日韩欧美久久| 亚洲永久免费视频| 国产亚洲欧洲997久久综合 | 亚洲精品videosex极品| 精品裸体舞一区二区三区| 色综合天天综合色综合av | 精品国产91久久久久久久妲己| 91在线一区二区| 久久国产剧场电影| 亚洲精品乱码久久久久久| 久久毛片高清国产| 欧美日韩视频不卡| 成人18视频在线播放| 久久99精品网久久| 亚洲国产视频一区| 国产精品大尺度| 久久女同性恋中文字幕| 欧美精品v国产精品v日韩精品| 成a人片亚洲日本久久| 久久成人av少妇免费| 亚洲成av人片观看| 亚洲欧美国产高清| 国产亚洲短视频| 欧美一区二区视频观看视频| 色欲综合视频天天天| 国产精品亚洲专一区二区三区| 日本欧美韩国一区三区| 亚洲综合一区二区三区| 国产精品久久久久影院色老大| 精品久久久久久亚洲综合网 | 日韩电影在线观看网站| 中文字幕亚洲一区二区av在线| www国产成人| 日韩视频国产视频| 欧美剧情片在线观看| 色悠悠久久综合| 丁香六月综合激情| 国产激情91久久精品导航 | www亚洲一区| 日韩欧美国产一区二区在线播放| 欧美美女喷水视频| 日本丰满少妇一区二区三区| caoporn国产精品| 国产成人综合在线播放| 国产精品系列在线观看| 精品在线你懂的| 麻豆精品久久精品色综合| 天堂在线一区二区| 午夜a成v人精品| 婷婷久久综合九色综合伊人色| 亚洲综合在线免费观看| 亚洲精品中文在线观看| 亚洲欧洲99久久| 亚洲日本一区二区| 亚洲日本va午夜在线电影| 中文字幕永久在线不卡| 亚洲欧美综合在线精品| 亚洲欧美日韩电影| 一区二区三区小说| 亚洲国产日韩一级| 日韩精品一二三| 免费不卡在线视频| 久久精品国产99久久6| 激情五月婷婷综合| 国产成人亚洲综合色影视| 波多野结衣一区二区三区| 91蜜桃视频在线| 91成人国产精品| 欧美伦理电影网| 日韩午夜av一区| 国产亚洲欧美中文| 成人免费一区二区三区在线观看|