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

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

?? nfa.c

?? flex 詞法分析工具 類似于lex 此版本為較早前的版本
?? C
?? 第 1 頁 / 共 2 頁
字號:
 * *   branch = mkbranch( first, second ); * *     branch - a machine which matches either first's pattern or second's *     first, second - machines whose patterns are to be or'ed (the | operator) * * Note that first and second are NEITHER destroyed by the operation.  Also, * the resulting machine CANNOT be used with any other "mk" operation except * more mkbranch's.  Compare with mkor() */int mkbranch( first, second )int first, second;	{	int eps;	if ( first == NO_TRANSITION )		return second;	else if ( second == NO_TRANSITION )		return first;	eps = mkstate( SYM_EPSILON );	mkxtion( eps, first );	mkxtion( eps, second );	return eps;	}/* mkclos - convert a machine into a closure * * synopsis *   new = mkclos( state ); * * new - a new state which matches the closure of "state" */int mkclos( state )int state;	{	return mkopt( mkposcl( state ) );	}/* mkopt - make a machine optional * * synopsis * *   new = mkopt( mach ); * *     new  - a machine which optionally matches whatever mach matched *     mach - the machine to make optional * * notes: *     1. mach must be the last machine created *     2. mach is destroyed by the call */int mkopt( mach )int mach;	{	int eps;	if ( ! SUPER_FREE_EPSILON(finalst[mach]) )		{		eps = mkstate( SYM_EPSILON );		mach = link_machines( mach, eps );		}	/* Can't skimp on the following if FREE_EPSILON(mach) is true because	 * some state interior to "mach" might point back to the beginning	 * for a closure.	 */	eps = mkstate( SYM_EPSILON );	mach = link_machines( eps, mach );	mkxtion( mach, finalst[mach] );	return mach;	}/* mkor - make a machine that matches either one of two machines * * synopsis * *   new = mkor( first, second ); * *     new - a machine which matches either first's pattern or second's *     first, second - machines whose patterns are to be or'ed (the | operator) * * note that first and second are both destroyed by the operation * the code is rather convoluted because an attempt is made to minimize * the number of epsilon states needed */int mkor( first, second )int first, second;	{	int eps, orend;	if ( first == NIL )		return second;	else if ( second == NIL )		return first;	else		{		/* See comment in mkopt() about why we can't use the first		 * state of "first" or "second" if they satisfy "FREE_EPSILON".		 */		eps = mkstate( SYM_EPSILON );		first = link_machines( eps, first );		mkxtion( first, second );		if ( SUPER_FREE_EPSILON(finalst[first]) &&		     accptnum[finalst[first]] == NIL )			{			orend = finalst[first];			mkxtion( finalst[second], orend );			}		else if ( SUPER_FREE_EPSILON(finalst[second]) &&			  accptnum[finalst[second]] == NIL )			{			orend = finalst[second];			mkxtion( finalst[first], orend );			}		else			{			eps = mkstate( SYM_EPSILON );			first = link_machines( first, eps );			orend = finalst[first];			mkxtion( finalst[second], orend );			}		}	finalst[first] = orend;	return first;	}/* mkposcl - convert a machine into a positive closure * * synopsis *   new = mkposcl( state ); * *    new - a machine matching the positive closure of "state" */int mkposcl( state )int state;	{	int eps;	if ( SUPER_FREE_EPSILON(finalst[state]) )		{		mkxtion( finalst[state], state );		return state;		}	else		{		eps = mkstate( SYM_EPSILON );		mkxtion( eps, state );		return link_machines( state, eps );		}	}/* mkrep - make a replicated machine * * synopsis *   new = mkrep( mach, lb, ub ); * *    new - a machine that matches whatever "mach" matched from "lb" *          number of times to "ub" number of times * * note *   if "ub" is INFINITY then "new" matches "lb" or more occurrences of "mach" */int mkrep( mach, lb, ub )int mach, lb, ub;	{	int base_mach, tail, copy, i;	base_mach = copysingl( mach, lb - 1 );	if ( ub == INFINITY )		{		copy = dupmachine( mach );		mach = link_machines( mach,		link_machines( base_mach, mkclos( copy ) ) );		}	else		{		tail = mkstate( SYM_EPSILON );		for ( i = lb; i < ub; ++i )			{			copy = dupmachine( mach );			tail = mkopt( link_machines( copy, tail ) );			}		mach = link_machines( mach, link_machines( base_mach, tail ) );		}	return mach;	}/* mkstate - create a state with a transition on a given symbol * * synopsis * *   state = mkstate( sym ); * *     state - a new state matching sym *     sym   - the symbol the new state is to have an out-transition on * * note that this routine makes new states in ascending order through the * state array (and increments LASTNFA accordingly).  The routine DUPMACHINE * relies on machines being made in ascending order and that they are * CONTIGUOUS.  Change it and you will have to rewrite DUPMACHINE (kludge * that it admittedly is) */int mkstate( sym )int sym;	{	if ( ++lastnfa >= current_mns )		{		if ( (current_mns += MNS_INCREMENT) >= MAXIMUM_MNS )			lerrif(		_( "input rules are too complicated (>= %d NFA states)" ),				current_mns );		++num_reallocs;		firstst = reallocate_integer_array( firstst, current_mns );		lastst = reallocate_integer_array( lastst, current_mns );		finalst = reallocate_integer_array( finalst, current_mns );		transchar = reallocate_integer_array( transchar, current_mns );		trans1 = reallocate_integer_array( trans1, current_mns );		trans2 = reallocate_integer_array( trans2, current_mns );		accptnum = reallocate_integer_array( accptnum, current_mns );		assoc_rule =			reallocate_integer_array( assoc_rule, current_mns );		state_type =			reallocate_integer_array( state_type, current_mns );		}	firstst[lastnfa] = lastnfa;	finalst[lastnfa] = lastnfa;	lastst[lastnfa] = lastnfa;	transchar[lastnfa] = sym;	trans1[lastnfa] = NO_TRANSITION;	trans2[lastnfa] = NO_TRANSITION;	accptnum[lastnfa] = NIL;	assoc_rule[lastnfa] = num_rules;	state_type[lastnfa] = current_state_type;	/* Fix up equivalence classes base on this transition.  Note that any	 * character which has its own transition gets its own equivalence	 * class.  Thus only characters which are only in character classes	 * have a chance at being in the same equivalence class.  E.g. "a|b"	 * puts 'a' and 'b' into two different equivalence classes.  "[ab]"	 * puts them in the same equivalence class (barring other differences	 * elsewhere in the input).	 */	if ( sym < 0 )		{		/* We don't have to update the equivalence classes since		 * that was already done when the ccl was created for the		 * first time.		 */		}	else if ( sym == SYM_EPSILON )		++numeps;	else		{		check_char( sym );		if ( useecs )			/* Map NUL's to csize. */			mkechar( sym ? sym : csize, nextecm, ecgroup );		}	return lastnfa;	}/* mkxtion - make a transition from one state to another * * synopsis * *   mkxtion( statefrom, stateto ); * *     statefrom - the state from which the transition is to be made *     stateto   - the state to which the transition is to be made */void mkxtion( statefrom, stateto )int statefrom, stateto;	{	if ( trans1[statefrom] == NO_TRANSITION )		trans1[statefrom] = stateto;	else if ( (transchar[statefrom] != SYM_EPSILON) ||		  (trans2[statefrom] != NO_TRANSITION) )		flexfatal( _( "found too many transitions in mkxtion()" ) );	else		{ /* second out-transition for an epsilon state */		++eps2;		trans2[statefrom] = stateto;		}	}/* new_rule - initialize for a new rule */void new_rule()	{	if ( ++num_rules >= current_max_rules )		{		++num_reallocs;		current_max_rules += MAX_RULES_INCREMENT;		rule_type = reallocate_integer_array( rule_type,							current_max_rules );		rule_linenum = reallocate_integer_array( rule_linenum,							current_max_rules );		rule_useful = reallocate_integer_array( rule_useful,							current_max_rules );		}	if ( num_rules > MAX_RULE )		lerrif( _( "too many rules (> %d)!" ), MAX_RULE );	rule_linenum[num_rules] = linenum;	rule_useful[num_rules] = false;	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品色哟哟| 日韩成人伦理电影在线观看| 国产精品自拍一区| 国产亚洲精品资源在线26u| 精品一区二区免费| 中文字幕亚洲一区二区va在线| 波多野结衣一区二区三区| 亚洲精品乱码久久久久久久久 | 91美女在线观看| 五月婷婷久久丁香| 久久精品亚洲一区二区三区浴池| 成人午夜私人影院| 亚洲国产精品一区二区久久恐怖片 | 欧美欧美欧美欧美| 成人教育av在线| 天天操天天色综合| 亚洲欧洲精品一区二区三区不卡| 在线观看中文字幕不卡| 国产经典欧美精品| 奇米色777欧美一区二区| 亚洲蜜臀av乱码久久精品| 日韩欧美国产不卡| 在线观看www91| 色婷婷激情综合| 99麻豆久久久国产精品免费优播| 日韩avvvv在线播放| 一区二区久久久| 国产精品久久777777| 国产亚洲精久久久久久| 精品久久久网站| 久久久久九九视频| 久久久91精品国产一区二区精品| 欧美一区二区三区在线电影| 97久久精品人人做人人爽| 欧美videos大乳护士334| 色老汉一区二区三区| 2020国产精品自拍| 不卡av电影在线播放| 美女久久久精品| 亚洲成av人影院| 成人午夜电影网站| 免费看日韩a级影片| 久久精品噜噜噜成人88aⅴ | 不卡一卡二卡三乱码免费网站| 黄页网站大全一区二区| 国产成人午夜高潮毛片| 99久久综合国产精品| 日本韩国欧美一区| 欧美电影免费观看高清完整版在线观看| 欧美日韩久久不卡| 欧美视频在线播放| 99久久综合色| 在线不卡免费欧美| 亚洲婷婷综合色高清在线| 性做久久久久久免费观看| 国产自产高清不卡| 在线区一区二视频| 欧美激情一区二区三区在线| 亚洲精品成人悠悠色影视| 免费成人美女在线观看.| 波多野结衣中文一区| 精品国产免费人成电影在线观看四季| 中文字幕av一区二区三区高| 人妖欧美一区二区| 在线观看日韩电影| 亚洲精品国产无套在线观| 精品伊人久久久久7777人| 欧美视频在线观看一区二区| 亚洲视频在线一区| 成人亚洲精品久久久久软件| 欧美精品一区二区三区久久久| 性感美女久久精品| 日韩一区二区三区视频在线| 亚洲成人免费视频| 欧美一区二区三区在线观看| 亚洲综合激情另类小说区| 成人激情小说网站| 一区二区三区高清| 欧美日韩国产影片| 婷婷综合五月天| 91精品综合久久久久久| 亚洲国产精品久久艾草纯爱| 91福利在线观看| 久久精品免费观看| 国产精品天美传媒| 欧洲中文字幕精品| 另类人妖一区二区av| 中文字幕免费观看一区| 色婷婷av一区二区三区软件| 亚洲宅男天堂在线观看无病毒| 日韩午夜激情av| 91麻豆精东视频| 老司机免费视频一区二区三区| 久久女同互慰一区二区三区| 日本精品免费观看高清观看| 亚洲成av人综合在线观看| 国产女同性恋一区二区| 欧美精品自拍偷拍| 色综合一个色综合亚洲| 精久久久久久久久久久| 亚洲国产另类精品专区| 国产偷国产偷亚洲高清人白洁| 在线精品观看国产| www.日韩精品| 粉嫩久久99精品久久久久久夜| 午夜欧美视频在线观看| 亚洲欧洲色图综合| 国产精品麻豆99久久久久久| 欧美一区二区三区的| 欧美美女一区二区三区| 欧美三级在线播放| 欧美色图片你懂的| 欧美性一级生活| 欧美亚洲国产一区二区三区va | 欧美日韩视频不卡| 在线观看国产日韩| 欧美日韩在线精品一区二区三区激情 | 成人免费看黄yyy456| 国产乱子伦视频一区二区三区| 日韩精品电影在线| 精品一区二区免费在线观看| 国产中文一区二区三区| 精品一区二区三区免费播放| 国产精品伊人色| 99国产精品久久久久| 在线亚洲一区观看| 日韩欧美一级在线播放| 久久久久久亚洲综合影院红桃| 欧美精品一区二区三区蜜桃视频| 2024国产精品视频| 亚洲色图色小说| 男男视频亚洲欧美| av色综合久久天堂av综合| 欧美三级视频在线播放| 精品国产免费人成在线观看| 亚洲欧美怡红院| 日日摸夜夜添夜夜添亚洲女人| 久久99热狠狠色一区二区| 91在线观看污| 精品国产污污免费网站入口| 亚洲精品成人在线| 国产不卡视频一区| 亚洲精品在线观| 五月天丁香久久| 在线精品视频一区二区三四 | 日韩一卡二卡三卡| 亚洲国产毛片aaaaa无费看 | 中文字幕日韩一区二区| 免费成人性网站| 欧美视频在线一区二区三区| 国产精品卡一卡二| 国模冰冰炮一区二区| 欧美精品1区2区3区| 亚洲国产精品久久人人爱| 91小视频在线| 中文字幕亚洲欧美在线不卡| 黄色资源网久久资源365| 9191成人精品久久| 日韩1区2区3区| 欧美一级艳片视频免费观看| 国产精品美女久久久久av爽李琼| 国产在线观看免费一区| 日韩一级完整毛片| 国产成人无遮挡在线视频| 欧美国产1区2区| 99国产麻豆精品| 欧美aaa在线| 久久综合九色综合97婷婷| 成人精品国产一区二区4080| 中文字幕中文字幕一区| 欧美午夜宅男影院| 蜜桃在线一区二区三区| 欧美成人猛片aaaaaaa| 韩日av一区二区| 亚洲综合精品自拍| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 欧美在线视频不卡| 久久国内精品视频| 亚洲一区二区五区| 久久久久久久久久久久电影 | 国产日韩欧美精品一区| 色哦色哦哦色天天综合| 国内精品伊人久久久久av一坑| 国产精品色哟哟| 日韩美女视频在线| 在线影院国内精品| 成人高清在线视频| 国产原创一区二区| 国产在线视视频有精品| 日韩女优制服丝袜电影| 精品亚洲porn| 精品久久久久一区| 国产精品一线二线三线精华| 日韩一区二区三区免费观看| 国产综合色在线| 国产精品伦理一区二区| 婷婷久久综合九色国产成人| 欧美mv日韩mv| 欧美xfplay| 欧美日韩精品欧美日韩精品一综合|