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

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

?? lempar.c

?? 新版輕量級嵌入式數據庫
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* Driver template for the LEMON parser generator.** The author disclaims copyright to this source code.*//* First off, code is include which follows the "include" declaration** in the input file. */#include <stdio.h>%%/* Next is all token values, in a form suitable for use by makeheaders.** This section will be null unless lemon is run with the -m switch.*//* ** These constants (all generated automatically by the parser generator)** specify the various kinds of tokens (terminals) that the parser** understands. **** Each symbol here is a terminal symbol in the grammar.*/%%/* Make sure the INTERFACE macro is defined.*/#ifndef INTERFACE# define INTERFACE 1#endif/* The next thing included is series of defines which control** various aspects of the generated parser.**    YYCODETYPE         is the data type used for storing terminal**                       and nonterminal numbers.  "unsigned char" is**                       used if there are fewer than 250 terminals**                       and nonterminals.  "int" is used otherwise.**    YYNOCODE           is a number of type YYCODETYPE which corresponds**                       to no legal terminal or nonterminal number.  This**                       number is used to fill in empty slots of the hash **                       table.**    YYFALLBACK         If defined, this indicates that one or more tokens**                       have fall-back values which should be used if the**                       original value of the token will not parse.**    YYACTIONTYPE       is the data type used for storing terminal**                       and nonterminal numbers.  "unsigned char" is**                       used if there are fewer than 250 rules and**                       states combined.  "int" is used otherwise.**    ParseTOKENTYPE     is the data type used for minor tokens given **                       directly to the parser from the tokenizer.**    YYMINORTYPE        is the data type used for all minor tokens.**                       This is typically a union of many types, one of**                       which is ParseTOKENTYPE.  The entry in the union**                       for base tokens is called "yy0".**    YYSTACKDEPTH       is the maximum depth of the parser's stack.**    ParseARG_SDECL     A static variable declaration for the %extra_argument**    ParseARG_PDECL     A parameter declaration for the %extra_argument**    ParseARG_STORE     Code to store %extra_argument into yypParser**    ParseARG_FETCH     Code to extract %extra_argument from yypParser**    YYNSTATE           the combined number of states.**    YYNRULE            the number of rules in the grammar**    YYERRORSYMBOL      is the code number of the error symbol.  If not**                       defined, then do no error processing.*/%%#define YY_NO_ACTION      (YYNSTATE+YYNRULE+2)#define YY_ACCEPT_ACTION  (YYNSTATE+YYNRULE+1)#define YY_ERROR_ACTION   (YYNSTATE+YYNRULE)/* Next are that tables used to determine what action to take based on the** current state and lookahead token.  These tables are used to implement** functions that take a state number and lookahead value and return an** action integer.  **** Suppose the action integer is N.  Then the action is determined as** follows****   0 <= N < YYNSTATE                  Shift N.  That is, push the lookahead**                                      token onto the stack and goto state N.****   YYNSTATE <= N < YYNSTATE+YYNRULE   Reduce by rule N-YYNSTATE.****   N == YYNSTATE+YYNRULE              A syntax error has occurred.****   N == YYNSTATE+YYNRULE+1            The parser accepts its input.****   N == YYNSTATE+YYNRULE+2            No such action.  Denotes unused**                                      slots in the yy_action[] table.**** The action table is constructed as a single large table named yy_action[].** Given state S and lookahead X, the action is computed as****      yy_action[ yy_shift_ofst[S] + X ]**** If the index value yy_shift_ofst[S]+X is out of range or if the value** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S]** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table** and that yy_default[S] should be used instead.  **** The formula above is for computing the action when the lookahead is** a terminal symbol.  If the lookahead is a non-terminal (as occurs after** a reduce action) then the yy_reduce_ofst[] array is used in place of** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of** YY_SHIFT_USE_DFLT.**** The following are the tables generated in this section:****  yy_action[]        A single table containing all actions.**  yy_lookahead[]     A table containing the lookahead for each entry in**                     yy_action.  Used to detect hash collisions.**  yy_shift_ofst[]    For each state, the offset into yy_action for**                     shifting terminals.**  yy_reduce_ofst[]   For each state, the offset into yy_action for**                     shifting non-terminals after a reduce.**  yy_default[]       Default action for each state.*/%%#define YY_SZ_ACTTAB (sizeof(yy_action)/sizeof(yy_action[0]))/* The next table maps tokens into fallback tokens.  If a construct** like the following:** **      %fallback ID X Y Z.**** appears in the grammer, then ID becomes a fallback token for X, Y,** and Z.  Whenever one of the tokens X, Y, or Z is input to the parser** but it does not parse, the type of the token is changed to ID and** the parse is retried before an error is thrown.*/#ifdef YYFALLBACKstatic const YYCODETYPE yyFallback[] = {%%};#endif /* YYFALLBACK *//* The following structure represents a single element of the** parser's stack.  Information stored includes:****   +  The state number for the parser at this level of the stack.****   +  The value of the token stored at this level of the stack.**      (In other words, the "major" token.)****   +  The semantic value stored at this level of the stack.  This is**      the information used by the action routines in the grammar.**      It is sometimes called the "minor" token.*/struct yyStackEntry {  int stateno;       /* The state-number */  int major;         /* The major token value.  This is the code                     ** number for the token at this stack level */  YYMINORTYPE minor; /* The user-supplied minor token value.  This                     ** is the value of the token  */};typedef struct yyStackEntry yyStackEntry;/* The state of the parser is completely contained in an instance of** the following structure */struct yyParser {  int yyidx;                    /* Index of top element in stack */  int yyerrcnt;                 /* Shifts left before out of the error */  ParseARG_SDECL                /* A place to hold %extra_argument */  yyStackEntry yystack[YYSTACKDEPTH];  /* The parser's stack */};typedef struct yyParser yyParser;#ifndef NDEBUG#include <stdio.h>static FILE *yyTraceFILE = 0;static char *yyTracePrompt = 0;#endif /* NDEBUG */#ifndef NDEBUG/* ** Turn parser tracing on by giving a stream to which to write the trace** and a prompt to preface each trace message.  Tracing is turned off** by making either argument NULL **** Inputs:** <ul>** <li> A FILE* to which trace output should be written.**      If NULL, then tracing is turned off.** <li> A prefix string written at the beginning of every**      line of trace output.  If NULL, then tracing is**      turned off.** </ul>**** Outputs:** None.*/void ParseTrace(FILE *TraceFILE, char *zTracePrompt){  yyTraceFILE = TraceFILE;  yyTracePrompt = zTracePrompt;  if( yyTraceFILE==0 ) yyTracePrompt = 0;  else if( yyTracePrompt==0 ) yyTraceFILE = 0;}#endif /* NDEBUG */#ifndef NDEBUG/* For tracing shifts, the names of all terminals and nonterminals** are required.  The following table supplies these names */static const char *const yyTokenName[] = { %%};#endif /* NDEBUG */#ifndef NDEBUG/* For tracing reduce actions, the names of all rules are required.*/static const char *const yyRuleName[] = {%%};#endif /* NDEBUG *//*** This function returns the symbolic name associated with a token** value.*/const char *ParseTokenName(int tokenType){#ifndef NDEBUG  if( tokenType>0 && tokenType<(sizeof(yyTokenName)/sizeof(yyTokenName[0])) ){    return yyTokenName[tokenType];  }else{    return "Unknown";  }#else  return "";#endif}/* ** This function allocates a new parser.** The only argument is a pointer to a function which works like** malloc.**** Inputs:** A pointer to the function used to allocate memory.**** Outputs:** A pointer to a parser.  This pointer is used in subsequent calls** to Parse and ParseFree.*/void *ParseAlloc(void *(*mallocProc)(size_t)){  yyParser *pParser;  pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) );  if( pParser ){    pParser->yyidx = -1;  }  return pParser;}/* The following function deletes the value associated with a** symbol.  The symbol can be either a terminal or nonterminal.** "yymajor" is the symbol code, and "yypminor" is a pointer to** the value.*/static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){  switch( yymajor ){    /* Here is inserted the actions which take place when a    ** terminal or non-terminal is destroyed.  This can happen    ** when the symbol is popped from the stack during a    ** reduce or during error processing or when a parser is     ** being destroyed before it is finished parsing.    **    ** Note: during a reduce, the only symbols destroyed are those    ** which appear on the RHS of the rule, but which are not used    ** inside the C code.    */%%    default:  break;   /* If no destructor action specified: do nothing */  }}/*** Pop the parser's stack once.**** If there is a destructor routine associated with the token which** is popped from the stack, then call it.**** Return the major token number for the symbol popped.*/static int yy_pop_parser_stack(yyParser *pParser){  YYCODETYPE yymajor;  yyStackEntry *yytos = &pParser->yystack[pParser->yyidx];  if( pParser->yyidx<0 ) return 0;#ifndef NDEBUG  if( yyTraceFILE && pParser->yyidx>=0 ){    fprintf(yyTraceFILE,"%sPopping %s\n",      yyTracePrompt,      yyTokenName[yytos->major]);  }#endif  yymajor = yytos->major;  yy_destructor( yymajor, &yytos->minor);  pParser->yyidx--;  return yymajor;}/* ** Deallocate and destroy a parser.  Destructors are all called for** all stack elements before shutting the parser down.**** Inputs:** <ul>** <li>  A pointer to the parser.  This should be a pointer**       obtained from ParseAlloc.** <li>  A pointer to a function used to reclaim memory obtained**       from malloc.** </ul>*/void ParseFree(  void *p,                    /* The parser to be deleted */  void (*freeProc)(void*)     /* Function used to reclaim memory */){  yyParser *pParser = (yyParser*)p;  if( pParser==0 ) return;  while( pParser->yyidx>=0 ) yy_pop_parser_stack(pParser);  (*freeProc)((void*)pParser);}/*** Find the appropriate action for a parser given the terminal** look-ahead token iLookAhead.**** If the look-ahead token is YYNOCODE, then check to see if the action is** independent of the look-ahead.  If it is, return the action, otherwise** return YY_NO_ACTION.*/static int yy_find_shift_action(  yyParser *pParser,        /* The parser */  int iLookAhead            /* The look-ahead token */){  int i;  int stateno = pParser->yystack[pParser->yyidx].stateno;   if( stateno>YY_SHIFT_MAX || (i = yy_shift_ofst[stateno])==YY_SHIFT_USE_DFLT ){    return yy_default[stateno];  }  if( iLookAhead==YYNOCODE ){    return YY_NO_ACTION;  }  i += iLookAhead;  if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){#ifdef YYFALLBACK    int iFallback;            /* Fallback token */    if( iLookAhead<sizeof(yyFallback)/sizeof(yyFallback[0])           && (iFallback = yyFallback[iLookAhead])!=0 ){#ifndef NDEBUG      if( yyTraceFILE ){        fprintf(yyTraceFILE, "%sFALLBACK %s => %s\n",           yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]);      }#endif      return yy_find_shift_action(pParser, iFallback);    }#endif    return yy_default[stateno];  }else{    return yy_action[i];  }}/*** Find the appropriate action for a parser given the non-terminal

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美剧情片在线观看| 国产欧美日韩卡一| 福利电影一区二区| 伊人色综合久久天天| 国产亚洲一区二区三区| 日韩欧美国产电影| 欧美高清精品3d| 中文字幕av资源一区| 中文字幕日韩av资源站| 久久久久高清精品| 国产亚洲va综合人人澡精品| 亚洲一线二线三线久久久| 亚洲男人的天堂网| 亚洲综合免费观看高清完整版在线| 久久99精品视频| 日韩 欧美一区二区三区| 亚洲图片欧美综合| 亚洲成人动漫在线免费观看| 婷婷久久综合九色国产成人| 蜜桃av一区二区| 久久91精品国产91久久小草| 在线观看日产精品| 精品婷婷伊人一区三区三| 91麻豆精品91久久久久同性| 制服丝袜亚洲精品中文字幕| 亚洲色图清纯唯美| 轻轻草成人在线| 成人黄色a**站在线观看| 97成人超碰视| 欧美精品久久久久久久多人混战 | 国产+成+人+亚洲欧洲自线| 欧美一级精品在线| 国产精品蜜臀av| 亚洲va国产天堂va久久en| 91在线无精精品入口| 中文字幕一区免费在线观看| 国产精品一区二区三区四区| 成人午夜激情影院| 91精品久久久久久久99蜜桃| 亚洲成人三级小说| 欧美一区二区视频在线观看2020| 国产欧美1区2区3区| 成人性视频网站| 国产精品剧情在线亚洲| 免费看日韩a级影片| 日韩丝袜情趣美女图片| 精品一区二区三区影院在线午夜 | 免费高清不卡av| 日韩精品中文字幕一区二区三区| 久久精品72免费观看| 波多野结衣91| 精品捆绑美女sm三区| 一区二区免费视频| 国产成人自拍网| 亚洲色图第一区| 欧美日韩久久一区二区| 中文在线免费一区三区高中清不卡| 国产91丝袜在线18| 一区二区三区精品在线| 日韩欧美区一区二| 99久久婷婷国产综合精品| 一区二区三区在线视频免费| 717成人午夜免费福利电影| 国产一区二区三区| 日韩精品综合一本久道在线视频| 国产在线精品一区二区不卡了| 国产精品国产三级国产普通话99| 欧洲亚洲国产日韩| 精品亚洲国产成人av制服丝袜| 中文字幕免费观看一区| 欧美午夜片在线看| 国产精品久久久久久久第一福利 | 久久精品一区二区三区av| 99re视频精品| 久久精品国产亚洲a| 国产精品区一区二区三| 欧美日韩国产一区| 粉嫩av一区二区三区在线播放| 亚洲影院久久精品| 久久久久久久av麻豆果冻| 色综合欧美在线| 国产欧美日韩在线看| 欧美日韩成人激情| 成人av网站在线观看免费| 性做久久久久久免费观看欧美| 中文字幕乱码一区二区免费| 欧美一区二区三级| 91啪在线观看| 中文字幕制服丝袜一区二区三区 | 91免费在线看| 国产精品一区二区果冻传媒| 调教+趴+乳夹+国产+精品| 1区2区3区国产精品| 久久久久久一二三区| 欧美一级欧美一级在线播放| 91国产成人在线| 亚洲国产精品久久人人爱蜜臀| 国产精品麻豆久久久| 精品国产乱码久久久久久久 | 91丝袜美女网| 国产精品一区专区| 久久97超碰国产精品超碰| 日本欧美一区二区| 午夜精品福利一区二区三区av| 一区二区三区日韩精品| 国产精品久久久久久久久免费桃花| 26uuu亚洲| 91蜜桃在线观看| 成人国产精品免费观看动漫| 国产成人激情av| 成人视屏免费看| 成人毛片在线观看| av一二三不卡影片| 色综合色狠狠天天综合色| 91免费精品国自产拍在线不卡| 99视频超级精品| 一本久久精品一区二区| 日本精品裸体写真集在线观看 | 一区二区三区在线观看网站| 国产精品久久久久三级| 国产精品第四页| 综合久久久久综合| 一区二区三区产品免费精品久久75| 亚洲欧美电影一区二区| 一级日本不卡的影视| 五月激情综合色| 蜜桃视频第一区免费观看| 久久成人免费网| 国产精品77777| fc2成人免费人成在线观看播放| 成人免费毛片高清视频| 91丨九色丨国产丨porny| 91国偷自产一区二区开放时间 | av日韩在线网站| 91久久国产最好的精华液| 欧美日韩激情一区| 日韩欧美精品三级| 亚洲国产高清不卡| 亚洲综合色噜噜狠狠| 青青草国产精品亚洲专区无| 国产呦精品一区二区三区网站| 国产高清精品久久久久| 91丝袜美腿高跟国产极品老师| 欧美亚洲动漫精品| 26uuu色噜噜精品一区| 1024成人网| 琪琪久久久久日韩精品| 高清免费成人av| 欧美日韩国产精选| 国产日产亚洲精品系列| 亚洲一区二区三区中文字幕在线 | 久久久国产精品麻豆| 亚洲美腿欧美偷拍| 九色porny丨国产精品| 91在线观看下载| 欧美一级在线免费| 国产精品久久久久一区二区三区| 天天色天天操综合| aaa欧美大片| 日韩亚洲欧美一区二区三区| 国产精品精品国产色婷婷| 性欧美大战久久久久久久久| 成人亚洲精品久久久久软件| 88在线观看91蜜桃国自产| 欧美国产日韩a欧美在线观看| 亚洲成人资源在线| 91香蕉视频污| 2020国产精品自拍| 亚洲a一区二区| 91啪九色porn原创视频在线观看| 91精品国产综合久久国产大片| 国产精品国产自产拍高清av| 久久精品噜噜噜成人88aⅴ| 欧美影院午夜播放| 中文成人av在线| 国产一区二区三区最好精华液| 欧美喷水一区二区| 亚洲黄色小说网站| 国产suv一区二区三区88区| 日韩欧美在线123| 天天综合色天天综合| 欧美性一级生活| 国产精品区一区二区三区| 国产中文一区二区三区| 九色|91porny| 欧美一区二区黄| 午夜精品久久久久影视| 色天天综合久久久久综合片| 国产精品久久久久久久久图文区| 国产综合成人久久大片91| 欧美mv日韩mv亚洲| 久久电影网电视剧免费观看| 欧美一区二区三区四区视频| 亚洲电影欧美电影有声小说| 一道本成人在线| 亚洲激情第一区| 欧美另类videos死尸| 性感美女极品91精品| 4438x亚洲最大成人网| 日韩极品在线观看|