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

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

?? parse.c

?? 編譯原理(Flex):生成詞法和語法分析程序的源代碼的程序。
?? C
?? 第 1 頁 / 共 3 頁
字號:
				 *
				 * By the way, we didn't do this at the
				 * beginning of this production because back
				 * then current_state_type was set up for a
				 * trail rule, and add_accept() can create
				 * a new state ...
				 */
				add_accept( yyvsp[-1],
					num_rules | YY_TRAILING_HEAD_MASK );
				variable_trail_rule = true;
				}
			
			else
				trailcnt = rulelen;

			yyval = link_machines( yyvsp[-1], yyvsp[0] );
			}
break;
case 36:
#line 421 "./parse.y"
{ synerr( "trailing context used twice" ); }
break;
case 37:
#line 424 "./parse.y"
{
			headcnt = 0;
			trailcnt = 1;
			rulelen = 1;
			varlength = false;

			current_state_type = STATE_TRAILING_CONTEXT;

			if ( trlcontxt )
				{
				synerr( "trailing context used twice" );
				yyval = mkstate( SYM_EPSILON );
				}

			else if ( previous_continued_action )
				{
				/* See the comment in the rule for "re2 re"
				 * above.
				 */
				warn(
		"trailing context made variable due to preceding '|' action" );

				varlength = true;
				}

			if ( lex_compat || varlength )
				{
				/* Again, see the comment in the rule for
				 * "re2 re" above.
				 */
				add_accept( yyvsp[-1],
					num_rules | YY_TRAILING_HEAD_MASK );
				variable_trail_rule = true;
				}

			trlcontxt = true;

			eps = mkstate( SYM_EPSILON );
			yyval = link_machines( yyvsp[-1],
				link_machines( eps, mkstate( '\n' ) ) );
			}
break;
case 38:
#line 467 "./parse.y"
{
			yyval = yyvsp[0];

			if ( trlcontxt )
				{
				if ( lex_compat || (varlength && headcnt == 0) )
					/* Both head and trail are
					 * variable-length.
					 */
					variable_trail_rule = true;
				else
					trailcnt = rulelen;
				}
			}
break;
case 39:
#line 485 "./parse.y"
{
			varlength = true;
			yyval = mkor( yyvsp[-2], yyvsp[0] );
			}
break;
case 40:
#line 491 "./parse.y"
{ yyval = yyvsp[0]; }
break;
case 41:
#line 496 "./parse.y"
{
			/* This rule is written separately so the
			 * reduction will occur before the trailing
			 * series is parsed.
			 */

			if ( trlcontxt )
				synerr( "trailing context used twice" );
			else
				trlcontxt = true;

			if ( varlength )
				/* We hope the trailing context is
				 * fixed-length.
				 */
				varlength = false;
			else
				headcnt = rulelen;

			rulelen = 0;

			current_state_type = STATE_TRAILING_CONTEXT;
			yyval = yyvsp[-1];
			}
break;
case 42:
#line 523 "./parse.y"
{
			/* This is where concatenation of adjacent patterns
			 * gets done.
			 */
			yyval = link_machines( yyvsp[-1], yyvsp[0] );
			}
break;
case 43:
#line 531 "./parse.y"
{ yyval = yyvsp[0]; }
break;
case 44:
#line 535 "./parse.y"
{
			varlength = true;

			yyval = mkclos( yyvsp[-1] );
			}
break;
case 45:
#line 542 "./parse.y"
{
			varlength = true;
			yyval = mkposcl( yyvsp[-1] );
			}
break;
case 46:
#line 548 "./parse.y"
{
			varlength = true;
			yyval = mkopt( yyvsp[-1] );
			}
break;
case 47:
#line 554 "./parse.y"
{
			varlength = true;

			if ( yyvsp[-3] > yyvsp[-1] || yyvsp[-3] < 0 )
				{
				synerr( "bad iteration values" );
				yyval = yyvsp[-5];
				}
			else
				{
				if ( yyvsp[-3] == 0 )
					{
					if ( yyvsp[-1] <= 0 )
						{
						synerr(
						"bad iteration values" );
						yyval = yyvsp[-5];
						}
					else
						yyval = mkopt(
							mkrep( yyvsp[-5], 1, yyvsp[-1] ) );
					}
				else
					yyval = mkrep( yyvsp[-5], yyvsp[-3], yyvsp[-1] );
				}
			}
break;
case 48:
#line 582 "./parse.y"
{
			varlength = true;

			if ( yyvsp[-2] <= 0 )
				{
				synerr( "iteration value must be positive" );
				yyval = yyvsp[-4];
				}

			else
				yyval = mkrep( yyvsp[-4], yyvsp[-2], INFINITY );
			}
break;
case 49:
#line 596 "./parse.y"
{
			/* The singleton could be something like "(foo)",
			 * in which case we have no idea what its length
			 * is, so we punt here.
			 */
			varlength = true;

			if ( yyvsp[-1] <= 0 )
				{
				synerr( "iteration value must be positive" );
				yyval = yyvsp[-3];
				}

			else
				yyval = link_machines( yyvsp[-3],
						copysingl( yyvsp[-3], yyvsp[-1] - 1 ) );
			}
break;
case 50:
#line 615 "./parse.y"
{
			if ( ! madeany )
				{
				/* Create the '.' character class. */
				anyccl = cclinit();
				ccladd( anyccl, '\n' );
				cclnegate( anyccl );

				if ( useecs )
					mkeccl( ccltbl + cclmap[anyccl],
						ccllen[anyccl], nextecm,
						ecgroup, csize, csize );

				madeany = true;
				}

			++rulelen;

			yyval = mkstate( -anyccl );
			}
break;
case 51:
#line 637 "./parse.y"
{
			if ( ! cclsorted )
				/* Sort characters for fast searching.  We
				 * use a shell sort since this list could
				 * be large.
				 */
				cshell( ccltbl + cclmap[yyvsp[0]], ccllen[yyvsp[0]], true );

			if ( useecs )
				mkeccl( ccltbl + cclmap[yyvsp[0]], ccllen[yyvsp[0]],
					nextecm, ecgroup, csize, csize );

			++rulelen;

			yyval = mkstate( -yyvsp[0] );
			}
break;
case 52:
#line 655 "./parse.y"
{
			++rulelen;

			yyval = mkstate( -yyvsp[0] );
			}
break;
case 53:
#line 662 "./parse.y"
{ yyval = yyvsp[-1]; }
break;
case 54:
#line 665 "./parse.y"
{ yyval = yyvsp[-1]; }
break;
case 55:
#line 668 "./parse.y"
{
			++rulelen;

			if ( caseins && yyvsp[0] >= 'A' && yyvsp[0] <= 'Z' )
				yyvsp[0] = clower( yyvsp[0] );

			yyval = mkstate( yyvsp[0] );
			}
break;
case 56:
#line 679 "./parse.y"
{ yyval = yyvsp[-1]; }
break;
case 57:
#line 682 "./parse.y"
{
			cclnegate( yyvsp[-1] );
			yyval = yyvsp[-1];
			}
break;
case 58:
#line 689 "./parse.y"
{
			if ( caseins )
				{
				if ( yyvsp[-2] >= 'A' && yyvsp[-2] <= 'Z' )
					yyvsp[-2] = clower( yyvsp[-2] );
				if ( yyvsp[0] >= 'A' && yyvsp[0] <= 'Z' )
					yyvsp[0] = clower( yyvsp[0] );
				}

			if ( yyvsp[-2] > yyvsp[0] )
				synerr( "negative range in character class" );

			else
				{
				for ( i = yyvsp[-2]; i <= yyvsp[0]; ++i )
					ccladd( yyvsp[-3], i );

				/* Keep track if this ccl is staying in
				 * alphabetical order.
				 */
				cclsorted = cclsorted && (yyvsp[-2] > lastchar);
				lastchar = yyvsp[0];
				}

			yyval = yyvsp[-3];
			}
break;
case 59:
#line 717 "./parse.y"
{
			if ( caseins && yyvsp[0] >= 'A' && yyvsp[0] <= 'Z' )
				yyvsp[0] = clower( yyvsp[0] );

			ccladd( yyvsp[-1], yyvsp[0] );
			cclsorted = cclsorted && (yyvsp[0] > lastchar);
			lastchar = yyvsp[0];
			yyval = yyvsp[-1];
			}
break;
case 60:
#line 728 "./parse.y"
{
			/* Too hard to properly maintain cclsorted. */
			cclsorted = false;
			yyval = yyvsp[-1];
			}
break;
case 61:
#line 735 "./parse.y"
{
			cclsorted = true;
			lastchar = 0;
			currccl = yyval = cclinit();
			}
break;
case 62:
#line 742 "./parse.y"
{ CCL_EXPR(isalnum) }
break;
case 63:
#line 743 "./parse.y"
{ CCL_EXPR(isalpha) }
break;
case 64:
#line 744 "./parse.y"
{ CCL_EXPR(IS_BLANK) }
break;
case 65:
#line 745 "./parse.y"
{ CCL_EXPR(iscntrl) }
break;
case 66:
#line 746 "./parse.y"
{ CCL_EXPR(isdigit) }
break;
case 67:
#line 747 "./parse.y"
{ CCL_EXPR(isgraph) }
break;
case 68:
#line 748 "./parse.y"
{ CCL_EXPR(islower) }
break;
case 69:
#line 749 "./parse.y"
{ CCL_EXPR(isprint) }
break;
case 70:
#line 750 "./parse.y"
{ CCL_EXPR(ispunct) }
break;
case 71:
#line 751 "./parse.y"
{ CCL_EXPR(isspace) }
break;
case 72:
#line 752 "./parse.y"
{
				if ( caseins )
					CCL_EXPR(islower)
				else
					CCL_EXPR(isupper)
				}
break;
case 73:
#line 758 "./parse.y"
{ CCL_EXPR(isxdigit) }
break;
case 74:
#line 762 "./parse.y"
{
			if ( caseins && yyvsp[0] >= 'A' && yyvsp[0] <= 'Z' )
				yyvsp[0] = clower( yyvsp[0] );

			++rulelen;

			yyval = link_machines( yyvsp[-1], mkstate( yyvsp[0] ) );
			}
break;
case 75:
#line 772 "./parse.y"
{ yyval = mkstate( SYM_EPSILON ); }
break;
#line 1397 "y.tab.c"
    }
    yyssp -= yym;
    yystate = *yyssp;
    yyvsp -= yym;
    yym = yylhs[yyn];
    if (yystate == 0 && yym == 0)
    {
#if YYDEBUG
        if (yydebug)
            printf("%sdebug: after reduction, shifting from state 0 to\
 state %d\n", YYPREFIX, YYFINAL);
#endif
        yystate = YYFINAL;
        *++yyssp = YYFINAL;
        *++yyvsp = yyval;
        if (yychar < 0)
        {
            if ((yychar = yylex()) < 0) yychar = 0;
#if YYDEBUG
            if (yydebug)
            {
                yys = 0;
                if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
                if (!yys) yys = "illegal-symbol";
                printf("%sdebug: state %d, reading %d (%s)\n",
                        YYPREFIX, YYFINAL, yychar, yys);
            }
#endif
        }
        if (yychar == 0) goto yyaccept;
        goto yyloop;
    }
    if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
            yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
        yystate = yytable[yyn];
    else
        yystate = yydgoto[yym];
#if YYDEBUG
    if (yydebug)
        printf("%sdebug: after reduction, shifting from state %d \
to state %d\n", YYPREFIX, *yyssp, yystate);
#endif
    if (yyssp >= yyss + yystacksize - 1)
    {
        goto yyoverflow;
    }
    *++yyssp = yystate;
    *++yyvsp = yyval;
    goto yyloop;
yyoverflow:
    yyerror("yacc stack overflow");
yyabort:
    return (1);
yyaccept:
    return (0);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色妹子一区二区| 曰韩精品一区二区| 久久久久综合网| 亚洲国产精品t66y| 亚洲成人第一页| 蜜臀av性久久久久av蜜臀妖精| 久国产精品韩国三级视频| 国产麻豆一精品一av一免费| 91女神在线视频| 精品视频一区二区不卡| 精品欧美一区二区三区精品久久| 国产欧美日韩不卡| 亚洲愉拍自拍另类高清精品| 久久国产欧美日韩精品| 99久久99精品久久久久久| 欧美日韩高清一区二区不卡| 久久久久久亚洲综合| 亚洲另类春色校园小说| 国产永久精品大片wwwapp| 在线视频欧美区| 久久嫩草精品久久久精品| 伊人婷婷欧美激情| 国产精品夜夜爽| 欧美日韩国产精品自在自线| 国产欧美久久久精品影院| 亚洲成人精品一区二区| 成人18精品视频| 日韩一区二区三区在线| 亚洲视频一二三区| 激情文学综合插| 欧美日韩视频在线第一区| 国产欧美精品一区aⅴ影院| 日韩电影免费在线观看网站| 91在线视频播放| 2023国产精品| 香蕉乱码成人久久天堂爱免费| 成人午夜视频在线| 欧美成人精品1314www| 亚洲永久免费av| a4yy欧美一区二区三区| 久久亚洲精品国产精品紫薇| 亚洲成人第一页| 色猫猫国产区一区二在线视频| 久久久久久夜精品精品免费| 免费观看91视频大全| 色婷婷av一区二区三区大白胸| 国产女同互慰高潮91漫画| 久久er精品视频| 欧美丰满少妇xxxxx高潮对白| 中文字幕亚洲区| 国产成人综合亚洲网站| 欧美成人猛片aaaaaaa| 日本在线不卡视频一二三区| 欧美无砖专区一中文字| 亚洲麻豆国产自偷在线| 波多野结衣在线一区| 久久久久国产免费免费| 国内精品伊人久久久久影院对白| 欧美精品丝袜久久久中文字幕| 亚洲综合一二区| 91美女片黄在线观看91美女| 中文字幕欧美国产| 国产精品一区二区91| 精品久久久久久亚洲综合网| 免费看欧美女人艹b| 91精品国产综合久久小美女| 五月天婷婷综合| 欧美三电影在线| 亚洲成人你懂的| 精品视频1区2区| 婷婷开心激情综合| 欧美高清激情brazzers| 日韩影院在线观看| 欧美一二三在线| 日本视频中文字幕一区二区三区| 欧美高清精品3d| 蜜桃视频第一区免费观看| 日韩一区二区三区观看| 久久不见久久见中文字幕免费| 亚洲精品在线网站| 国产主播一区二区| 国产亚洲一本大道中文在线| 国产乱子伦一区二区三区国色天香| 久久先锋资源网| 国产福利一区在线| 国产精品对白交换视频| 色婷婷综合在线| 亚洲成人免费在线观看| 日韩一区二区在线观看| 国产乱码精品一区二区三| 久久精品人人做人人综合 | 欧美又粗又大又爽| 亚洲国产va精品久久久不卡综合| 欧美久久久一区| 久久机这里只有精品| 久久毛片高清国产| 99视频在线观看一区三区| 一区二区欧美国产| 欧美日韩国产免费一区二区 | 欧美一区二区三区小说| 精品中文字幕一区二区| 国产女主播视频一区二区| 色综合中文综合网| 日韩午夜电影在线观看| 国内外成人在线| |精品福利一区二区三区| 欧美伊人久久久久久午夜久久久久| 日韩国产欧美三级| 2020国产精品自拍| 91影院在线免费观看| 婷婷夜色潮精品综合在线| 久久先锋影音av鲁色资源网| 色哟哟精品一区| 青青草精品视频| 国产精品视频第一区| 欧美日韩免费高清一区色橹橹| 久久69国产一区二区蜜臀| 中文字幕一区二区三区蜜月| 欧美日韩成人一区| 国产剧情一区二区| 亚洲一区二区三区四区五区中文| 欧美成人精品福利| 一本色道久久综合亚洲精品按摩| 日韩电影免费一区| 中文字幕日韩一区| 日韩美女一区二区三区四区| 成人久久久精品乱码一区二区三区| 污片在线观看一区二区| 国产精品视频看| 日韩视频一区在线观看| 91尤物视频在线观看| 国产综合久久久久影院| 亚洲成人免费观看| 国产精品网站在线观看| 欧美一区二区成人6969| 99久久精品99国产精品 | 久久中文字幕电影| 在线观看一区二区视频| 国产精品一区二区在线看| 亚洲国产婷婷综合在线精品| 久久久久国产精品人| 777亚洲妇女| 91碰在线视频| 国产精品白丝jk黑袜喷水| 日韩在线一二三区| 一区二区三区在线播放| 日本一区二区三区四区在线视频| 555夜色666亚洲国产免| 91麻豆国产精品久久| 国产盗摄精品一区二区三区在线 | 欧美日韩午夜影院| aaa国产一区| 国产福利视频一区二区三区| 日本欧美大码aⅴ在线播放| 一区二区三区不卡视频 | www.亚洲人| 国内成+人亚洲+欧美+综合在线 | 91麻豆精品国产自产在线观看一区 | 99久久夜色精品国产网站| 麻豆精品视频在线观看| 亚洲mv大片欧洲mv大片精品| 亚洲欧美怡红院| 亚洲国产精品成人综合色在线婷婷 | 一区二区在线观看免费| 中文字幕欧美三区| 久久久www成人免费无遮挡大片| 欧美一级国产精品| 欧美美女一区二区在线观看| 在线看日韩精品电影| 91网站在线播放| 99视频在线精品| av电影在线不卡| eeuss鲁一区二区三区| 风流少妇一区二区| 国产福利91精品一区| 精品一区二区在线免费观看| 捆绑变态av一区二区三区| 美女脱光内衣内裤视频久久影院| 三级在线观看一区二区| 五月天久久比比资源色| 天堂蜜桃91精品| 日韩成人一区二区| 美女视频免费一区| 另类专区欧美蜜桃臀第一页| 久久国产人妖系列| 国产精选一区二区三区| 国产一区二区伦理| 国产精品一区免费在线观看| 国产成人精品亚洲日本在线桃色| 国产成人啪午夜精品网站男同| 国产精品66部| av中文字幕不卡| 一本色道**综合亚洲精品蜜桃冫| 色哟哟精品一区| 欧美美女一区二区三区| 日韩免费高清视频| 国产欧美中文在线| 国产精品网曝门| 亚洲另类在线制服丝袜| 午夜影院久久久|