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

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

?? pcre_dfa_exec.c

?? SDL文件。SDL_ERROwenjian.....
?? C
?? 第 1 頁 / 共 5 頁
字號(hào):
/**************************************************      Perl-Compatible Regular Expressions       **************************************************//* PCRE is a library of functions to support regular expressions whose syntaxand semantics are as close as possible to those of the Perl 5 language.                       Written by Philip Hazel           Copyright (c) 1997-2007 University of Cambridge-----------------------------------------------------------------------------Redistribution and use in source and binary forms, with or withoutmodification, are permitted provided that the following conditions are met:    * Redistributions of source code must retain the above copyright notice,      this list of conditions and the following disclaimer.    * Redistributions in binary form must reproduce the above copyright      notice, this list of conditions and the following disclaimer in the      documentation and/or other materials provided with the distribution.    * Neither the name of the University of Cambridge nor the names of its      contributors may be used to endorse or promote products derived from      this software without specific prior written permission.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THEIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSEARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BELIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, ORCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OFSUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESSINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER INCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THEPOSSIBILITY OF SUCH DAMAGE.-----------------------------------------------------------------------------*//* This module contains the external function pcre_dfa_exec(), which is analternative matching function that uses a sort of DFA algorithm (not a trueFSM). This is NOT Perl- compatible, but it has advantages in certainapplications. */#ifdef HAVE_CONFIG_H#include "config.h"#endif#define NLBLOCK md             /* Block containing newline information */#define PSSTART start_subject  /* Field containing processed string start */#define PSEND   end_subject    /* Field containing processed string end */#include "pcre_internal.h"/* For use to indent debugging output */#define SP "                   "/**************************************************      Code parameters and static tables         **************************************************//* These are offsets that are used to turn the OP_TYPESTAR and friends opcodesinto others, under special conditions. A gap of 20 between the blocks should beenough. The resulting opcodes don't have to be less than 256 because they arenever stored, so we push them well clear of the normal opcodes. */#define OP_PROP_EXTRA       300#define OP_EXTUNI_EXTRA     320#define OP_ANYNL_EXTRA      340#define OP_HSPACE_EXTRA     360#define OP_VSPACE_EXTRA     380/* This table identifies those opcodes that are followed immediately by acharacter that is to be tested in some way. This makes is possible tocentralize the loading of these characters. In the case of Type * etc, the"character" is the opcode for \D, \d, \S, \s, \W, or \w, which will always be asmall value. ***NOTE*** If the start of this table is modified, the two tablesthat follow must also be modified. */static uschar coptable[] = {  0,                             /* End                                    */  0, 0, 0, 0, 0,                 /* \A, \G, \K, \B, \b                     */  0, 0, 0, 0, 0, 0,              /* \D, \d, \S, \s, \W, \w                 */  0, 0,                          /* Any, Anybyte                           */  0, 0, 0,                       /* NOTPROP, PROP, EXTUNI                  */  0, 0, 0, 0, 0,                 /* \R, \H, \h, \V, \v                     */  0, 0, 0, 0, 0,                 /* \Z, \z, Opt, ^, $                      */  1,                             /* Char                                   */  1,                             /* Charnc                                 */  1,                             /* not                                    */  /* Positive single-char repeats                                          */  1, 1, 1, 1, 1, 1,              /* *, *?, +, +?, ?, ??                    */  3, 3, 3,                       /* upto, minupto, exact                   */  1, 1, 1, 3,                    /* *+, ++, ?+, upto+                      */  /* Negative single-char repeats - only for chars < 256                   */  1, 1, 1, 1, 1, 1,              /* NOT *, *?, +, +?, ?, ??                */  3, 3, 3,                       /* NOT upto, minupto, exact               */  1, 1, 1, 3,                    /* NOT *+, ++, ?+, updo+                  */  /* Positive type repeats                                                 */  1, 1, 1, 1, 1, 1,              /* Type *, *?, +, +?, ?, ??               */  3, 3, 3,                       /* Type upto, minupto, exact              */  1, 1, 1, 3,                    /* Type *+, ++, ?+, upto+                 */  /* Character class & ref repeats                                         */  0, 0, 0, 0, 0, 0,              /* *, *?, +, +?, ?, ??                    */  0, 0,                          /* CRRANGE, CRMINRANGE                    */  0,                             /* CLASS                                  */  0,                             /* NCLASS                                 */  0,                             /* XCLASS - variable length               */  0,                             /* REF                                    */  0,                             /* RECURSE                                */  0,                             /* CALLOUT                                */  0,                             /* Alt                                    */  0,                             /* Ket                                    */  0,                             /* KetRmax                                */  0,                             /* KetRmin                                */  0,                             /* Assert                                 */  0,                             /* Assert not                             */  0,                             /* Assert behind                          */  0,                             /* Assert behind not                      */  0,                             /* Reverse                                */  0, 0, 0, 0,                    /* ONCE, BRA, CBRA, COND                  */  0, 0, 0,                       /* SBRA, SCBRA, SCOND                     */  0,                             /* CREF                                   */  0,                             /* RREF                                   */  0,                             /* DEF                                    */  0, 0,                          /* BRAZERO, BRAMINZERO                    */  0, 0, 0, 0,                    /* PRUNE, SKIP, THEN, COMMIT              */  0, 0                           /* FAIL, ACCEPT                           */};/* These 2 tables allow for compact code for testing for \D, \d, \S, \s, \W,and \w */static uschar toptable1[] = {  0, 0, 0, 0, 0, 0,  ctype_digit, ctype_digit,  ctype_space, ctype_space,  ctype_word,  ctype_word,  0                               /* OP_ANY */};static uschar toptable2[] = {  0, 0, 0, 0, 0, 0,  ctype_digit, 0,  ctype_space, 0,  ctype_word,  0,  1                               /* OP_ANY */};/* Structure for holding data about a particular state, which is in effect thecurrent data for an active path through the match tree. It must consistentirely of ints because the working vector we are passed, and which we putthese structures in, is a vector of ints. */typedef struct stateblock {  int offset;                     /* Offset to opcode */  int count;                      /* Count for repeats */  int ims;                        /* ims flag bits */  int data;                       /* Some use extra data */} stateblock;#define INTS_PER_STATEBLOCK  (sizeof(stateblock)/sizeof(int))#ifdef DEBUG/**************************************************             Print character string             **************************************************//* Character string printing function for debugging.Arguments:  p            points to string  length       number of bytes  f            where to printReturns:       nothing*/static voidpchars(unsigned char *p, int length, FILE *f){int c;while (length-- > 0)  {  if (isprint(c = *(p++)))    fprintf(f, "%c", c);  else    fprintf(f, "\\x%02x", c);  }}#endif/**************************************************    Execute a Regular Expression - DFA engine   **************************************************//* This internal function applies a compiled pattern to a subject string,starting at a given point, using a DFA engine. This function is called from theexternal one, possibly multiple times if the pattern is not anchored. Thefunction calls itself recursively for some kinds of subpattern.Arguments:  md                the match_data block with fixed information  this_start_code   the opening bracket of this subexpression's code  current_subject   where we currently are in the subject string  start_offset      start offset in the subject string  offsets           vector to contain the matching string offsets  offsetcount       size of same  workspace         vector of workspace  wscount           size of same  ims               the current ims flags  rlevel            function call recursion level  recursing         regex recursive call levelReturns:            > 0 =>                    = 0 =>                     -1 => failed to match                   < -1 => some kind of unexpected problemThe following macros are used for adding states to the two state vectors (onefor the current character, one for the following character). */#define ADD_ACTIVE(x,y) \  if (active_count++ < wscount) \    { \    next_active_state->offset = (x); \    next_active_state->count  = (y); \    next_active_state->ims    = ims; \    next_active_state++; \    DPRINTF(("%.*sADD_ACTIVE(%d,%d)\n", rlevel*2-2, SP, (x), (y))); \    } \  else return PCRE_ERROR_DFA_WSSIZE#define ADD_ACTIVE_DATA(x,y,z) \  if (active_count++ < wscount) \    { \    next_active_state->offset = (x); \    next_active_state->count  = (y); \    next_active_state->ims    = ims; \    next_active_state->data   = (z); \    next_active_state++; \    DPRINTF(("%.*sADD_ACTIVE_DATA(%d,%d,%d)\n", rlevel*2-2, SP, (x), (y), (z))); \    } \  else return PCRE_ERROR_DFA_WSSIZE#define ADD_NEW(x,y) \  if (new_count++ < wscount) \    { \    next_new_state->offset = (x); \    next_new_state->count  = (y); \    next_new_state->ims    = ims; \    next_new_state++; \    DPRINTF(("%.*sADD_NEW(%d,%d)\n", rlevel*2-2, SP, (x), (y))); \    } \  else return PCRE_ERROR_DFA_WSSIZE#define ADD_NEW_DATA(x,y,z) \  if (new_count++ < wscount) \    { \    next_new_state->offset = (x); \    next_new_state->count  = (y); \    next_new_state->ims    = ims; \    next_new_state->data   = (z); \    next_new_state++; \    DPRINTF(("%.*sADD_NEW_DATA(%d,%d,%d)\n", rlevel*2-2, SP, (x), (y), (z))); \    } \  else return PCRE_ERROR_DFA_WSSIZE/* And now, here is the code */static intinternal_dfa_exec(  dfa_match_data *md,  const uschar *this_start_code,  const uschar *current_subject,  int start_offset,  int *offsets,  int offsetcount,  int *workspace,  int wscount,  int ims,  int  rlevel,  int  recursing){stateblock *active_states, *new_states, *temp_states;stateblock *next_active_state, *next_new_state;const uschar *ctypes, *lcc, *fcc;const uschar *ptr;const uschar *end_code, *first_op;int active_count, new_count, match_count;/* Some fields in the md block are frequently referenced, so we load them intoindependent variables in the hope that this will perform better. */const uschar *start_subject = md->start_subject;const uschar *end_subject = md->end_subject;const uschar *start_code = md->start_code;#ifdef SUPPORT_UTF8BOOL utf8 = (md->poptions & PCRE_UTF8) != 0;#elseBOOL utf8 = FALSE;#endifrlevel++;offsetcount &= (-2);wscount -= 2;wscount = (wscount - (wscount % (INTS_PER_STATEBLOCK * 2))) /          (2 * INTS_PER_STATEBLOCK);DPRINTF(("\n%.*s---------------------\n"  "%.*sCall to internal_dfa_exec f=%d r=%d\n",  rlevel*2-2, SP, rlevel*2-2, SP, rlevel, recursing));ctypes = md->tables + ctypes_offset;lcc = md->tables + lcc_offset;fcc = md->tables + fcc_offset;match_count = PCRE_ERROR_NOMATCH;   /* A negative number */active_states = (stateblock *)(workspace + 2);next_new_state = new_states = active_states + wscount;new_count = 0;first_op = this_start_code + 1 + LINK_SIZE +  ((*this_start_code == OP_CBRA || *this_start_code == OP_SCBRA)? 2:0);/* The first thing in any (sub) pattern is a bracket of some sort. Push allthe alternative states onto the list, and find out where the end is. Thismakes is possible to use this function recursively, when we want to stop at amatching internal ket rather than at the end.If the first opcode in the first alternative is OP_REVERSE, we are dealing witha backward assertion. In that case, we have to find out the maximum amount tomove back, and set up each alternative appropriately. */if (*first_op == OP_REVERSE)  {  int max_back = 0;  int gone_back;  end_code = this_start_code;  do    {    int back = GET(end_code, 2+LINK_SIZE);    if (back > max_back) max_back = back;    end_code += GET(end_code, 1);    }  while (*end_code == OP_ALT);  /* If we can't go back the amount required for the longest lookbehind  pattern, go back as far as we can; some alternatives may still be viable. */#ifdef SUPPORT_UTF8  /* In character mode we have to step back character by character */  if (utf8)    {    for (gone_back = 0; gone_back < max_back; gone_back++)      {      if (current_subject <= start_subject) break;      current_subject--;      while (current_subject > start_subject &&             (*current_subject & 0xc0) == 0x80)        current_subject--;      }    }  else#endif  /* In byte-mode we can do this quickly. */    {    gone_back = (current_subject - max_back < start_subject)?      current_subject - start_subject : max_back;    current_subject -= gone_back;    }  /* Now we can process the individual branches. */  end_code = this_start_code;  do    {    int back = GET(end_code, 2+LINK_SIZE);    if (back <= gone_back)      {      int bstate = end_code - start_code + 2 + 2*LINK_SIZE;      ADD_NEW_DATA(-bstate, 0, gone_back - back);      }    end_code += GET(end_code, 1);    }  while (*end_code == OP_ALT); }/* This is the code for a "normal" subpattern (not a backward assertion). Thestart of a whole pattern is always one of these. If we are at the top level,we may be asked to restart matching from the same point that we reached for aprevious partial match. We still have to scan through the top-level branches tofind the end state. */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产91富婆露脸刺激对白| 99国产精品国产精品久久| 欧美国产日韩亚洲一区| 欧美中文字幕一区二区三区| 精品一区二区三区香蕉蜜桃| 亚洲综合色丁香婷婷六月图片| 精品奇米国产一区二区三区| 在线观看日韩精品| 成人性生交大片免费看中文| 日韩不卡一二三区| 亚洲欧美一区二区久久 | 日韩欧美激情四射| 色综合 综合色| 国产精品亚洲专一区二区三区| 亚洲va韩国va欧美va| 综合自拍亚洲综合图不卡区| 精品乱人伦小说| 7777精品伊人久久久大香线蕉经典版下载 | 国产麻豆欧美日韩一区| 天天影视涩香欲综合网| 亚洲精品日日夜夜| 中文字幕乱码久久午夜不卡| 日韩美女在线视频| 91.xcao| 日本久久电影网| 丰满少妇在线播放bd日韩电影| 极品美女销魂一区二区三区| 奇米色一区二区| 天堂资源在线中文精品| 悠悠色在线精品| 亚洲精品中文字幕在线观看| 国产精品网曝门| 久久久国产午夜精品| 精品免费一区二区三区| 欧美成人精品1314www| 日韩一卡二卡三卡四卡| 4438x成人网最大色成网站| 欧美日韩国产综合一区二区三区| 色噜噜夜夜夜综合网| 91视频免费播放| 91亚洲精品久久久蜜桃| 99精品热视频| 99久久er热在这里只有精品15| 成人av资源下载| 99精品国产热久久91蜜凸| jizzjizzjizz欧美| thepron国产精品| aa级大片欧美| 97久久久精品综合88久久| 一本高清dvd不卡在线观看| 色婷婷综合在线| 欧美日韩一区二区三区四区五区 | 91精品国产日韩91久久久久久| 91麻豆精品久久久久蜜臀| 日韩一区二区免费在线电影| 精品少妇一区二区三区日产乱码| 精品久久久久久久久久久久久久久 | 久久这里只精品最新地址| 久久一区二区三区国产精品| 久久久久高清精品| 国产精品国产精品国产专区不片| 亚洲区小说区图片区qvod| 亚洲嫩草精品久久| 日韩精品一二三区| 精品午夜久久福利影院 | 欧美一区二区三区视频免费| 欧美精品久久久久久久多人混战 | 六月丁香婷婷色狠狠久久| 国产精品中文欧美| 91视视频在线观看入口直接观看www| 色婷婷av一区二区三区大白胸| 欧美色综合久久| 久久综合给合久久狠狠狠97色69| 国产精品青草久久| 亚洲va欧美va人人爽| 国产一区美女在线| 欧美亚洲一区二区在线观看| 精品久久久久一区| 亚洲免费伊人电影| 麻豆精品蜜桃视频网站| 成人免费av网站| 欧美日韩另类国产亚洲欧美一级| 欧美成人官网二区| 一区二区三区欧美亚洲| 麻豆精品国产传媒mv男同| caoporn国产精品| 3atv一区二区三区| 综合久久一区二区三区| 美女视频一区二区| 91麻豆高清视频| 久久亚洲精品国产精品紫薇| 一区二区三区资源| 高清不卡一区二区| 5858s免费视频成人| 综合欧美亚洲日本| 国产精品一区不卡| 337p亚洲精品色噜噜噜| 亚洲免费伊人电影| 国产高清成人在线| 日韩三区在线观看| 亚洲激情综合网| 大胆亚洲人体视频| 精品毛片乱码1区2区3区| 亚洲国产成人精品视频| 成人免费高清在线观看| 欧美成人一级视频| 视频一区二区不卡| 日本精品视频一区二区三区| 国产日韩精品一区二区浪潮av | 精品亚洲免费视频| 欧美日韩激情一区二区三区| 中文字幕中文在线不卡住| 精品无人码麻豆乱码1区2区 | 国产精品美女久久久久久| 另类欧美日韩国产在线| 欧美日韩国产综合一区二区三区| 亚洲天堂福利av| 成人高清免费观看| 国产色一区二区| 激情伊人五月天久久综合| 欧美人妇做爰xxxⅹ性高电影| 自拍偷拍欧美激情| 99视频在线精品| 中日韩av电影| 国产精品一级在线| 久久久久久久久久久久久女国产乱| 毛片一区二区三区| 日韩精品一区在线观看| 日韩av一区二区三区| 6080午夜不卡| 日本不卡视频一二三区| 91精品国产综合久久精品图片| 午夜欧美一区二区三区在线播放| 欧美视频完全免费看| 亚洲电影中文字幕在线观看| 在线免费精品视频| 亚洲成人一区二区在线观看| 欧美三级资源在线| 日韩av午夜在线观看| 欧美一区二区在线看| 日本vs亚洲vs韩国一区三区| 91精品国产色综合久久ai换脸| 琪琪久久久久日韩精品| 欧美mv日韩mv国产| 国产乱对白刺激视频不卡| 国产清纯白嫩初高生在线观看91| 国产成人免费在线观看不卡| 中文字幕av一区二区三区| 99国产精品国产精品久久| 一区二区三区精密机械公司| 欧美私人免费视频| 日韩成人免费电影| 久久中文字幕电影| 北岛玲一区二区三区四区| 18成人在线观看| 欧美日韩国产综合一区二区| 免费久久精品视频| 26uuu另类欧美| 欧美自拍丝袜亚洲| 免费在线观看一区二区三区| 日韩午夜三级在线| 岛国av在线一区| 夜色激情一区二区| 日韩一二三区视频| 国产九九视频一区二区三区| 中文字幕一区二区在线观看| 欧美午夜电影在线播放| 美女脱光内衣内裤视频久久网站| 国产区在线观看成人精品| 色8久久精品久久久久久蜜| 日韩主播视频在线| 国产欧美一区二区精品久导航| 99精品视频在线播放观看| 日韩成人免费看| 国产精品少妇自拍| 欧美日韩国产不卡| 国产成人在线观看| 午夜一区二区三区视频| 久久综合九色综合97婷婷| 色综合久久天天综合网| 免费欧美高清视频| 国产精品久久久久久久久久久免费看| 欧洲精品中文字幕| 国产精品一线二线三线| 亚洲成人综合网站| 中文一区在线播放| 欧美一区二区三区爱爱| 99精品在线免费| 精品在线视频一区| 亚洲激情自拍偷拍| 国产午夜亚洲精品午夜鲁丝片| 欧美在线你懂的| 国产福利精品导航| 日韩av一二三| 伊人色综合久久天天| 国产欧美日韩麻豆91| 日韩欧美在线1卡| 91搞黄在线观看| 成人黄色小视频| 国产一区二区三区四区五区美女|