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

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

?? shell.c

?? vxworks5.5.1源代碼。完整源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
# line 2 "shell.yacc"/* shell.yacc - grammar for VxWorks shell *//* Copyright 1984-2001 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------07m,16oct01,jn   use symFindSymbol for symbol lookups07l,27nov01,pch  Provide floating-point exclusion based on _WRS_NO_TGT_SHELL_FP		 definition instead of testing a specific CPU type.07k,23oct01,fmk  Do not call symFindByValue and print symbol name if symbol                 value = -1 SPR 2225407j,04sep98,cdp  apply 07i for all ARM CPUs with ARM_THUMB==TRUE.07i,30jul97,cdp  for ARM7TDMI_T, force calls to be in Thumb state.07h,31may96,ms   added in patch for SPR 4439.07g,19mar95,dvs  removed tron references.07f,02mar95,yao  removed floating point temporarily for PPC403.07e,19mar95,dvs  removed tron references.07d,13feb93,kdl  changed cplusLib.h to private/cplusLibP.h (SPR #1917).07c,03sep92,wmd  modified addArg() to pass floats correcty for the i960.07b,03sep92,rrr  reduced max function arguments from 16 to 12 (for i960).07a,31aug92,kdl  fixed passing of more than 10 parameters during funcCall();		 changed MAX_ARGS to MAX_SHELL_ARGS.06z,19aug92,jmm  fixed problem with not recognizing <= (SPR 1517)06y,01aug92,srh  added C++ demangling idiom to printSym.                 added include of cplusLib.h.06x,20jul92,jmm  added group parameter to symAdd call06w,23jun92,kdl  increased max function arguments from 10 to 16.06v,22jun92,jmm  backed out 6u change, now identical to gae's 21dec revision06u,22jun92,jmm  added group parameter to symAdd06t,21dec91,gae  more ANSI cleanups.06s,19nov91,rrr  shut up some warnings.06r,05oct91,rrr  changed strLib.h to string.h06q,02jun91,del  added I960 parameter alignment fixes.06p,10aug90,kdl  added forward declarations for functions returning VOID.06o,10jul90,dnw  spr 738: removed checking of access (checkAccess, chkLvAccess)		   Access checking did vxMemProbe with 4 byte read, which		   caused problems with memory or devices that couldn't do		   4 byte reads but could do other types of access.		   Access checking was actually a throw-back to a time when		   the shell couldn't recover from bus errors, but it can now.		   So I just deleted the access checking.		 lint clean-up, esp to allow VOID to be void one day.06n,10dec89,jcf  symbol table type now a SYM_TYPE.06m,09aug89,gae  fixed copyright notice.06l,30jul89,gae  changed obsolete sysMemProbe to vxMemProbe. 06k,07jul88,jcf  changed malloc to match new declaration.06j,30may88,dnw  changed to v4 names.06i,01apr88,gae  made it work with I/O system changes -- io{G,S}etGlobalStd().06h,20feb88,dnw  lint06g,14dec87,dnw  removed checking for odd byte address access.		 changed printing format of doubles from "%f" to "%g". 06f,18nov87,gae  made assignment to be of type specified by rhs.06e,07nov87,gae  fixed undefined symbol bug.		 fixed history bug by redirecting LED I/O.06d,03nov87,ecs  documentation.06c,28oct87,gae  got rid of string type.06b,06oct87,gae  split off "execution" portion to shellExec.c.		 changed to use conventional C type casting.		 provided more info for invalid yacc operations.		 allowed expressions to be function addresses.06a,01jun87,gae  added interpretation of bytes, words, floats, doubles;		   expressions can now be "typed" a la assembler, .[bwfdls].		 fixed redirection bug with ">>" and "<<".05i,16jul87,ecs  fixed newSym so that new symbols will be global.05h,01apr87,gae  made assign() not print "new value" message (duplicated		   normal "value" message for expressions.05g,25apr87,gae  fixed bug in assign() that allowed memory corruption.		 checked h() parameter for greater than or equal to zero.		 improved redirection detection.		 now parse assignments correctly as expressions.05f,01apr87,ecs  added include of strLib.h.05e,20jan87,jlf  documentation.05d,14jan87,gae  got rid of unused curLineNum.  h() now has parameter, if		   non-zero then resets history to that size.05c,20dec86,dnw  changed to not get include files from default directories.05b,18dec86,gae  made history initialization only happen on first start of		   shell.  Added neStmt to fix empty stmt assignment bug.05a,17dec86,gae	 use new shCmd() in execShell() to do Korn shell-like input.04q,08dec86,dnw  changed shell.slex.c to shell_slex.c for VAX/VMS compatiblity.	    jlf  fixed a couple bugs causing problems mainly on Heurikon port.04p,24nov86,llk  deleted SYSTEM conditional compiles.04o,08oct86,gae  added C assignment operators; allowed multiple assignment.		 STRINGs are no longer temporary.  Added setShellPrompt().04n,27jul86,llk  added standard error fd, setOrigErrFd.04m,17jun86,rdc  changed memAllocates to mallocs.04l,08apr86,dnw  added call to vxSetTaskBreakable to make shell unbreakable.		 changed sstLib calls to symLib.04k,02apr86,rdc  added routines setOrigInFd and setOrigOutFd.04j,18jan86,dnw  removed resetting (flushing) for standard in/out upon restarts;		   this is now done more appropriately by the shell restart		   routine in dbgLib....deleted pre 86 history - see RCS*//*DESCRIPTIONThis is the parser for the VxWorks shell, written in yacc.It provides the basic programmer's interface to VxWorks.It is a C expression interpreter, containing no built-in commands.  SEE ALSO: "Shell"*/#include "vxWorks.h"#include "sysSymTbl.h"#include "errno.h"#include "errnoLib.h"#include "ioLib.h"#include "taskLib.h"#include "stdio.h"#include "private/cplusLibP.h"#define YYSTYPE VALUE		/* type of parse stack */#define	MAX_SHELL_LINE	128	/* max chars on line typed to shell */#define MAX_SHELL_ARGS	30	/* max number of args on stack */#define MAX_FUNC_ARGS	12	/* max number of args to any one function */				/*  NOTE: The array indices in funcCall()				 *        must agree with MAX_FUNC_ARGS!!				 */#define BIN_OP(op)	rvOp((getRv(&yypvt[-2], &tmpVal1)), op, \			      getRv(&yypvt[-0], &tmpVal2))#define	RV(value)	(getRv (&(value), &tmpVal2))#define NULLVAL		(VALUE *) NULL#define CHECK		if (semError) YYERROR#define SET_ERROR	semError = TRUEtypedef enum		/* TYPE */    {    T_UNKNOWN,    T_BYTE,    T_WORD,#ifndef	_WRS_NO_TGT_SHELL_FP    T_INT,    T_FLOAT,    T_DOUBLE#else	/* _WRS_NO_TGT_SHELL_FP */    T_INT#endif	/* _WRS_NO_TGT_SHELL_FP */    } TYPE;typedef enum		/* SIDE */    {    LHS,    RHS,    FHS			/* function: rhs -> lhs */    } SIDE;typedef struct		/* VALUE */    {    SIDE side;    TYPE type;    union	{	int *lv;	/* pointer to any of the below */	char byte;	short word;	int rv;	char *string;#ifndef	_WRS_NO_TGT_SHELL_FP	float fp;	double dp;#endif	/* _WRS_NO_TGT_SHELL_FP */	} value;    } VALUE;IMPORT int redirInFd;IMPORT int redirOutFd;LOCAL BOOL semError;	/* TRUE = semantic error found */LOCAL VALUE tmpVal1;	/* used by BIN_OP above for expression evaluation */LOCAL VALUE tmpVal2;	/* used by BIN_OP above for expression evaluation */LOCAL int argStack [MAX_SHELL_ARGS];	/* arguments to functions */LOCAL int nArgs;	/* number of args currently on argStack */LOCAL BOOL usymFlag;	/* TRUE = U_SYMBOL has been seen */LOCAL VALUE usymVal;	/* value of U_SYMBOL which has been seen */LOCAL BOOL spawnFlag;	/* TRUE if spawn is first parameter in argStack[] */# define NL 0# define T_SYMBOL 258# define D_SYMBOL 259# define U_SYMBOL 260# define NUMBER 261# define CHAR 262# define STRING 263# define FLOAT 264# define OR 265# define AND 266# define EQ 267# define NE 268# define GE 269# define LE 270# define INCR 271# define DECR 272# define ROT_LEFT 273# define ROT_RIGHT 274# define UMINUS 275# define PTR 276# define TYPECAST 277# define ENDFILE 278# define LEX_ERROR 279# define MULA 280# define DIVA 281# define MODA 282# define ADDA 283# define SUBA 284# define SHLA 285# define SHRA 286# define ANDA 287# define ORA 288# define XORA 289# define UNARY 290#ifdef __STDC__#include <stdlib.h>#include <string.h>#else#include <malloc.h>#include <memory.h>#endif#if defined(__cplusplus) || defined(__STDC__)#if defined(__cplusplus) && defined(__EXTERN_C__)extern "C" {#endif#ifndef yyerror#if defined(__cplusplus)	void yyerror(const char *);#endif#endif#ifndef yylex	int yylex(void);#endif	int yyparse(void);#if defined(__cplusplus) && defined(__EXTERN_C__)}#endif#endif#define yyclearin yychar = -1#define yyerrok yyerrflag = 0extern int yychar;extern int yyerrflag;#ifndef YYSTYPE#define YYSTYPE int#endifYYSTYPE yylval;YYSTYPE yyval;typedef int yytabelem;#ifndef YYMAXDEPTH#define YYMAXDEPTH 150#endif#if YYMAXDEPTH > 0int yy_yys[YYMAXDEPTH], *yys = yy_yys;YYSTYPE yy_yyv[YYMAXDEPTH], *yyv = yy_yyv;#else	/* user does initial allocation */int *yys;YYSTYPE *yyv;#endifstatic int yymaxdepth = YYMAXDEPTH;# define YYERRCODE 256# line 335 "shell.yacc"#include "a_out.h"#include "ctype.h"#include "stdlib.h"#include "string.h"#include "symLib.h"#include "shell_slex_c"/* forward declarations */LOCAL int newString ();LOCAL VALUE *getRv ();LOCAL int *getLv ();LOCAL VALUE evalExp ();#ifndef	_WRS_NO_TGT_SHELL_FPLOCAL void doubleToInts ();#endif	/* _WRS_NO_TGT_SHELL_FP */LOCAL void setRv ();LOCAL void typeConvert ();LOCAL BOOL checkLv ();LOCAL BOOL checkRv ();/********************************************************************************* yystart - initialize local variables** NOMANUAL*/void yystart (line)    char *line;    {    lexNewLine (line);    semError = FALSE;    usymFlag = FALSE;    nArgs = 0;    spawnFlag = FALSE;    }/********************************************************************************* yyerror - report error** This routine is called by yacc when an error is detected.*/LOCAL void yyerror (string)    char *string;    {    if (semError)	/* semantic errors have already been reported */	return;    /* print error depending on what look-ahead token is */    switch (yychar)	{	case U_SYMBOL:	/* U_SYM not at beginning of line */	    printf ("undefined symbol: %s\n", (char *) yylval.value.rv);	    break;	case LEX_ERROR:	     /* lex should have already reported the problem */	    break;	default:	    if (usymFlag)    /* leading U_SYM was followed by invalid assign */		printf ("undefined symbol: %s\n", (char *)usymVal.value.rv);	    else		printf ("%s\n", string);	    break;	}    }/********************************************************************************* rvOp - sets rhs of yyval to evaluated expression*/LOCAL void rvOp (pY1, op, pY2)    VALUE *pY1;    int op;    VALUE *pY2;    {    VALUE yy;    yy = evalExp (pY1, op, pY2);    setRv (&yyval, &yy);    }/********************************************************************************* assign - make assignment of new value to a cell*/LOCAL void assign (pLv, pRv)    FAST VALUE *pLv;	/* lhs to be assigned into */    FAST VALUE *pRv;	/* rhs value */    {    VALUE val;    /* verify that lv can be assigned to, then make the assignment */    if (checkLv (pLv) && checkRv (pRv))	{	(void)getRv (pRv, &val);	/* make value agree in type */	pLv->type = pRv->type;	typeConvert (&val, pLv->type, RHS);	switch (pLv->type)	    {	    case T_BYTE:		* (char *)getLv (pLv) = val.value.byte;		break;	    case T_WORD:		* (short *)getLv (pLv) = val.value.word;		break;	    case T_INT:		*getLv (pLv) = val.value.rv;		break;#ifndef	_WRS_NO_TGT_SHELL_FP	    case T_FLOAT:		* (float *)getLv (pLv) = val.value.fp;		break;	    case T_DOUBLE:		* (double *)getLv (pLv) = val.value.dp;		break;#endif	/* _WRS_NO_TGT_SHELL_FP */	    default:		printf ("bad assignment.\n");		SET_ERROR;	    }	}    else	{	printf ("bad assignment.\n");	SET_ERROR;	}    }/********************************************************************************* newString - allocate and copy a string*/LOCAL int newString (string)    char *string;    {    int length    = strlen (string) + 1;    char *address = (char *) malloc ((unsigned) length);    if (address == NULL)	{	printf ("not enough memory for new string.\n");	SET_ERROR;	}    else	bcopy (string, address, length);    return ((int)address);    }/********************************************************************************* newSym - allocate a new symbol and add to symbol table*/LOCAL VALUE newSym (name, type)    char *name;    TYPE type;    {    VALUE value;    void *address = (void *) malloc (sizeof (double));    if (address == NULL)	{	printf ("not enough memory for new variable.\n");	SET_ERROR;	}    else if (symAdd (sysSymTbl, name, (char *) address, (N_BSS | N_EXT),                     symGroupDefault) != OK)	{	free ((char *) address);	printf ("can't add '%s' to system symbol table - error = 0x%x.\n",		name, errnoGet());	SET_ERROR;	}    else	{	printf ("new symbol \"%s\" added to symbol table.\n", name);	value.side	= LHS;	value.type	= type;	value.value.lv	= (int *) address;	}    return (value);    }/********************************************************************************* printSym - print symbolic value*/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);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲色图19p| 国产精品国产三级国产有无不卡 | 九色综合狠狠综合久久| 日本精品一级二级| 综合久久一区二区三区| 日本高清不卡视频| 性欧美大战久久久久久久久| 欧美日本视频在线| 蜜桃av一区二区三区电影| 久久综合色8888| 国产91清纯白嫩初高中在线观看| 国产网站一区二区三区| 国产精一区二区三区| 欧美激情一二三区| 91久久精品一区二区| 日本成人在线不卡视频| 久久精品无码一区二区三区 | 久久久精品国产99久久精品芒果| 国模一区二区三区白浆| 18涩涩午夜精品.www| 欧美日本一区二区三区四区| 蜜臂av日日欢夜夜爽一区| 国产精品天干天干在观线| 欧美女孩性生活视频| 国产成人在线电影| 亚洲一二三级电影| 国产无遮挡一区二区三区毛片日本| 色综合久久久久综合| 另类调教123区 | 9191精品国产综合久久久久久 | 久久久亚洲精品一区二区三区 | 亚洲视频一区二区在线观看| 欧美片网站yy| 成人的网站免费观看| 免费在线观看视频一区| 亚洲免费在线视频一区 二区| 日韩精品一区二区三区在线观看 | 激情综合一区二区三区| 亚洲精品视频在线看| 久久久久国产一区二区三区四区| caoporn国产一区二区| 亚洲福利一二三区| 中文字幕精品一区| 久久久精品欧美丰满| 欧美日韩免费电影| 日本久久精品电影| 97久久超碰国产精品电影| 国产一区二区三区在线观看精品| 亚洲 欧美综合在线网络| 亚洲人成精品久久久久| 国产精品免费视频一区| 久久亚洲综合色一区二区三区| 欧美日韩五月天| 色婷婷综合在线| 色综合中文字幕| 99久久久无码国产精品| 成人理论电影网| 国产成a人无v码亚洲福利| 极品少妇一区二区| 国内外精品视频| 久久精品国产亚洲一区二区三区| 蜜臂av日日欢夜夜爽一区| 免费观看日韩av| 美日韩一级片在线观看| 日韩成人午夜精品| 麻豆精品蜜桃视频网站| 美女视频第一区二区三区免费观看网站| 亚洲国产你懂的| 天天操天天色综合| 秋霞av亚洲一区二区三| 九九九精品视频| 国产成人夜色高潮福利影视| 国产精品一级黄| 成人免费视频视频| 91福利视频网站| 91精品国产综合久久香蕉麻豆| 日韩欧美你懂的| 国产喷白浆一区二区三区| 中日韩av电影| 亚洲一区二区三区四区在线| 天天综合色天天综合色h| 麻豆视频观看网址久久| 国产成人精品免费看| 91在线视频免费91| 91精品综合久久久久久| 久久综合中文字幕| 17c精品麻豆一区二区免费| 夜夜精品浪潮av一区二区三区| 午夜久久久久久久久| 国内成人自拍视频| 色狠狠色噜噜噜综合网| 欧美成人欧美edvon| 国产精品色噜噜| 麻豆91在线播放| 激情成人午夜视频| 色综合中文综合网| 麻豆精品视频在线| 91老师国产黑色丝袜在线| 欧美日韩成人综合天天影院| 精品国产伦一区二区三区观看体验| 国产婷婷色一区二区三区四区| 亚洲六月丁香色婷婷综合久久 | 欧美性三三影院| 亚洲精品在线观看网站| 亚洲男人的天堂在线观看| 日本不卡的三区四区五区| 国产在线精品免费av| 丰满亚洲少妇av| 欧美一级国产精品| 亚洲人成网站影音先锋播放| 精品无人区卡一卡二卡三乱码免费卡 | 国产三级三级三级精品8ⅰ区| 亚洲情趣在线观看| 蜜臀av国产精品久久久久 | 亚洲综合视频在线| 国产一本一道久久香蕉| 欧美日韩国产一级片| 麻豆91精品91久久久的内涵| 99久久综合国产精品| 色悠悠久久综合| 国产日本一区二区| 久久99久久99小草精品免视看| 精品一区二区久久久| 欧美日韩一区高清| 国产精品国产自产拍在线| 国产一区91精品张津瑜| 久久久高清一区二区三区| 亚洲美女视频在线| 成人美女视频在线看| 精品成人一区二区三区| 欧美精品一区二区三区久久久 | 国产一区二区三区美女| 欧美日韩激情在线| 亚洲精品五月天| 91色视频在线| 国产日韩高清在线| 国内久久精品视频| 久久日韩精品一区二区五区| 一个色妞综合视频在线观看| 99riav一区二区三区| 亚洲柠檬福利资源导航| 色999日韩国产欧美一区二区| 中文字幕电影一区| 成人性生交大片免费| 日韩一区二区三区在线视频| 免费在线观看视频一区| 欧美mv和日韩mv国产网站| 久久99精品久久久久久国产越南 | 精品国产乱码久久久久久浪潮| 性做久久久久久免费观看欧美| 欧美色涩在线第一页| 亚洲超碰精品一区二区| 欧洲av一区二区嗯嗯嗯啊| 视频一区国产视频| 欧美草草影院在线视频| 国产一区二区不卡在线| 国产精品传媒入口麻豆| 在线免费观看日韩欧美| 首页国产欧美久久| 久久久蜜桃精品| 成人国产亚洲欧美成人综合网| 亚洲欧美国产毛片在线| 4hu四虎永久在线影院成人| 久久精品理论片| 亚洲视频一区二区免费在线观看| 在线观看亚洲一区| 蜜臀久久久99精品久久久久久| 久久―日本道色综合久久| 色综合久久88色综合天天免费| 五月婷婷综合激情| 久久久三级国产网站| 91黄色在线观看| 久久超碰97中文字幕| 中文字幕在线不卡| 欧美一卡二卡三卡| 99精品热视频| 久久99精品久久久| 亚洲精品免费看| 欧美精品一区二区在线播放| 成人激情综合网站| 国产午夜精品一区二区三区嫩草 | 欧美一区欧美二区| 国产做a爰片久久毛片| 国产精品二三区| 日韩欧美久久一区| 欧美婷婷六月丁香综合色| 国产99精品视频| 青青草97国产精品免费观看| 亚洲色图都市小说| 久久精品人人爽人人爽| 日韩一区二区影院| 欧美无砖专区一中文字| 国产精品资源站在线| 日本午夜一本久久久综合| 中文字幕亚洲视频| 精品国产免费视频| 欧美影片第一页| 国产成人av一区二区三区在线观看| 日本成人中文字幕在线视频| 亚洲一区在线看|