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

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

?? shell.yacc

?? VxWorks BSP框架源代碼包含頭文件和驅動
?? YACC
?? 第 1 頁 / 共 3 頁
字號:
LOCAL void printSym (val, prefix, suffix)    FAST int val;    char *prefix;    char *suffix;    {    void *    symVal;  /* symbol value      */    SYMBOL_ID symId;   /* symbol identifier */    char *    name;    /* symbol name       */    char      demangled [MAX_SYS_SYM_LEN + 1];    char *    nameToPrint;    /* Only search for symbol value and print symbol name if value is not -1 */            if ((val != -1) && 	    (symFindSymbol (sysSymTbl, NULL, (void *)val, 		   	    SYM_MASK_NONE, SYM_MASK_NONE, &symId) == OK) &&	    (symNameGet (symId, &name) == OK) &&	    (symValueGet (symId, &symVal) == OK) &&	    (symVal != 0) && ((val - (int)symVal) < 0x1000))	    {	    printf (prefix);	    nameToPrint = cplusDemangle(name, demangled, sizeof (demangled));	    if (val == (int) symVal)	        printf ("%s", nameToPrint);	    else	        printf ("%s + 0x%x", nameToPrint, val - (int) symVal);	    printf (suffix);	    }        }/********************************************************************************* newArgList - start a new argument list*/LOCAL VALUE newArgList ()    {    VALUE value;    value.side	   = RHS;    value.type	   = T_INT;    value.value.rv = nArgs;    return (value);    }/********************************************************************************* addArg - add an argument to an argument list*/LOCAL void addArg (pArgList, pNewArg)    VALUE *pArgList;    FAST VALUE *pNewArg;    {    VALUE val;    int partA;    int partB;#if CPU_FAMILY==I960    int nArgsSave;#endif#ifndef	_WRS_NO_TGT_SHELL_FP    BOOL isfloat = pNewArg->type == T_FLOAT || pNewArg->type == T_DOUBLE;#endif	/* _WRS_NO_TGT_SHELL_FP */    SYMBOL_ID   symId;  /* symbol identifier           */    SYM_TYPE    sType;  /* place to return symbol type */#ifndef	_WRS_NO_TGT_SHELL_FP    if (isfloat)# if CPU_FAMILY!=I960	nArgs++;	/* will need an extra arg slot */# else /* CPU_FAMILY!=I960 */	{	nArgsSave = nArgs;	if (spawnFlag)	    {	    if ((nArgs %2) == 0)	  	nArgs++;	    }	else	    {	    nArgs += nArgs % 2;	/* conditionally borrow slot to double align */	    nArgs++;		/* borrow second slot for double-word value  */	    }	}# endif /* CPU_FAMILY!=I960 */#endif	/* _WRS_NO_TGT_SHELL_FP */    if (nArgs == MAX_SHELL_ARGS ||         (nArgs - pArgList->value.rv) == MAX_FUNC_ARGS)	{#ifndef	_WRS_NO_TGT_SHELL_FP	if (isfloat)# if CPU_FAMILY!=I960	    nArgs--;		/* return borrowed slot */# else  /* CPU_FAMILY!=I960 */	    nArgs = nArgsSave;	/* return borrowed slot(s) */# endif /* CPU_FAMILY!=I960 */#endif	/* _WRS_NO_TGT_SHELL_FP */	printf ("too many arguments to functions.\n");	SET_ERROR;	}    else	{	/* push arg value on top of arg stack */	(void)getRv (pNewArg, &val);#ifndef	_WRS_NO_TGT_SHELL_FP	if (isfloat)	    {# if CPU_FAMILY==I960	    if (spawnFlag == FALSE)# endif /* CPU_FAMILY==I960 */		nArgs--;	/* return borrowed slot */	    	    /* put float as integers on argStack */	    doubleToInts (pNewArg->type == T_FLOAT ?			  val.value.fp : val.value.dp,			  &partA, &partB);	    argStack[nArgs++] = partA;	    argStack[nArgs++] = partB;	    }	else if (checkRv (&val))#else	/* _WRS_NO_TGT_SHELL_FP */	if (checkRv (&val))#endif	/* _WRS_NO_TGT_SHELL_FP */	    {	    int rv;	    switch (val.type)		{		case T_BYTE:		    rv = val.value.byte;		    break;		case T_WORD:		    rv = val.value.word;		    break;		case T_INT:		    rv = val.value.rv;				    /* 		     * new symLib api - symbol name lengths are no		     * longer limited 		     */		    if (symFindSymbol (sysSymTbl, NULL, (void *)rv, 			   	       SYM_MASK_NONE, SYM_MASK_NONE, 				       &symId) == OK)		 	symTypeGet (symId, &sType);		    if ((nArgs == 0) && (sType == (N_TEXT + N_EXT)))			spawnFlag = TRUE;		    break;		default:		    rv = 0;		    printf ("addArg: bad type.\n");		    SET_ERROR;		}	    argStack[nArgs++] = rv;	    }	}    }#ifndef	_WRS_NO_TGT_SHELL_FP/********************************************************************************* doubleToInts - separate double into two integer parts*/LOCAL void doubleToInts (d, partA, partB)    double d;    int *partA;    int *partB;    {    union 	{	struct	    {	    int a;	    int b;	    } part;	double d;	} val;    val.d = d;    *partA = val.part.a;    *partB = val.part.b;    }#endif	/* _WRS_NO_TGT_SHELL_FP *//********************************************************************************* funcCall - call a function*/LOCAL VALUE funcCall (pV, pArgList)    VALUE *pV;    VALUE *pArgList;    {    static int funcStatus;	/* status from function calls */    int a [MAX_FUNC_ARGS];    VALUE value;    FAST int i;    FAST int argNum;    int oldInFd	 = ioGlobalStdGet (STD_IN);    int oldOutFd = ioGlobalStdGet (STD_OUT);    FUNCPTR pFunc = (pV->side == LHS) ? (FUNCPTR) (int)getLv (pV)				      : (FUNCPTR) pV->value.rv;#if ((CPU_FAMILY == ARM) && ARM_THUMB)    pFunc = (FUNCPTR)((UINT32)pFunc | 1);	/* make it a Thumb call */#endif    /* get any specified args off stack, or pre-set all args to 0 */    for (argNum = pArgList->value.rv, i = 0; i < MAX_FUNC_ARGS; argNum++, i++)	{	a [i] = (argNum < nArgs) ? argStack[argNum] : 0;	}    /* set standard in/out to redirection fds */    if (redirInFd >= 0)	ioGlobalStdSet (STD_IN, redirInFd);    if (redirOutFd >= 0)	ioGlobalStdSet (STD_OUT, redirOutFd);    /* call function and save resulting status */    errnoSet (funcStatus);    value.side = RHS;    value.type = pV->type;    switch (pV->type)	{	case T_BYTE:	case T_WORD:	case T_INT:	    {	    /* NOTE: THE FOLLOWING ARRAY REFERENCES MUST AGREE WITH THE	     *       MAX_FUNC_ARGS COUNT DEFINED ABOVE IN THIS FILE!	     */	    int rv = (* pFunc) (a[0], a[1], a[2], a[3], a[4], a[5], a[6],				a[7], a[8], a[9], a[10], a[11]);	    switch (pV->type)		{		case T_BYTE:		    value.value.byte = (char) rv;		    break;		case T_WORD:		    value.value.word = (short) rv;		    break;		case T_INT:		    value.value.rv = rv;		    break;		default:		    break;		}	    break;	    }#ifndef	_WRS_NO_TGT_SHELL_FP	case T_FLOAT:	    value.value.fp = (* (float (*)())pFunc) (a[0], a[1], a[2], a[3],			a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]);	    break;	case T_DOUBLE:	    value.value.dp = (* (double (*)())pFunc) (a[0], a[1], a[2], a[3],			a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]);	    break;#endif	/* _WRS_NO_TGT_SHELL_FP */	default:	    printf ("funcCall: bad function type.\n");	    SET_ERROR;	}    funcStatus = errnoGet ();    /* restore original in/out fds */    if (redirInFd >= 0)	ioGlobalStdSet (STD_IN, oldInFd);    if (redirOutFd >= 0)	ioGlobalStdSet (STD_OUT, oldOutFd);    /* arg stack back to previous level */    nArgs = pArgList->value.rv;    return (value);    }/********************************************************************************* checkLv - check that a value can be used as left value*/LOCAL BOOL checkLv (pValue)    VALUE *pValue;    {    if (pValue->side != LHS)	{	printf ("invalid application of 'address of' operator.\n");	SET_ERROR;	return (FALSE);	}    return (TRUE);    }/********************************************************************************* checkRv - check that a value can be used as right value*/LOCAL BOOL checkRv (pValue)    VALUE *pValue;    {    if (pValue->side == LHS)	return (checkLv (pValue));    return (TRUE);    }/********************************************************************************* getRv - get a value's right value */LOCAL VALUE *getRv (pValue, pRv)    FAST VALUE *pValue;    FAST VALUE *pRv;			/* where to put value */    {    if (pValue->side == RHS)	*pRv = *pValue;    else	{	pRv->side = RHS;	pRv->type = pValue->type;	switch (pValue->type)	    {	    case T_BYTE:		pRv->value.byte = *(char *)pValue->value.lv;		break;	    case T_WORD:		pRv->value.word = *(short *)pValue->value.lv;		break;	    case T_INT:		pRv->value.rv = *pValue->value.lv;		break;#ifndef	_WRS_NO_TGT_SHELL_FP	    case T_FLOAT:		pRv->value.fp = *(float *)pValue->value.lv;		break;	    case T_DOUBLE:		pRv->value.dp = *(double *)pValue->value.lv;		break;#endif	/* _WRS_NO_TGT_SHELL_FP */	    default:		printf ("getRv: invalid rhs.");		SET_ERROR;	    }	}    return (pRv);    }/********************************************************************************* getLv - get a value's left value (address)*/LOCAL int *getLv (pValue)    VALUE *pValue;    {    return (checkLv (pValue) ? pValue->value.lv : 0);    }/********************************************************************************* setLv - set a lv*/LOCAL void setLv (pVal1, pVal2)    FAST VALUE *pVal1;    FAST VALUE *pVal2;    {    if (pVal2->side == LHS)	{	printf ("setLv: invalid lhs.\n");	SET_ERROR;	}    if ((int)pVal2->type != (int)T_INT)	{	printf ("setLv: type conflict.\n");	SET_ERROR;	}    pVal1->side     = LHS;    pVal1->type     = pVal2->type;    pVal1->value.lv = (int *)pVal2->value.rv;    }/********************************************************************************* setRv - set the rv*/LOCAL void setRv (pVal1, pVal2)    FAST VALUE *pVal1;    FAST VALUE *pVal2;    {    pVal1->side = RHS;    pVal1->type = pVal2->type;    switch (pVal2->type)	{	case T_BYTE:	    pVal1->value.byte = (pVal2->side == LHS) ?			    *(char *)pVal2->value.lv : pVal2->value.byte;	case T_WORD:	    pVal1->value.word = (pVal2->side == LHS) ?			    *(short *)pVal2->value.lv : pVal2->value.word;	case T_INT:	    pVal1->value.rv = (pVal2->side == LHS) ?			    *pVal2->value.lv : pVal2->value.rv;	    break;#ifndef	_WRS_NO_TGT_SHELL_FP	case T_FLOAT:	    pVal1->value.fp = (pVal2->side == LHS) ?			    *(float *)pVal2->value.lv : pVal2->value.fp;	    break;	case T_DOUBLE:	    pVal1->value.dp = (pVal2->side == LHS) ?			    *(double *)pVal2->value.lv : pVal2->value.dp;	    break;#endif	/* _WRS_NO_TGT_SHELL_FP */	default:	    printf ("setRv: bad type.\n");	    SET_ERROR;	}    }/********************************************************************************* printLv - print left-hand side value** "ssss + xxx = xxxx"*/LOCAL void printLv (pValue)    VALUE *pValue;    {    FAST int *lv = getLv (pValue);    printSym ((int) lv, "", " = ");    printf ("0x%x", (UINT) lv);    }/********************************************************************************* printRv - print right-hand side value** The format for integers is:** "nnnn = xxxx = 'c' = ssss + nnn"*                           ^ only if nn < LIMIT for some ssss*                 ^ only if value is printable*/LOCAL void printRv (pValue)    VALUE *pValue;    {    VALUE val;    int rv;    (void)getRv (pValue, &val);    switch (pValue->type)	{	case T_BYTE:	    rv = val.value.byte;	    goto caseT_INT;	case T_WORD:	    rv = val.value.word;	    goto caseT_INT;	case T_INT:	    rv = val.value.rv;	    /* drop through */	caseT_INT:	    printf ("%d = 0x%x", rv, rv);	    if (isascii (rv) && isprint (rv))		printf (" = '%c'", rv);	    printSym (rv, " = ", "");	    break;#ifndef	_WRS_NO_TGT_SHELL_FP	case T_FLOAT:	    printf ("%g", val.value.fp);	    break;	case T_DOUBLE:	    printf ("%g", val.value.dp);	    break;#endif	/* _WRS_NO_TGT_SHELL_FP */	default:	    printf ("printRv: bad type.\n");	    SET_ERROR;	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
极品少妇xxxx精品少妇| 在线观看中文字幕不卡| 91在线观看视频| 日韩一区二区在线免费观看| 久久精品人人做人人综合| 一区二区三区不卡视频| 国产伦精品一区二区三区免费 | 青青草97国产精品免费观看无弹窗版 | 国产精品无遮挡| 日韩**一区毛片| 色婷婷久久综合| 国产精品天干天干在观线| 精品一二三四区| 欧美日本韩国一区二区三区视频| 亚洲欧洲日韩一区二区三区| 国产毛片一区二区| 欧美电影一区二区三区| 一二三区精品福利视频| 99综合影院在线| 国产精品免费丝袜| 国产一区二区导航在线播放| 欧美一区二区三区四区五区| 亚洲在线视频一区| 在线观看国产91| 亚洲色图在线视频| 白白色 亚洲乱淫| 国产精品久久久久影院亚瑟| 国产激情视频一区二区三区欧美| 日韩精品资源二区在线| 免费欧美高清视频| 欧美成人国产一区二区| 日韩av电影免费观看高清完整版 | 精品av久久707| 精品亚洲欧美一区| 精品99一区二区三区| 久久99精品一区二区三区三区| 欧美一区二区三区在线观看| 肉肉av福利一精品导航| 4hu四虎永久在线影院成人| 五月婷婷激情综合网| 欧美日韩卡一卡二| 日日骚欧美日韩| 日韩精品一区二区三区老鸭窝 | 亚洲.国产.中文慕字在线| 欧美性猛交xxxxxx富婆| 日韩精品亚洲一区二区三区免费| 91精品国产乱码久久蜜臀| 精品在线你懂的| 国产日韩欧美a| 一本久道久久综合中文字幕| 亚洲一区在线播放| 日韩欧美国产麻豆| 丁香五精品蜜臀久久久久99网站| 国产精品国产三级国产aⅴ中文| 91麻豆国产精品久久| 亚洲va欧美va人人爽午夜| 日韩欧美一级二级三级| 处破女av一区二区| 亚洲自拍另类综合| 精品国产一区二区三区久久久蜜月| 国产一二精品视频| 亚洲精品视频在线观看网站| 91超碰这里只有精品国产| 精东粉嫩av免费一区二区三区| 中文字幕精品—区二区四季| 精品视频资源站| 国产一区二区精品久久| 亚洲宅男天堂在线观看无病毒| 91精品国产品国语在线不卡| 国产精品一二三四| 亚洲一区二区三区在线播放| 26uuu国产在线精品一区二区| 91一区二区在线观看| 免费在线观看一区二区三区| 中文字幕综合网| 欧美成人精品高清在线播放| 91福利社在线观看| 韩国v欧美v日本v亚洲v| 亚洲国产成人av网| 国产精品盗摄一区二区三区| 这里只有精品免费| 色综合欧美在线视频区| 国产一区二区在线影院| 亚瑟在线精品视频| 国产精品成人午夜| 久久伊人蜜桃av一区二区| 欧美色综合天天久久综合精品| 福利91精品一区二区三区| 午夜亚洲福利老司机| 最新欧美精品一区二区三区| 精品粉嫩超白一线天av| 7777精品伊人久久久大香线蕉经典版下载 | 人人超碰91尤物精品国产| 亚洲欧美日韩小说| 国产片一区二区三区| 日韩久久久久久| 欧美精选在线播放| 在线观看av不卡| 色先锋aa成人| 99久久99久久精品免费观看| 国产综合色精品一区二区三区| 丝袜亚洲另类丝袜在线| 亚洲精品视频观看| 亚洲美女屁股眼交| 国产精品视频第一区| 久久久国产午夜精品 | 欧美视频在线一区二区三区 | 亚洲精品欧美二区三区中文字幕| 日本一区二区成人在线| 久久久国产精华| 久久精品免费在线观看| 欧美精品一区二区三区在线播放| 欧美日韩久久久久久| 欧美日韩一区在线观看| 在线亚洲免费视频| 在线观看免费一区| 欧美亚洲愉拍一区二区| 精品1区2区3区| 538在线一区二区精品国产| 欧美老年两性高潮| 欧美一区二区三区播放老司机| 欧美中文字幕一区二区三区亚洲 | 日韩免费一区二区三区在线播放| 91精品黄色片免费大全| 欧美一区二区精品久久911| 欧美一级欧美一级在线播放| 欧美一区二区人人喊爽| 亚洲精品一区二区三区在线观看| 精品国产免费久久| 国产拍欧美日韩视频二区| 国产精品私房写真福利视频| 中文字幕一区二区三区不卡 | 色综合久久中文字幕综合网| 欧美色成人综合| 日韩精品影音先锋| 中文一区在线播放| 亚洲一区二区三区在线看| 午夜精品123| 国产自产高清不卡| 99久久夜色精品国产网站| 在线观看视频91| 欧美成人官网二区| 国产精品久久久久久久第一福利| 亚洲精品免费看| 久久aⅴ国产欧美74aaa| 成人激情开心网| 欧美日韩aaa| 国产午夜精品一区二区三区视频| ...xxx性欧美| 国产精品一品二品| 色综合久久久久网| 精品日韩av一区二区| 中文字幕精品在线不卡| 五月天欧美精品| 国产麻豆精品视频| 欧美日韩免费电影| 国产午夜精品理论片a级大结局| 亚洲欧美一区二区久久| 久久精品国产久精国产| 91蝌蚪porny九色| 精品精品国产高清一毛片一天堂| 亚洲欧美一区二区三区国产精品| 美女视频黄 久久| 91在线观看污| 欧美精品一区二区高清在线观看| 亚洲乱码国产乱码精品精小说 | 精品国免费一区二区三区| 亚洲啪啪综合av一区二区三区| 另类小说欧美激情| 欧美午夜宅男影院| 中文字幕av不卡| 国产在线精品一区二区不卡了| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 久久精品免费在线观看| 日本亚洲电影天堂| 欧美亚洲综合色| 亚洲欧美一区二区三区久本道91 | 欧洲国内综合视频| 国产精品日韩成人| 国产一区二区三区精品欧美日韩一区二区三区 | 国产一区二三区| 91精品国产欧美一区二区18| 一区二区三区丝袜| av在线这里只有精品| 国产日韩在线不卡| 国产又粗又猛又爽又黄91精品| 3atv一区二区三区| 午夜精品久久久久久久| 欧美熟乱第一页| 亚洲午夜视频在线观看| 日本道在线观看一区二区| **欧美大码日韩| 99精品欧美一区二区三区小说 | 欧美一二三四区在线| 午夜精品久久久| 欧美日本精品一区二区三区| 亚洲与欧洲av电影| 欧美丝袜丝交足nylons图片| 亚洲一区二区三区自拍| 欧美日韩和欧美的一区二区|