⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 commands.y

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 Y
📖 第 1 页 / 共 2 页
字号:
 * Redirectable commands. */rcommand:    F_MASK exp_list{	$$ = build(O_FMASK, $2, nil);}|    F_MASK '/' constant exp_list{	$$ = build(O_FMASK, $4, $3);}|    T_MASK exp_list{	$$ = build(O_TMASK, $2, nil);}|    T_MASK '/' constant exp_list{	$$ = build(O_TMASK, $4, $3);}|    PRINT exp_list{	$$ = build(O_PRINT, $2);}|    PRINTF opt_exp_list{	$$ = build(O_PRINTF, $2, findlanguage(C));}|    WHERE{	$$ = build(O_WHERE);}|    examine{	$$ = $1;}|    CALL term  {	$$ = build(O_CALLPROC, $2, nil, nil);}|    CALL term  '(' opt_exp_list ')'{	$$ = build(O_CALLPROC, $2, $4, nil);}|    CALLV term  {	$$ = build(O_CALLPROC, $2, nil, $2);}|    CALLV term  '(' opt_exp_list ')'{	$$ = build(O_CALLPROC, $2, $4, $2);}|    DEBUG INT{ 	$$ = build(O_DEBUG, $2);}|    DEBUG '-' INT{	$$ = build(O_DEBUG, -$3);}|    DUMP opt_qual_symbol{	$$ = build(O_DUMP, $2);}|    DUMP '.'{	$$ = build(O_DUMP, nil);}|    DUMP{	$$ = build(O_DUMP, build(O_SYM, curfunc));}|    STATUS{	$$ = build(O_STATUS);};alias_command:    ALIAS name name{	$$ = build(O_ALIAS, build(O_NAME, $2), build(O_NAME, $3));}|    ALIAS name STRING{	$$ = build(O_ALIAS, build(O_NAME, $2), build(O_SCON, $3));}|    ALIAS name '(' name_list ')' STRING{	$$ = build(O_ALIAS,	    build(O_COMMA, build(O_NAME, $2), (Node) $4),	    build(O_SCON, $6)	);}|    ALIAS name{	$$ = build(O_ALIAS, build(O_NAME, $2), nil);}|    ALIAS{	$$ = build(O_ALIAS, nil, nil);};name_list:    name_list ',' name{	$$ = $1;	list_append(list_item($3), nil, $$);}|    name{	$$ = list_alloc();	list_append(list_item($1), nil, $$);};trace:    TRACE{	$$ = O_TRACE;}|    TRACEI{	$$ = O_TRACEI;};stop:    STOP{	$$ = O_STOP;}|    STOPI{	$$ = O_STOPI;};what:    exp{	$$ = $1;}|    STRING ':' line_number{	$$ = build(O_QLINE, build(O_SCON, $1), $3);};where:    IN exp{	$$ = unrval($2);}|    AT line_number{	$$ = build(O_QLINE, build(O_SCON, strdup(cursource)), $2);}|    AT STRING ':' line_number{	$$ = build(O_QLINE, build(O_SCON, $2), $4);};filename:    NAME{	$$ = ident($1);};opt_filename:    /* empty */{	$$ = nil;}|    filename{	$$ = $1;};opt_exp_list:    exp_list{	$$ = $1;}|    /* empty */{	$$ = nil;};env_command:	SETENV name name {	$$ = build(O_SETENV, build(O_NAME ,$2), build(O_NAME , $3));}|	SETENV name STRING {	$$ = build(O_SETENV, build(O_NAME ,$2), build(O_SCON , $3));}|	GETENV name {	$$ = build(O_GETENV, build(O_NAME ,$2));}|    CD shellmode opt_filename{	$$ = build(O_CD, $3);};list_command:    LIST{	$$ = build(O_LIST,	    build(O_LCON, (long) cursrcline),	    build(O_LCON, (long) cursrcline + 9)	);}|    LIST line_number{	$$ = build(O_LIST, $2,			build (O_ADD, $2, build(O_LCON, 9)));}|    LIST line_number ',' line_number{	$$ = build(O_LIST, $2, $4);}|    LIST exp ':' exp{	$$ = build(O_LIST, $2, build (O_ADD, $2, build(O_SUB, $4, build(O_LCON,		1))));}|    LIST module_symbol{	$$ = build(O_LIST, $2);};integer_list:    INT{	$$ = build(O_LCON, $1);}|    INT integer_list{	$$ = build(O_COMMA, build(O_LCON, $1), $2);}|    INT ',' integer_list{	$$ = build(O_COMMA, build(O_LCON, $1), $3);};line_number:    INT{	$$ = build(O_LCON, $1);}|    '$'{	$$ = build(O_LCON, (long) LASTLINE);};examine:    where '/' count mode{	$$ = build(O_EXAMINE, $4, $1, nil, $3);}|    address '/' count mode{	$$ = build(O_EXAMINE, $4, $1, nil, $3);}|    address ',' address '/' mode{	$$ = build(O_EXAMINE, $5, $1, $3, 0);}|    address '=' mode{	$$ = build(O_EXAMINE, $3, $1, nil, 0);};address:    INT{	$$ = build(O_LCON, $1);}|    '.'{	$$ = build(O_LCON, (long) prtaddr);}|    '&' term{	$$ = amper($2);}|    address '+' address{	$$ = build(O_ADD, $1, $3);}|    address '-' address{	$$ = build(O_SUB, $1, $3);}|    address '*' address{	$$ = build(O_MUL, $1, $3);}|    '*' address %prec UNARYSIGN{	$$ = build(O_INDIR, $2);}|    '-' address %prec UNARYSIGN{	$$ = build(O_NEG, $2);}|    '(' exp ')'{	$$ = $2;};term:    symbol{	$$ = $1;}|    term '.' name{	$$ = unrval(dot($1, $3));}|    term ARROW name{	$$ = unrval(dot($1, $3));}|    term '[' exp_list ']'{	$$ = unrval(subscript($1, $3));};count:    /* empty */{	$$ = 1;}|    INT{	$$ = $1;};mode:    name{	$$ = ident($1);	curformat = $$;}|    /* empty */{	$$ = curformat;};opt_cond:    /* empty */{	$$ = nil;}|    IF boolean_exp{	$$ = $2;};exp_list:    exp{	$$ = build(O_COMMA, $1, nil);}|    exp ',' exp_list{	$$ = build(O_COMMA, $1, $3);};exp:    symbol{	$$ = build(O_RVAL, $1);}|    exp '[' exp_list ']'{	$$ = subscript(unrval($1), $3);}|    exp '.' name{	$$ = dot($1, $3);}|    exp ARROW name{	$$ = dot($1, $3);}|    '*' exp %prec UNARYSIGN{	$$ = build(O_INDIR, $2);}|    exp '^' %prec UNARYSIGN{	$$ = build(O_INDIR, $1);}|    exp '\\' opt_qual_symbol{	$$ = build(O_TYPERENAME, $1, $3);}|    exp '\\' '&' opt_qual_symbol %prec '\\'{	$$ = renameptr($1, $4);}|    exp '(' opt_exp_list ')'{	$$ = build(O_CALL, unrval($1), $3);}|    constant{	$$ = $1;}|    '+' exp %prec UNARYSIGN{	$$ = $2;}|    '-' exp %prec UNARYSIGN{	$$ = build(O_NEG, $2);}|    '&' exp %prec UNARYSIGN{	$$ = amper($2);}|    exp '+' exp{	$$ = build(O_ADD, $1, $3);}|    exp '-' exp{	$$ = build(O_SUB, $1, $3);}|    exp '*' exp{	$$ = build(O_MUL, $1, $3);}|    exp '/' exp{	$$ = build(O_DIVF, $1, $3);}|    exp DIV exp{	$$ = build(O_DIV, $1, $3);}|    exp MOD exp{	$$ = build(O_MOD, $1, $3);}|    exp AND exp{	$$ = build(O_AND, $1, $3);}|    exp OR exp{	$$ = build(O_OR, $1, $3);}|    exp '<' exp{	$$ = build(O_LT, $1, $3);}|    exp '<' '=' exp{	$$ = build(O_LE, $1, $4);}|    exp '>' exp{	$$ = build(O_GT, $1, $3);}|    exp '>' '=' exp{	$$ = build(O_GE, $1, $4);}|    exp '=' exp{	$$ = build(O_EQ, $1, $3);}|    exp '=' '=' exp{	$$ = build(O_EQ, $1, $4);}|    exp '<' '>' exp{	$$ = build(O_NE, $1, $4);}|    exp '!' '=' exp{	$$ = build(O_NE, $1, $4);}|    '(' exp ')'{	$$ = $2;};boolean_exp:    exp{	chkboolean($1);	$$ = $1;};constant:    INT{	$$ = build(O_LCON, $1);}|    CHAR{	$$ = build(O_CCON, $1);}|    REAL{	$$ = build(O_FCON, $1);}|    STRING{	$$ = build(O_SCON, $1);};module_symbol:    symbol{	$$ = $1;}|    module '.' name{	$$ = dot($1, $3);}opt_qual_symbol:    symbol{	$$ = $1;}|    opt_qual_symbol '.' name{	$$ = dot($1, $3);};module:    name{	$$ = findvar($1);	if ($$ == nil) {		$$ = (Node)findmodule($1);		if ($$ == nil) {			error("unable to locate module");		} else {	    	$$ = build(O_SYM, $$);		}	} else {	    error("can only \"set/unset\" debugger variables");	}};symbol:    name{	$$ = findvar($1);	if ($$ == nil) {	    $$ = build(O_SYM, which($1));	} else {	    error("can only \"set/unset\" debugger variables");	}}|    '.' name{	$$ = dot(build(O_SYM, program), $2);};name:    NAME{	$$ = $1;}|    keyword{	$$ = $1;}keyword:    ALIAS | AND | ASSIGN | AT | 	CALL | CALLV | CATCH | CD | CONT |	DEBUG | DELETE | DIV |     DOWN | DUMP | EDIT | FILE | F_MASK | FUNC |	GRIPE | GETENV | HELP | HISTORY | IGNORE | IN |	LIST | MOD | NEXT | NEXTI | NIL | NOT | OR |	PRINT | PRINTF | PSYM | PWD | QUIT |    RECORD | REREAD | RERUN | RETURN | RUN | SET | SETENV | SH | SKIP | 	SOURCE | STATUS | STEP | STEPI |    STOP | STOPI | T_MASK | TRACE | TRACEI | UNALIAS |	UNSET | UP | USE |     WHATIS | WHEN | WHERE | WHEREIS | WHICH;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -