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

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

?? shell.c

?? 操作系統開發,vxwork操作系統源代碼
?? 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一区二区三区免费野_久草精品视频
欧美精品视频www在线观看| 日本一区二区三区高清不卡| 亚洲欧洲日产国产综合网| 国产成a人无v码亚洲福利| 国产欧美精品在线观看| 成人黄页在线观看| 亚洲日本一区二区三区| 精品视频在线看| 偷窥少妇高潮呻吟av久久免费| 欧美三级电影一区| 午夜a成v人精品| 欧美变态tickling挠脚心| 国产一区二区三区久久悠悠色av| 久久久久久电影| 色综合欧美在线视频区| 亚洲成av人**亚洲成av**| 日韩欧美不卡在线观看视频| 成人av电影在线播放| 午夜精品爽啪视频| 99re视频这里只有精品| 亚洲动漫第一页| 三级不卡在线观看| 日韩欧美不卡在线观看视频| 国产福利一区在线| 最新国产精品久久精品| 91精品国产丝袜白色高跟鞋| 国产精品白丝jk白祙喷水网站 | 狠狠色丁香久久婷婷综| 中文av字幕一区| 欧美videossexotv100| 成人免费精品视频| 天天综合色天天| 国产精品久久久久婷婷| 欧美巨大另类极品videosbest| 国产米奇在线777精品观看| 亚洲三级在线观看| 欧美变态tickling挠脚心| 色成年激情久久综合| 亚洲成av人**亚洲成av**| 91精品免费观看| 99精品久久只有精品| 亚洲国产精品v| 欧美日韩dvd在线观看| 国产一区二区三区不卡在线观看| 一区在线中文字幕| 欧美va亚洲va香蕉在线| 在线精品视频小说1| 粉嫩av亚洲一区二区图片| 日韩精品国产精品| 亚洲黄色小说网站| 国产日产欧美一区二区三区 | 色综合视频在线观看| 国内精品伊人久久久久av一坑| 亚洲美女视频在线观看| 国产色91在线| 精品国产制服丝袜高跟| 欧美色图12p| 色综合久久综合| 成人av在线资源网站| 国产一区二区美女诱惑| 日韩不卡在线观看日韩不卡视频| 亚洲色图20p| 国产精品欧美一区喷水| 欧美不卡在线视频| 日韩亚洲欧美一区二区三区| 欧美视频完全免费看| jizz一区二区| 成人性生交大片免费看视频在线 | 午夜电影一区二区三区| 亚洲精品久久嫩草网站秘色| 国产精品日韩成人| 欧美高清在线精品一区| 久久久久久久一区| 欧美激情一区二区三区全黄| 久久蜜桃香蕉精品一区二区三区| 日韩欧美中文字幕制服| 7777精品伊人久久久大香线蕉的 | 久久精品夜色噜噜亚洲aⅴ| 日韩一区和二区| 精品精品国产高清一毛片一天堂| 91精品视频网| 久久只精品国产| 中文字幕精品在线不卡| 国产精品国产精品国产专区不片| 国产精品久久久久国产精品日日| 国产精品欧美久久久久无广告 | 成人丝袜18视频在线观看| 国产风韵犹存在线视精品| 另类的小说在线视频另类成人小视频在线 | 久久激情综合网| 丝袜亚洲另类欧美| 偷拍自拍另类欧美| 午夜a成v人精品| 奇米在线7777在线精品 | 亚洲精品v日韩精品| 亚洲制服丝袜在线| 一区二区三区在线视频播放| 亚洲女女做受ⅹxx高潮| 亚洲图片激情小说| 一区二区三区欧美亚洲| 亚洲一区二区高清| 日韩中文字幕av电影| 日本va欧美va欧美va精品| 热久久国产精品| 久久国产三级精品| 国产一区二区女| 不卡视频在线看| 欧美日韩国产综合一区二区三区| 欧美群妇大交群的观看方式 | 91精品蜜臀在线一区尤物| 91精品国产综合久久久久久| 91精品国产综合久久久久久| 欧美日韩一区三区四区| 久久综合久久鬼色| 国产欧美一区二区精品仙草咪| 国产精品少妇自拍| 亚洲精品菠萝久久久久久久| 日韩黄色免费电影| 韩国v欧美v亚洲v日本v| 成人免费观看av| 在线视频国内一区二区| 在线不卡中文字幕播放| 久久九九久精品国产免费直播| 中文字幕永久在线不卡| 午夜精品一区在线观看| 不卡视频一二三| 欧美一区二区不卡视频| 久久久精品欧美丰满| 亚洲伊人色欲综合网| 久久99精品久久久| 国产精品88888| 欧美日韩在线播放三区四区| 久久久激情视频| 亚洲免费在线视频| 久色婷婷小香蕉久久| 99精品欧美一区二区蜜桃免费 | 一本一道久久a久久精品| 色琪琪一区二区三区亚洲区| 日韩午夜激情av| 亚洲欧洲国产日韩| 青青草原综合久久大伊人精品| 国产91丝袜在线播放九色| 欧美日韩国产综合视频在线观看 | 欧美日韩国产经典色站一区二区三区| 欧美一区二区精品| 亚洲欧洲成人精品av97| 另类人妖一区二区av| 色综合欧美在线| 国产日韩欧美高清| 亚洲视频一区在线观看| 国产成人av自拍| 91精品国产欧美一区二区18 | 亚洲精品老司机| 狠狠色丁香久久婷婷综合_中| 欧美艳星brazzers| 国产午夜一区二区三区| 国产在线精品不卡| 欧美一区二区成人6969| 亚洲一区二区av在线| 波多野结衣91| 久久久精品国产免大香伊| 亚洲成人你懂的| 欧美老肥妇做.爰bbww视频| 亚洲欧美日韩久久| 国产91丝袜在线18| 亚洲精品一线二线三线无人区| 亚洲国产乱码最新视频 | 亚洲成人免费在线| 91麻豆国产福利在线观看| 欧美激情一区二区三区蜜桃视频 | 久久综合九色综合97婷婷女人| 亚洲一卡二卡三卡四卡 | 久久蜜桃av一区二区天堂| 久久草av在线| 欧美老女人第四色| 亚洲成人精品一区| 91官网在线观看| 一级中文字幕一区二区| 97久久精品人人做人人爽| 亚洲综合久久久久| 色婷婷综合久久| 亚洲精品国产精华液| 色综合激情久久| 一区二区三区精品在线观看| 成人综合在线网站| 国产精品视频第一区| 国产精品亚洲综合一区在线观看| 精品精品欲导航| 韩国av一区二区三区| 欧美片在线播放| 日本美女视频一区二区| 日韩一二三四区| 久久国产精品99久久久久久老狼| 日韩视频免费观看高清完整版 | 在线观看一区不卡| 一区二区三区国产豹纹内裤在线| 一本在线高清不卡dvd| 亚洲综合成人在线| 91九色最新地址| 久久国产福利国产秒拍|