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

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

?? tkparse.c

?? fsmlabs的real time linux的內核
?? C
?? 第 1 頁 / 共 2 頁
字號:
	match_token( token_endmenu, "endmenu" );	break;    case 'f':	match_token( token_fi, "fi" );	break;    case 'h':	match_token( token_hex, "hex" );	break;    case 'i':	match_token( token_if, "if" );	match_token( token_int, "int" );	break;    case 'm':	match_token( token_mainmenu_name, "mainmenu_name" );	match_token( token_mainmenu_option, "mainmenu_option" );	break;    case 's':	match_token( token_source, "source" );	match_token( token_string, "string" );	break;    case 't':	match_token( token_then, "then" );	match_token( token_tristate, "tristate" );	break;    case 'u':	match_token( token_unset, "unset" );	break;    }#undef match_token    if ( token == token_source )    {	while ( *pnt == ' ' || *pnt == '\t' )	    pnt++;	do_source( pnt );	return;    }    if ( token == token_then )    {	if ( config_last != NULL && config_last->token == token_if )	    return;	syntax_error( "bogus 'then'" );    }#if 0    if ( token == token_unset )    {	fprintf( stderr, "Ignoring 'unset' command\n" );	return;    }#endif    if ( token == token_UNKNOWN )	syntax_error( "unknown command" );    /*     * Allocate an item.     */    cfg = malloc( sizeof(*cfg) );    memset( cfg, 0, sizeof(*cfg) );    if ( config_last == NULL )	{ config_last = config_list = cfg; }    else	{ config_last->next = cfg; config_last = cfg; }    /*     * Tokenize the arguments.     */    while ( *pnt == ' ' || *pnt == '\t' )	pnt++;    cfg->token = token;    switch ( token )    {    default:	syntax_error( "unknown token" );    case token_bool:    case token_tristate:	pnt = get_qstring ( pnt, &cfg->label );	pnt = get_string  ( pnt, &buffer );	cfg->nameindex = get_varnum( buffer );	break;    case token_choice_header:	{	    static int choose_number = 0;	    char * choice_list;	    pnt = get_qstring ( pnt, &cfg->label  );	    pnt = get_qstring ( pnt, &choice_list );	    pnt = get_string  ( pnt, &cfg->value  );	    cfg->nameindex = -(choose_number++);	    tokenize_choices( cfg, choice_list );	    free( choice_list );	}	break;    case token_comment:	pnt = get_qstring(pnt, &cfg->label);	if ( last_menuoption != NULL )	{	    pnt = get_qstring(pnt, &cfg->label);	    last_menuoption->label = cfg->label;	    last_menuoption = NULL;	}	break;    case token_define_bool:    case token_define_tristate:	pnt = get_string( pnt, &buffer );	cfg->nameindex = get_varnum( buffer );	while ( *pnt == ' ' || *pnt == '\t' )	    pnt++;	if ( ( pnt[0] == 'Y'  || pnt[0] == 'M' || pnt[0] == 'N'	||     pnt[0] == 'y'  || pnt[0] == 'm' || pnt[0] == 'n' )	&&   ( pnt[1] == '\0' || pnt[1] == ' ' || pnt[1] == '\t' ) )	{	    if      ( *pnt == 'n' || *pnt == 'N' ) cfg->value = strdup( "CONSTANT_N" );	    else if ( *pnt == 'y' || *pnt == 'Y' ) cfg->value = strdup( "CONSTANT_Y" );	    else if ( *pnt == 'm' || *pnt == 'M' ) cfg->value = strdup( "CONSTANT_M" );	}	else if ( *pnt == '$' )	{	    pnt++;	    pnt = get_string( pnt, &cfg->value );	}	else	{	    syntax_error( "unknown define_bool value" );	}	get_varnum( cfg->value );	break;    case token_define_hex:    case token_define_int:	pnt = get_string( pnt, &buffer );	cfg->nameindex = get_varnum( buffer );	pnt = get_string( pnt, &cfg->value );	break;    case token_define_string:	pnt = get_string( pnt, &buffer );	cfg->nameindex = get_varnum( buffer );	pnt = get_qstring( pnt, &cfg->value );	break;    case token_dep_bool:    case token_dep_mbool:    case token_dep_tristate:	pnt = get_qstring ( pnt, &cfg->label );	pnt = get_string  ( pnt, &buffer );	cfg->nameindex = get_varnum( buffer );	while ( *pnt == ' ' || *pnt == '\t' )	    pnt++;	dep_ptr = &(cfg->depend);	do {	    *dep_ptr = (struct dependency *) malloc( sizeof( struct dependency ) );	    (*dep_ptr)->next = NULL;	    if ( ( pnt[0] == 'Y'  || pnt[0] == 'M' || pnt[0] == 'N'	    ||     pnt[0] == 'y'  || pnt[0] == 'm' || pnt[0] == 'n' )	    &&   ( pnt[1] == '\0' || pnt[1] == ' ' || pnt[1] == '\t' ) )	    {		/* dep_tristate 'foo' CONFIG_FOO m */		if      ( pnt[0] == 'Y' || pnt[0] == 'y' )		    (*dep_ptr)->name = strdup( "CONSTANT_Y" );		else if ( pnt[0] == 'N' || pnt[0] == 'n' )		    (*dep_ptr)->name = strdup( "CONSTANT_N" );		else		    (*dep_ptr)->name = strdup( "CONSTANT_M" );		pnt++;		get_varnum( (*dep_ptr)->name );	    }	    else if ( *pnt == '$' )	    {		pnt++;		pnt = get_string( pnt, &(*dep_ptr)->name );		get_varnum( (*dep_ptr)->name );	    }	    else	    {		syntax_error( "can't handle dep_bool/dep_mbool/dep_tristate condition" );	    }	    dep_ptr = &(*dep_ptr)->next;	    while ( *pnt == ' ' || *pnt == '\t' )		pnt++;	} while ( *pnt );	/*	 * Create a conditional for this object's dependencies.	 */	{	    char fake_if [1024];	    struct dependency * dep;	    struct condition ** cond_ptr;	    int first = 1;	    cond_ptr = &(cfg->cond);	    for ( dep = cfg->depend; dep; dep = dep->next )	    {		if ( token == token_dep_tristate		&& ! strcmp( dep->name, "CONSTANT_M" ) )		{		    continue;		}		if ( first )		{		    first = 0;		}		else		{		    *cond_ptr = malloc( sizeof(struct condition) );		    memset( *cond_ptr, 0, sizeof(struct condition) );		    (*cond_ptr)->op = op_and;		    cond_ptr = &(*cond_ptr)->next;		}		*cond_ptr = malloc( sizeof(struct condition) );		memset( *cond_ptr, 0, sizeof(struct condition) );		(*cond_ptr)->op = op_lparen;		if ( token == token_dep_bool )		    sprintf( fake_if, "[ \"$%s\" = \"y\" -o \"$%s\" = \"\" ]; then",			dep->name, dep->name );		else		    sprintf( fake_if, "[ \"$%s\" = \"y\" -o \"$%s\" = \"m\" -o \"$%s\" = \"\" ]; then",			dep->name, dep->name, dep->name );		(*cond_ptr)->next = tokenize_if( fake_if );		while ( *cond_ptr )		    cond_ptr = &(*cond_ptr)->next;		*cond_ptr = malloc( sizeof(struct condition) );		memset( *cond_ptr, 0, sizeof(struct condition) );		(*cond_ptr)->op = op_rparen;		cond_ptr = &(*cond_ptr)->next;	    }	}	break;    case token_else:    case token_endmenu:    case token_fi:	break;    case token_hex:    case token_int:	pnt = get_qstring ( pnt, &cfg->label );	pnt = get_string  ( pnt, &buffer );	cfg->nameindex = get_varnum( buffer );	pnt = get_string  ( pnt, &cfg->value );	break;    case token_string:	pnt = get_qstring ( pnt, &cfg->label );	pnt = get_string  ( pnt, &buffer );	cfg->nameindex = get_varnum( buffer );	pnt = get_qstring  ( pnt, &cfg->value );	break;    case token_if:	cfg->cond = tokenize_if( pnt );	break;    case token_mainmenu_name:	pnt = get_qstring( pnt, &cfg->label );	break;    case token_mainmenu_option:	if ( strncmp( pnt, "next_comment", 12 ) == 0 )	    last_menuoption = cfg;	else	    pnt = get_qstring( pnt, &cfg->label );	break;    case token_unset:	pnt = get_string( pnt, &buffer );	cfg->nameindex = get_varnum( buffer );	while ( *pnt == ' ' || *pnt == '\t' )	    pnt++;	while (*pnt)	{	    cfg->next = (struct kconfig *) malloc( sizeof(struct kconfig) );	    memset( cfg->next, 0, sizeof(struct kconfig) );	    cfg = cfg->next;	    cfg->token = token_unset;	    pnt = get_string( pnt, &buffer );	    cfg->nameindex = get_varnum( buffer );	    while ( *pnt == ' ' || *pnt == '\t' )		pnt++;	}	break;    }    return;}/* * Implement the "source" command. */static void do_source( const char * filename ){    char buffer [1024];    FILE * infile;    const char * old_file;    int old_lineno;    int offset;    /* open the file */    if ( strcmp( filename, "-" ) == 0 )	infile = stdin;    else	infile = fopen( filename, "r" );    /* if that failed, try ../filename */    if ( infile == NULL )    {	sprintf( buffer, "../%s", filename );	infile = fopen( buffer, "r" );    }    if ( infile == NULL )    {	sprintf( buffer, "unable to open %s", filename );	syntax_error( buffer );    }    /* push the new file name and line number */    old_file     = current_file;    old_lineno   = lineno;    current_file = filename;    lineno       = 0;    /* read and process lines */    for ( offset = 0; ; )    {	char * pnt;	/* read a line */	fgets( buffer + offset, sizeof(buffer) - offset, infile );	if ( feof( infile ) )	    break;	lineno++;	/* strip the trailing return character */	pnt = buffer + strlen(buffer) - 1;	if ( *pnt == '\n' )	    *pnt-- = '\0';	/* eat \ NL pairs */	if ( *pnt == '\\' )	{	    offset = pnt - buffer;	    continue;	}	/* tokenize this line */	tokenize_line( buffer );	offset = 0;    }    /* that's all, folks */    if ( infile != stdin )	fclose( infile );    current_file = old_file;    lineno       = old_lineno;    return;}/* * Main program. */int main( int argc, const char * argv [] ){    do_source        ( "-"         );    fix_conditionals ( config_list );    dump_tk_script   ( config_list );    return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩三级中文字幕| 亚洲成a人片在线观看中文| 亚洲欧美日韩中文字幕一区二区三区| 亚洲乱码国产乱码精品精的特点| 午夜欧美电影在线观看| 成人免费视频播放| 欧美一级黄色片| 亚洲男女毛片无遮挡| 国产一区在线精品| 777色狠狠一区二区三区| 日韩一区中文字幕| 国产一区二区三区在线观看免费| 欧美在线观看禁18| 国产精品第四页| 国产一区在线精品| 91.com在线观看| 亚洲一区在线看| www.色综合.com| 久久久久久久电影| 精品一区二区三区蜜桃| 欧美久久久久久久久久| 一级特黄大欧美久久久| 成人毛片在线观看| 国产性色一区二区| 韩国成人在线视频| 精品国产乱码久久久久久久| 日韩国产欧美三级| 欧美日韩亚洲丝袜制服| 亚洲一区在线视频观看| 色999日韩国产欧美一区二区| 国产精品欧美一区二区三区| 精品在线观看免费| ww亚洲ww在线观看国产| 麻豆精品新av中文字幕| 欧美一级片在线观看| 午夜成人免费视频| 欧美福利一区二区| 视频一区视频二区在线观看| 欧美人xxxx| 精品写真视频在线观看 | 欧美zozozo| 老司机精品视频线观看86| 色噜噜狠狠色综合中国| 亚洲精品美国一| 欧美午夜寂寞影院| 午夜视黄欧洲亚洲| 精品美女在线观看| 国产自产2019最新不卡| 国产精品天干天干在观线| 91农村精品一区二区在线| 1024亚洲合集| 欧美午夜精品电影| 免费一级片91| 欧美国产综合色视频| 色成人在线视频| 日本不卡123| 久久久久久99精品| 在线视频国内一区二区| 石原莉奈在线亚洲二区| 久久久亚洲高清| 一本到不卡免费一区二区| 日韩av电影免费观看高清完整版| 日韩欧美一区电影| 成人精品国产福利| 婷婷久久综合九色国产成人| 欧美大胆人体bbbb| jiyouzz国产精品久久| 亚洲与欧洲av电影| 亚洲另类春色国产| 91成人网在线| 蜜臀av一区二区在线免费观看| 精品国产乱码久久久久久图片| 粉嫩高潮美女一区二区三区| 亚洲综合男人的天堂| 91精品国产一区二区人妖| 国产精品99久久久| 午夜久久电影网| 国产亲近乱来精品视频| 欧美日韩一区精品| 国产成人99久久亚洲综合精品| 亚洲一二三区不卡| 国产网站一区二区| 91福利在线导航| 欧美视频一区二区| 成人美女在线观看| 美国十次综合导航| 一区二区三区精品在线| 久久精品无码一区二区三区| 欧美日韩一区成人| 色老汉一区二区三区| 国产一区免费电影| 免费在线观看一区| 亚洲成年人网站在线观看| 中文字幕一区在线观看| 26uuu成人网一区二区三区| 欧美日韩www| 在线免费视频一区二区| 成人av网站在线| 国产成人免费在线观看| 麻豆精品蜜桃视频网站| 香蕉av福利精品导航| 亚洲乱码国产乱码精品精的特点| 国产午夜精品久久久久久免费视| 欧美成人aa大片| 4438x成人网最大色成网站| 在线亚洲人成电影网站色www| 国产精品1区2区3区在线观看| 蜜臀精品一区二区三区在线观看| 亚洲一区二区av在线| 亚洲精品中文在线| 日韩毛片精品高清免费| 国产精品久久久久一区二区三区共 | 国产91色综合久久免费分享| 久久爱www久久做| 免费在线观看视频一区| 美女精品自拍一二三四| 秋霞电影网一区二区| 午夜精品视频一区| 日韩精品一二区| 日本欧美肥老太交大片| 另类小说一区二区三区| 久久er99热精品一区二区| 久久精品国产亚洲高清剧情介绍 | 欧美日韩一级黄| 欧美欧美欧美欧美| 3d动漫精品啪啪| 欧美大片在线观看一区| 2021中文字幕一区亚洲| 久久久久9999亚洲精品| 欧美国产综合色视频| 亚洲色图第一区| 亚洲一区在线观看网站| 日本成人中文字幕在线视频| 日本不卡在线视频| 国产一区二区三区免费观看| 东方aⅴ免费观看久久av| 99久久久久久| 欧美日韩中文字幕一区| 日韩亚洲欧美一区二区三区| 精品毛片乱码1区2区3区| 欧美激情一区二区三区在线| 亚洲三级视频在线观看| 爽好多水快深点欧美视频| 毛片基地黄久久久久久天堂| 国产成人aaa| 欧美日韩久久一区| 欧美精品一区二区三区一线天视频 | 午夜日韩在线观看| 国模娜娜一区二区三区| av亚洲精华国产精华| 欧美精品三级在线观看| 久久久久久久久99精品| 亚洲精品美国一| 看片网站欧美日韩| 91视频在线观看| 日韩午夜av一区| 亚洲精品国产视频| 九九久久精品视频| 97久久超碰国产精品| 欧美精品99久久久**| 久久亚洲精品国产精品紫薇| 亚洲欧美日韩综合aⅴ视频| 欧美a级理论片| 97成人超碰视| 精品国产三级电影在线观看| 国产精品午夜免费| 麻豆国产精品777777在线| 99热精品一区二区| 精品国产乱码久久久久久蜜臀| **欧美大码日韩| 国产一区二区三区在线观看免费视频| 欧洲亚洲精品在线| 国产网站一区二区| 蓝色福利精品导航| 欧美精选一区二区| 一区二区视频免费在线观看| 国产91清纯白嫩初高中在线观看 | 在线这里只有精品| 国产精品国产三级国产a| 蜜臀久久99精品久久久画质超高清 | 亚洲日本va午夜在线影院| 久久精品二区亚洲w码| 欧美特级限制片免费在线观看| 久久精品视频免费| 狠狠色狠狠色综合系列| 日韩亚洲欧美在线| 天天色综合天天| 欧美精品丝袜中出| 丝袜亚洲另类欧美| 欧美色综合网站| 亚洲一线二线三线视频| 色婷婷香蕉在线一区二区| 中文欧美字幕免费| 国产精品亚洲一区二区三区妖精 | 91精品在线观看入口| 夜夜嗨av一区二区三区| 91成人在线精品| 亚洲午夜影视影院在线观看| 色婷婷亚洲精品| 亚洲国产一二三|