| /* | 
 |  * This file was generated by the mkinit program. | 
 |  */ | 
 |  | 
 | #include "shell.h" | 
 | #include "mystring.h" | 
 | #include "init.h" | 
 | #include "eval.h" | 
 | #include <stdio.h> | 
 | #include "input.h" | 
 | #include "error.h" | 
 | #include <stdlib.h> | 
 | #include "options.h" | 
 | #include "redir.h" | 
 | #include <signal.h> | 
 | #include "trap.h" | 
 | #include "output.h" | 
 | #include "memalloc.h" | 
 | #include "var.h" | 
 |  | 
 |  | 
 |  | 
 | #undef  ATABSIZE | 
 | #define ATABSIZE 39 | 
 | #undef  YYBISON | 
 | #define YYBISON 1 | 
 | #undef  YYSKELETON_NAME | 
 | #define YYSKELETON_NAME "yacc.c" | 
 | #undef  YYPURE | 
 | #define YYPURE 0 | 
 | #undef  YYLSP_NEEDED | 
 | #define YYLSP_NEEDED 0 | 
 | #undef  ARITH_NUM | 
 | #define ARITH_NUM 258 | 
 | #undef  ARITH_LPAREN | 
 | #define ARITH_LPAREN 259 | 
 | #undef  ARITH_RPAREN | 
 | #define ARITH_RPAREN 260 | 
 | #undef  ARITH_OR | 
 | #define ARITH_OR 261 | 
 | #undef  ARITH_AND | 
 | #define ARITH_AND 262 | 
 | #undef  ARITH_BOR | 
 | #define ARITH_BOR 263 | 
 | #undef  ARITH_BXOR | 
 | #define ARITH_BXOR 264 | 
 | #undef  ARITH_BAND | 
 | #define ARITH_BAND 265 | 
 | #undef  ARITH_NE | 
 | #define ARITH_NE 266 | 
 | #undef  ARITH_EQ | 
 | #define ARITH_EQ 267 | 
 | #undef  ARITH_LE | 
 | #define ARITH_LE 268 | 
 | #undef  ARITH_GE | 
 | #define ARITH_GE 269 | 
 | #undef  ARITH_GT | 
 | #define ARITH_GT 270 | 
 | #undef  ARITH_LT | 
 | #define ARITH_LT 271 | 
 | #undef  ARITH_RSHIFT | 
 | #define ARITH_RSHIFT 272 | 
 | #undef  ARITH_LSHIFT | 
 | #define ARITH_LSHIFT 273 | 
 | #undef  ARITH_SUB | 
 | #define ARITH_SUB 274 | 
 | #undef  ARITH_ADD | 
 | #define ARITH_ADD 275 | 
 | #undef  ARITH_REM | 
 | #define ARITH_REM 276 | 
 | #undef  ARITH_DIV | 
 | #define ARITH_DIV 277 | 
 | #undef  ARITH_MUL | 
 | #define ARITH_MUL 278 | 
 | #undef  ARITH_BNOT | 
 | #define ARITH_BNOT 279 | 
 | #undef  ARITH_NOT | 
 | #define ARITH_NOT 280 | 
 | #undef  ARITH_UNARYPLUS | 
 | #define ARITH_UNARYPLUS 281 | 
 | #undef  ARITH_UNARYMINUS | 
 | #define ARITH_UNARYMINUS 282 | 
 | #undef  YYFINAL | 
 | #define YYFINAL  14 | 
 | #undef  YYLAST | 
 | #define YYLAST   170 | 
 | #undef  YYNTOKENS | 
 | #define YYNTOKENS  28 | 
 | #undef  YYNNTS | 
 | #define YYNNTS  3 | 
 | #undef  YYNRULES | 
 | #define YYNRULES  26 | 
 | #undef  YYNSTATES | 
 | #define YYNSTATES  52 | 
 | #undef  YYUNDEFTOK | 
 | #define YYUNDEFTOK  2 | 
 | #undef  YYMAXUTOK | 
 | #define YYMAXUTOK   282 | 
 | #undef  YYPACT_NINF | 
 | #define YYPACT_NINF -13 | 
 | #undef  YYTABLE_NINF | 
 | #define YYTABLE_NINF -1 | 
 | #undef  yyerrok | 
 | #define yyerrok		(yyerrstatus = 0) | 
 | #undef  yyclearin | 
 | #define yyclearin	(yychar = YYEMPTY) | 
 | #undef  YYEMPTY | 
 | #define YYEMPTY		(-2) | 
 | #undef  YYEOF | 
 | #define YYEOF		0 | 
 | #undef  YYACCEPT | 
 | #define YYACCEPT	goto yyacceptlab | 
 | #undef  YYABORT | 
 | #define YYABORT		goto yyabortlab | 
 | #undef  YYERROR | 
 | #define YYERROR		goto yyerrorlab | 
 | #undef  YYFAIL | 
 | #define YYFAIL		goto yyerrlab | 
 | #undef  YYTERROR | 
 | #define YYTERROR	1 | 
 | #undef  YYERRCODE | 
 | #define YYERRCODE	256 | 
 | #undef  YYPOPSTACK | 
 | #define YYPOPSTACK   (yyvsp--, yyssp--) | 
 | #undef  YY_INT_ALIGNED | 
 | #define  YY_INT_ALIGNED short int | 
 | #undef  FLEX_SCANNER | 
 | #define FLEX_SCANNER | 
 | #undef  YY_FLEX_MAJOR_VERSION | 
 | #define YY_FLEX_MAJOR_VERSION 2 | 
 | #undef  YY_FLEX_MINOR_VERSION | 
 | #define YY_FLEX_MINOR_VERSION 5 | 
 | #undef  YY_FLEX_SUBMINOR_VERSION | 
 | #define YY_FLEX_SUBMINOR_VERSION 31 | 
 | #undef  FLEX_BETA | 
 | #define FLEX_BETA | 
 | #undef  FLEXINT_H | 
 | #define FLEXINT_H | 
 | #undef  INT8_MIN | 
 | #define INT8_MIN               (-128) | 
 | #undef  INT16_MIN | 
 | #define INT16_MIN              (-32767-1) | 
 | #undef  INT32_MIN | 
 | #define INT32_MIN              (-2147483647-1) | 
 | #undef  INT8_MAX | 
 | #define INT8_MAX               (127) | 
 | #undef  INT16_MAX | 
 | #define INT16_MAX              (32767) | 
 | #undef  INT32_MAX | 
 | #define INT32_MAX              (2147483647) | 
 | #undef  UINT8_MAX | 
 | #define UINT8_MAX              (255U) | 
 | #undef  UINT16_MAX | 
 | #define UINT16_MAX             (65535U) | 
 | #undef  UINT32_MAX | 
 | #define UINT32_MAX             (4294967295U) | 
 | #undef  YY_USE_CONST | 
 | #define YY_USE_CONST | 
 | #undef  YY_USE_CONST | 
 | #define YY_USE_CONST | 
 | #undef  yyconst | 
 | #define yyconst const | 
 | #undef  yyconst | 
 | #define yyconst | 
 | #undef  YY_NULL | 
 | #define YY_NULL 0 | 
 | #undef  BEGIN | 
 | #define BEGIN (yy_start) = 1 + 2 * | 
 | #undef  YY_START | 
 | #define YY_START (((yy_start) - 1) / 2) | 
 | #undef  YYSTATE | 
 | #define YYSTATE YY_START | 
 | #undef  YY_NEW_FILE | 
 | #define YY_NEW_FILE yyrestart(yyin  ) | 
 | #undef  YY_END_OF_BUFFER_CHAR | 
 | #define YY_END_OF_BUFFER_CHAR 0 | 
 | #undef  YY_BUF_SIZE | 
 | #define YY_BUF_SIZE 16384 | 
 | #undef  YY_TYPEDEF_YY_BUFFER_STATE | 
 | #define YY_TYPEDEF_YY_BUFFER_STATE | 
 | #undef  EOB_ACT_CONTINUE_SCAN | 
 | #define EOB_ACT_CONTINUE_SCAN 0 | 
 | #undef  EOB_ACT_END_OF_FILE | 
 | #define EOB_ACT_END_OF_FILE 1 | 
 | #undef  EOB_ACT_LAST_MATCH | 
 | #define EOB_ACT_LAST_MATCH 2 | 
 | #undef  YY_TYPEDEF_YY_SIZE_T | 
 | #define YY_TYPEDEF_YY_SIZE_T | 
 | #undef  YY_STRUCT_YY_BUFFER_STATE | 
 | #define YY_STRUCT_YY_BUFFER_STATE | 
 | #undef  YY_BUFFER_NEW | 
 | #define YY_BUFFER_NEW 0 | 
 | #undef  YY_BUFFER_NORMAL | 
 | #define YY_BUFFER_NORMAL 1 | 
 | #undef  YY_BUFFER_EOF_PENDING | 
 | #define YY_BUFFER_EOF_PENDING 2 | 
 | #undef  YY_CURRENT_BUFFER | 
 | #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ | 
 | #undef  YY_CURRENT_BUFFER_LVALUE | 
 | #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] | 
 | #undef  YY_FLUSH_BUFFER | 
 | #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) | 
 | #undef  yy_new_buffer | 
 | #define yy_new_buffer yy_create_buffer | 
 | #undef  YY_SKIP_YYWRAP | 
 | #define YY_SKIP_YYWRAP | 
 | #undef  yytext_ptr | 
 | #define yytext_ptr yytext | 
 | #undef  YY_DO_BEFORE_ACTION | 
 | #define YY_DO_BEFORE_ACTION \ | 
 | #undef  YY_NUM_RULES | 
 | #define YY_NUM_RULES 29 | 
 | #undef  YY_END_OF_BUFFER | 
 | #define YY_END_OF_BUFFER 30 | 
 | #undef  REJECT | 
 | #define REJECT reject_used_but_not_detected | 
 | #undef  YY_MORE_ADJ | 
 | #define YY_MORE_ADJ 0 | 
 | #undef  YY_RESTORE_YY_MORE_OFFSET | 
 | #define YY_RESTORE_YY_MORE_OFFSET | 
 | #undef  YY_NO_UNPUT | 
 | #define YY_NO_UNPUT | 
 | #undef  INITIAL | 
 | #define INITIAL 0 | 
 | #undef  YY_EXTRA_TYPE | 
 | #define YY_EXTRA_TYPE void * | 
 | #undef  YY_READ_BUF_SIZE | 
 | #define YY_READ_BUF_SIZE 8192 | 
 | #undef  ECHO | 
 | #define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) | 
 | #undef  YY_START_STACK_INCR | 
 | #define YY_START_STACK_INCR 25 | 
 | #undef  YY_DECL_IS_OURS | 
 | #define YY_DECL_IS_OURS 1 | 
 | #undef  YY_DECL | 
 | #define YY_DECL int yylex (void) | 
 | #undef  YY_USER_ACTION | 
 | #define YY_USER_ACTION | 
 | #undef  YY_BREAK | 
 | #define YY_BREAK break; | 
 | #undef  YY_RULE_SETUP | 
 | #define YY_RULE_SETUP \ | 
 | #undef  YY_EXIT_FAILURE | 
 | #define YY_EXIT_FAILURE 2 | 
 | #undef  YYTABLES_NAME | 
 | #define YYTABLES_NAME "yytables" | 
 | #undef  MAXPWD | 
 | #define MAXPWD 256 | 
 | #undef  signal | 
 | #define signal bsd_signal | 
 | #undef  ALL | 
 | #define ALL (E_OPEN|E_CREAT|E_EXEC) | 
 | #undef  EV_EXIT | 
 | #define EV_EXIT 01		/* exit after evaluating tree */ | 
 | #undef  EV_TESTED | 
 | #define EV_TESTED 02		/* exit status is checked; ignore -e flag */ | 
 | #undef  EV_BACKCMD | 
 | #define EV_BACKCMD 04		/* command executing within back quotes */ | 
 | #undef  CMDTABLESIZE | 
 | #define CMDTABLESIZE 31		/* should be prime */ | 
 | #undef  ARB | 
 | #define ARB 1			/* actual size determined at run time */ | 
 | #undef  NEWARGS | 
 | #define NEWARGS 5 | 
 | #undef  EOF_NLEFT | 
 | #define EOF_NLEFT -99		/* value of parsenleft when EOF pushed back */ | 
 | #undef  _PATH_DEVNULL | 
 | #define _PATH_DEVNULL "/dev/null" | 
 | #undef  PROFILE | 
 | #define PROFILE 0 | 
 | #undef  SIGSSIZE | 
 | #define SIGSSIZE (sizeof(sigs)/sizeof(sigs[0])) | 
 | #undef  MINSIZE | 
 | #define MINSIZE 504		/* minimum size of a block */ | 
 | #undef  DEFINE_OPTIONS | 
 | #define DEFINE_OPTIONS | 
 | #undef  EOFMARKLEN | 
 | #define EOFMARKLEN 79 | 
 | #undef  OPENBRACE | 
 | #define OPENBRACE '{' | 
 | #undef  CLOSEBRACE | 
 | #define CLOSEBRACE '}' | 
 | #undef  EMPTY | 
 | #define EMPTY -2		/* marks an unused slot in redirtab */ | 
 | #undef  signal | 
 | #define signal bsd_signal | 
 | #undef  sys_signame | 
 | #define sys_signame sys_siglist | 
 | #undef  S_DFL | 
 | #define S_DFL 1			/* default signal handling (SIG_DFL) */ | 
 | #undef  S_CATCH | 
 | #define S_CATCH 2		/* signal is caught */ | 
 | #undef  S_IGN | 
 | #define S_IGN 3			/* signal is ignored (SIG_IGN) */ | 
 | #undef  S_HARD_IGN | 
 | #define S_HARD_IGN 4		/* signal is ignored permenantly */ | 
 | #undef  S_RESET | 
 | #define S_RESET 5		/* temporary - to reset a hard ignored sig */ | 
 | #undef  OUTBUFSIZ | 
 | #define OUTBUFSIZ BUFSIZ | 
 | #undef  BLOCK_OUT | 
 | #define BLOCK_OUT -2		/* output to a fixed block of memory */ | 
 | #undef  MEM_OUT | 
 | #define MEM_OUT -3		/* output to dynamically allocated memory */ | 
 | #undef  OUTPUT_ERR | 
 | #define OUTPUT_ERR 01		/* error occurred on output */ | 
 | #undef  TEMPSIZE | 
 | #define TEMPSIZE 24 | 
 | #undef  HAVE_VASPRINTF | 
 | #define HAVE_VASPRINTF 1 | 
 | #undef  VTABSIZE | 
 | #define VTABSIZE 39 | 
 | #undef  VTABSIZE | 
 | #define VTABSIZE 517 | 
 | #undef  ATABSIZE | 
 | #define ATABSIZE 39 | 
 | #undef  YYBISON | 
 | #define YYBISON 1 | 
 | #undef  YYSKELETON_NAME | 
 | #define YYSKELETON_NAME "yacc.c" | 
 | #undef  YYPURE | 
 | #define YYPURE 0 | 
 | #undef  YYLSP_NEEDED | 
 | #define YYLSP_NEEDED 0 | 
 | #undef  ARITH_NUM | 
 | #define ARITH_NUM 258 | 
 | #undef  ARITH_LPAREN | 
 | #define ARITH_LPAREN 259 | 
 | #undef  ARITH_RPAREN | 
 | #define ARITH_RPAREN 260 | 
 | #undef  ARITH_OR | 
 | #define ARITH_OR 261 | 
 | #undef  ARITH_AND | 
 | #define ARITH_AND 262 | 
 | #undef  ARITH_BOR | 
 | #define ARITH_BOR 263 | 
 | #undef  ARITH_BXOR | 
 | #define ARITH_BXOR 264 | 
 | #undef  ARITH_BAND | 
 | #define ARITH_BAND 265 | 
 | #undef  ARITH_NE | 
 | #define ARITH_NE 266 | 
 | #undef  ARITH_EQ | 
 | #define ARITH_EQ 267 | 
 | #undef  ARITH_LE | 
 | #define ARITH_LE 268 | 
 | #undef  ARITH_GE | 
 | #define ARITH_GE 269 | 
 | #undef  ARITH_GT | 
 | #define ARITH_GT 270 | 
 | #undef  ARITH_LT | 
 | #define ARITH_LT 271 | 
 | #undef  ARITH_RSHIFT | 
 | #define ARITH_RSHIFT 272 | 
 | #undef  ARITH_LSHIFT | 
 | #define ARITH_LSHIFT 273 | 
 | #undef  ARITH_SUB | 
 | #define ARITH_SUB 274 | 
 | #undef  ARITH_ADD | 
 | #define ARITH_ADD 275 | 
 | #undef  ARITH_REM | 
 | #define ARITH_REM 276 | 
 | #undef  ARITH_DIV | 
 | #define ARITH_DIV 277 | 
 | #undef  ARITH_MUL | 
 | #define ARITH_MUL 278 | 
 | #undef  ARITH_BNOT | 
 | #define ARITH_BNOT 279 | 
 | #undef  ARITH_NOT | 
 | #define ARITH_NOT 280 | 
 | #undef  ARITH_UNARYPLUS | 
 | #define ARITH_UNARYPLUS 281 | 
 | #undef  ARITH_UNARYMINUS | 
 | #define ARITH_UNARYMINUS 282 | 
 | #undef  YYFINAL | 
 | #define YYFINAL  14 | 
 | #undef  YYLAST | 
 | #define YYLAST   170 | 
 | #undef  YYNTOKENS | 
 | #define YYNTOKENS  28 | 
 | #undef  YYNNTS | 
 | #define YYNNTS  3 | 
 | #undef  YYNRULES | 
 | #define YYNRULES  26 | 
 | #undef  YYNSTATES | 
 | #define YYNSTATES  52 | 
 | #undef  YYUNDEFTOK | 
 | #define YYUNDEFTOK  2 | 
 | #undef  YYMAXUTOK | 
 | #define YYMAXUTOK   282 | 
 | #undef  YYPACT_NINF | 
 | #define YYPACT_NINF -13 | 
 | #undef  YYTABLE_NINF | 
 | #define YYTABLE_NINF -1 | 
 | #undef  yyerrok | 
 | #define yyerrok		(yyerrstatus = 0) | 
 | #undef  yyclearin | 
 | #define yyclearin	(yychar = YYEMPTY) | 
 | #undef  YYEMPTY | 
 | #define YYEMPTY		(-2) | 
 | #undef  YYEOF | 
 | #define YYEOF		0 | 
 | #undef  YYACCEPT | 
 | #define YYACCEPT	goto yyacceptlab | 
 | #undef  YYABORT | 
 | #define YYABORT		goto yyabortlab | 
 | #undef  YYERROR | 
 | #define YYERROR		goto yyerrorlab | 
 | #undef  YYFAIL | 
 | #define YYFAIL		goto yyerrlab | 
 | #undef  YYTERROR | 
 | #define YYTERROR	1 | 
 | #undef  YYERRCODE | 
 | #define YYERRCODE	256 | 
 | #undef  YYPOPSTACK | 
 | #define YYPOPSTACK   (yyvsp--, yyssp--) | 
 | #undef  YY_INT_ALIGNED | 
 | #define  YY_INT_ALIGNED short int | 
 | #undef  FLEX_SCANNER | 
 | #define FLEX_SCANNER | 
 | #undef  YY_FLEX_MAJOR_VERSION | 
 | #define YY_FLEX_MAJOR_VERSION 2 | 
 | #undef  YY_FLEX_MINOR_VERSION | 
 | #define YY_FLEX_MINOR_VERSION 5 | 
 | #undef  YY_FLEX_SUBMINOR_VERSION | 
 | #define YY_FLEX_SUBMINOR_VERSION 31 | 
 | #undef  FLEX_BETA | 
 | #define FLEX_BETA | 
 | #undef  FLEXINT_H | 
 | #define FLEXINT_H | 
 | #undef  INT8_MIN | 
 | #define INT8_MIN               (-128) | 
 | #undef  INT16_MIN | 
 | #define INT16_MIN              (-32767-1) | 
 | #undef  INT32_MIN | 
 | #define INT32_MIN              (-2147483647-1) | 
 | #undef  INT8_MAX | 
 | #define INT8_MAX               (127) | 
 | #undef  INT16_MAX | 
 | #define INT16_MAX              (32767) | 
 | #undef  INT32_MAX | 
 | #define INT32_MAX              (2147483647) | 
 | #undef  UINT8_MAX | 
 | #define UINT8_MAX              (255U) | 
 | #undef  UINT16_MAX | 
 | #define UINT16_MAX             (65535U) | 
 | #undef  UINT32_MAX | 
 | #define UINT32_MAX             (4294967295U) | 
 | #undef  YY_USE_CONST | 
 | #define YY_USE_CONST | 
 | #undef  YY_USE_CONST | 
 | #define YY_USE_CONST | 
 | #undef  yyconst | 
 | #define yyconst const | 
 | #undef  yyconst | 
 | #define yyconst | 
 | #undef  YY_NULL | 
 | #define YY_NULL 0 | 
 | #undef  BEGIN | 
 | #define BEGIN (yy_start) = 1 + 2 * | 
 | #undef  YY_START | 
 | #define YY_START (((yy_start) - 1) / 2) | 
 | #undef  YYSTATE | 
 | #define YYSTATE YY_START | 
 | #undef  YY_NEW_FILE | 
 | #define YY_NEW_FILE yyrestart(yyin  ) | 
 | #undef  YY_END_OF_BUFFER_CHAR | 
 | #define YY_END_OF_BUFFER_CHAR 0 | 
 | #undef  YY_BUF_SIZE | 
 | #define YY_BUF_SIZE 16384 | 
 | #undef  YY_TYPEDEF_YY_BUFFER_STATE | 
 | #define YY_TYPEDEF_YY_BUFFER_STATE | 
 | #undef  EOB_ACT_CONTINUE_SCAN | 
 | #define EOB_ACT_CONTINUE_SCAN 0 | 
 | #undef  EOB_ACT_END_OF_FILE | 
 | #define EOB_ACT_END_OF_FILE 1 | 
 | #undef  EOB_ACT_LAST_MATCH | 
 | #define EOB_ACT_LAST_MATCH 2 | 
 | #undef  YY_TYPEDEF_YY_SIZE_T | 
 | #define YY_TYPEDEF_YY_SIZE_T | 
 | #undef  YY_STRUCT_YY_BUFFER_STATE | 
 | #define YY_STRUCT_YY_BUFFER_STATE | 
 | #undef  YY_BUFFER_NEW | 
 | #define YY_BUFFER_NEW 0 | 
 | #undef  YY_BUFFER_NORMAL | 
 | #define YY_BUFFER_NORMAL 1 | 
 | #undef  YY_BUFFER_EOF_PENDING | 
 | #define YY_BUFFER_EOF_PENDING 2 | 
 | #undef  YY_CURRENT_BUFFER | 
 | #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ | 
 | #undef  YY_CURRENT_BUFFER_LVALUE | 
 | #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] | 
 | #undef  YY_FLUSH_BUFFER | 
 | #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) | 
 | #undef  yy_new_buffer | 
 | #define yy_new_buffer yy_create_buffer | 
 | #undef  YY_SKIP_YYWRAP | 
 | #define YY_SKIP_YYWRAP | 
 | #undef  yytext_ptr | 
 | #define yytext_ptr yytext | 
 | #undef  YY_DO_BEFORE_ACTION | 
 | #define YY_DO_BEFORE_ACTION \ | 
 | #undef  YY_NUM_RULES | 
 | #define YY_NUM_RULES 29 | 
 | #undef  YY_END_OF_BUFFER | 
 | #define YY_END_OF_BUFFER 30 | 
 | #undef  REJECT | 
 | #define REJECT reject_used_but_not_detected | 
 | #undef  YY_MORE_ADJ | 
 | #define YY_MORE_ADJ 0 | 
 | #undef  YY_RESTORE_YY_MORE_OFFSET | 
 | #define YY_RESTORE_YY_MORE_OFFSET | 
 | #undef  YY_NO_UNPUT | 
 | #define YY_NO_UNPUT | 
 | #undef  INITIAL | 
 | #define INITIAL 0 | 
 | #undef  YY_EXTRA_TYPE | 
 | #define YY_EXTRA_TYPE void * | 
 | #undef  YY_READ_BUF_SIZE | 
 | #define YY_READ_BUF_SIZE 8192 | 
 | #undef  ECHO | 
 | #define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) | 
 | #undef  YY_START_STACK_INCR | 
 | #define YY_START_STACK_INCR 25 | 
 | #undef  YY_DECL_IS_OURS | 
 | #define YY_DECL_IS_OURS 1 | 
 | #undef  YY_DECL | 
 | #define YY_DECL int yylex (void) | 
 | #undef  YY_USER_ACTION | 
 | #define YY_USER_ACTION | 
 | #undef  YY_BREAK | 
 | #define YY_BREAK break; | 
 | #undef  YY_RULE_SETUP | 
 | #define YY_RULE_SETUP \ | 
 | #undef  YY_EXIT_FAILURE | 
 | #define YY_EXIT_FAILURE 2 | 
 | #undef  YYTABLES_NAME | 
 | #define YYTABLES_NAME "yytables" | 
 | #undef  MAXPWD | 
 | #define MAXPWD 256 | 
 | #undef  signal | 
 | #define signal bsd_signal | 
 | #undef  ALL | 
 | #define ALL (E_OPEN|E_CREAT|E_EXEC) | 
 | #undef  EV_EXIT | 
 | #define EV_EXIT 01		/* exit after evaluating tree */ | 
 | #undef  EV_TESTED | 
 | #define EV_TESTED 02		/* exit status is checked; ignore -e flag */ | 
 | #undef  EV_BACKCMD | 
 | #define EV_BACKCMD 04		/* command executing within back quotes */ | 
 | #undef  CMDTABLESIZE | 
 | #define CMDTABLESIZE 31		/* should be prime */ | 
 | #undef  ARB | 
 | #define ARB 1			/* actual size determined at run time */ | 
 | #undef  NEWARGS | 
 | #define NEWARGS 5 | 
 | #undef  EOF_NLEFT | 
 | #define EOF_NLEFT -99		/* value of parsenleft when EOF pushed back */ | 
 | #undef  _PATH_DEVNULL | 
 | #define _PATH_DEVNULL "/dev/null" | 
 | #undef  PROFILE | 
 | #define PROFILE 0 | 
 | #undef  SIGSSIZE | 
 | #define SIGSSIZE (sizeof(sigs)/sizeof(sigs[0])) | 
 | #undef  MINSIZE | 
 | #define MINSIZE 504		/* minimum size of a block */ | 
 | #undef  DEFINE_OPTIONS | 
 | #define DEFINE_OPTIONS | 
 | #undef  EOFMARKLEN | 
 | #define EOFMARKLEN 79 | 
 | #undef  OPENBRACE | 
 | #define OPENBRACE '{' | 
 | #undef  CLOSEBRACE | 
 | #define CLOSEBRACE '}' | 
 | #undef  EMPTY | 
 | #define EMPTY -2		/* marks an unused slot in redirtab */ | 
 | #undef  signal | 
 | #define signal bsd_signal | 
 | #undef  sys_signame | 
 | #define sys_signame sys_siglist | 
 | #undef  S_DFL | 
 | #define S_DFL 1			/* default signal handling (SIG_DFL) */ | 
 | #undef  S_CATCH | 
 | #define S_CATCH 2		/* signal is caught */ | 
 | #undef  S_IGN | 
 | #define S_IGN 3			/* signal is ignored (SIG_IGN) */ | 
 | #undef  S_HARD_IGN | 
 | #define S_HARD_IGN 4		/* signal is ignored permenantly */ | 
 | #undef  S_RESET | 
 | #define S_RESET 5		/* temporary - to reset a hard ignored sig */ | 
 | #undef  OUTBUFSIZ | 
 | #define OUTBUFSIZ BUFSIZ | 
 | #undef  BLOCK_OUT | 
 | #define BLOCK_OUT -2		/* output to a fixed block of memory */ | 
 | #undef  MEM_OUT | 
 | #define MEM_OUT -3		/* output to dynamically allocated memory */ | 
 | #undef  OUTPUT_ERR | 
 | #define OUTPUT_ERR 01		/* error occurred on output */ | 
 | #undef  TEMPSIZE | 
 | #define TEMPSIZE 24 | 
 | #undef  HAVE_VASPRINTF | 
 | #define HAVE_VASPRINTF 1 | 
 | #undef  VTABSIZE | 
 | #define VTABSIZE 39 | 
 | #undef  VTABSIZE | 
 | #define VTABSIZE 517 | 
 | #undef  main | 
 | #define main echocmd | 
 | #undef  YYBISON | 
 | #define YYBISON 1 | 
 | #undef  YYSKELETON_NAME | 
 | #define YYSKELETON_NAME "yacc.c" | 
 | #undef  YYPURE | 
 | #define YYPURE 0 | 
 | #undef  YYLSP_NEEDED | 
 | #define YYLSP_NEEDED 0 | 
 | #undef  ARITH_NUM | 
 | #define ARITH_NUM 258 | 
 | #undef  ARITH_LPAREN | 
 | #define ARITH_LPAREN 259 | 
 | #undef  ARITH_RPAREN | 
 | #define ARITH_RPAREN 260 | 
 | #undef  ARITH_OR | 
 | #define ARITH_OR 261 | 
 | #undef  ARITH_AND | 
 | #define ARITH_AND 262 | 
 | #undef  ARITH_BOR | 
 | #define ARITH_BOR 263 | 
 | #undef  ARITH_BXOR | 
 | #define ARITH_BXOR 264 | 
 | #undef  ARITH_BAND | 
 | #define ARITH_BAND 265 | 
 | #undef  ARITH_NE | 
 | #define ARITH_NE 266 | 
 | #undef  ARITH_EQ | 
 | #define ARITH_EQ 267 | 
 | #undef  ARITH_LE | 
 | #define ARITH_LE 268 | 
 | #undef  ARITH_GE | 
 | #define ARITH_GE 269 | 
 | #undef  ARITH_GT | 
 | #define ARITH_GT 270 | 
 | #undef  ARITH_LT | 
 | #define ARITH_LT 271 | 
 | #undef  ARITH_RSHIFT | 
 | #define ARITH_RSHIFT 272 | 
 | #undef  ARITH_LSHIFT | 
 | #define ARITH_LSHIFT 273 | 
 | #undef  ARITH_SUB | 
 | #define ARITH_SUB 274 | 
 | #undef  ARITH_ADD | 
 | #define ARITH_ADD 275 | 
 | #undef  ARITH_REM | 
 | #define ARITH_REM 276 | 
 | #undef  ARITH_DIV | 
 | #define ARITH_DIV 277 | 
 | #undef  ARITH_MUL | 
 | #define ARITH_MUL 278 | 
 | #undef  ARITH_BNOT | 
 | #define ARITH_BNOT 279 | 
 | #undef  ARITH_NOT | 
 | #define ARITH_NOT 280 | 
 | #undef  ARITH_UNARYPLUS | 
 | #define ARITH_UNARYPLUS 281 | 
 | #undef  ARITH_UNARYMINUS | 
 | #define ARITH_UNARYMINUS 282 | 
 | #undef  YYFINAL | 
 | #define YYFINAL  14 | 
 | #undef  YYLAST | 
 | #define YYLAST   170 | 
 | #undef  YYNTOKENS | 
 | #define YYNTOKENS  28 | 
 | #undef  YYNNTS | 
 | #define YYNNTS  3 | 
 | #undef  YYNRULES | 
 | #define YYNRULES  26 | 
 | #undef  YYNSTATES | 
 | #define YYNSTATES  52 | 
 | #undef  YYUNDEFTOK | 
 | #define YYUNDEFTOK  2 | 
 | #undef  YYMAXUTOK | 
 | #define YYMAXUTOK   282 | 
 | #undef  YYPACT_NINF | 
 | #define YYPACT_NINF -13 | 
 | #undef  YYTABLE_NINF | 
 | #define YYTABLE_NINF -1 | 
 | #undef  yyerrok | 
 | #define yyerrok		(yyerrstatus = 0) | 
 | #undef  yyclearin | 
 | #define yyclearin	(yychar = YYEMPTY) | 
 | #undef  YYEMPTY | 
 | #define YYEMPTY		(-2) | 
 | #undef  YYEOF | 
 | #define YYEOF		0 | 
 | #undef  YYACCEPT | 
 | #define YYACCEPT	goto yyacceptlab | 
 | #undef  YYABORT | 
 | #define YYABORT		goto yyabortlab | 
 | #undef  YYERROR | 
 | #define YYERROR		goto yyerrorlab | 
 | #undef  YYFAIL | 
 | #define YYFAIL		goto yyerrlab | 
 | #undef  YYTERROR | 
 | #define YYTERROR	1 | 
 | #undef  YYERRCODE | 
 | #define YYERRCODE	256 | 
 | #undef  YYPOPSTACK | 
 | #define YYPOPSTACK   (yyvsp--, yyssp--) | 
 | #undef  YY_INT_ALIGNED | 
 | #define  YY_INT_ALIGNED short int | 
 | #undef  FLEX_SCANNER | 
 | #define FLEX_SCANNER | 
 | #undef  YY_FLEX_MAJOR_VERSION | 
 | #define YY_FLEX_MAJOR_VERSION 2 | 
 | #undef  YY_FLEX_MINOR_VERSION | 
 | #define YY_FLEX_MINOR_VERSION 5 | 
 | #undef  YY_FLEX_SUBMINOR_VERSION | 
 | #define YY_FLEX_SUBMINOR_VERSION 31 | 
 | #undef  FLEX_BETA | 
 | #define FLEX_BETA | 
 | #undef  FLEXINT_H | 
 | #define FLEXINT_H | 
 | #undef  INT8_MIN | 
 | #define INT8_MIN               (-128) | 
 | #undef  INT16_MIN | 
 | #define INT16_MIN              (-32767-1) | 
 | #undef  INT32_MIN | 
 | #define INT32_MIN              (-2147483647-1) | 
 | #undef  INT8_MAX | 
 | #define INT8_MAX               (127) | 
 | #undef  INT16_MAX | 
 | #define INT16_MAX              (32767) | 
 | #undef  INT32_MAX | 
 | #define INT32_MAX              (2147483647) | 
 | #undef  UINT8_MAX | 
 | #define UINT8_MAX              (255U) | 
 | #undef  UINT16_MAX | 
 | #define UINT16_MAX             (65535U) | 
 | #undef  UINT32_MAX | 
 | #define UINT32_MAX             (4294967295U) | 
 | #undef  YY_USE_CONST | 
 | #define YY_USE_CONST | 
 | #undef  YY_USE_CONST | 
 | #define YY_USE_CONST | 
 | #undef  yyconst | 
 | #define yyconst const | 
 | #undef  yyconst | 
 | #define yyconst | 
 | #undef  YY_NULL | 
 | #define YY_NULL 0 | 
 | #undef  BEGIN | 
 | #define BEGIN (yy_start) = 1 + 2 * | 
 | #undef  YY_START | 
 | #define YY_START (((yy_start) - 1) / 2) | 
 | #undef  YYSTATE | 
 | #define YYSTATE YY_START | 
 | #undef  YY_NEW_FILE | 
 | #define YY_NEW_FILE yyrestart(yyin  ) | 
 | #undef  YY_END_OF_BUFFER_CHAR | 
 | #define YY_END_OF_BUFFER_CHAR 0 | 
 | #undef  YY_BUF_SIZE | 
 | #define YY_BUF_SIZE 16384 | 
 | #undef  YY_TYPEDEF_YY_BUFFER_STATE | 
 | #define YY_TYPEDEF_YY_BUFFER_STATE | 
 | #undef  EOB_ACT_CONTINUE_SCAN | 
 | #define EOB_ACT_CONTINUE_SCAN 0 | 
 | #undef  EOB_ACT_END_OF_FILE | 
 | #define EOB_ACT_END_OF_FILE 1 | 
 | #undef  EOB_ACT_LAST_MATCH | 
 | #define EOB_ACT_LAST_MATCH 2 | 
 | #undef  YY_TYPEDEF_YY_SIZE_T | 
 | #define YY_TYPEDEF_YY_SIZE_T | 
 | #undef  YY_STRUCT_YY_BUFFER_STATE | 
 | #define YY_STRUCT_YY_BUFFER_STATE | 
 | #undef  YY_BUFFER_NEW | 
 | #define YY_BUFFER_NEW 0 | 
 | #undef  YY_BUFFER_NORMAL | 
 | #define YY_BUFFER_NORMAL 1 | 
 | #undef  YY_BUFFER_EOF_PENDING | 
 | #define YY_BUFFER_EOF_PENDING 2 | 
 | #undef  YY_CURRENT_BUFFER | 
 | #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ | 
 | #undef  YY_CURRENT_BUFFER_LVALUE | 
 | #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] | 
 | #undef  YY_FLUSH_BUFFER | 
 | #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) | 
 | #undef  yy_new_buffer | 
 | #define yy_new_buffer yy_create_buffer | 
 | #undef  yytext_ptr | 
 | #define yytext_ptr yytext | 
 | #undef  YY_DO_BEFORE_ACTION | 
 | #define YY_DO_BEFORE_ACTION \ | 
 | #undef  YY_NUM_RULES | 
 | #define YY_NUM_RULES 29 | 
 | #undef  YY_END_OF_BUFFER | 
 | #define YY_END_OF_BUFFER 30 | 
 | #undef  REJECT | 
 | #define REJECT reject_used_but_not_detected | 
 | #undef  YY_MORE_ADJ | 
 | #define YY_MORE_ADJ 0 | 
 | #undef  YY_RESTORE_YY_MORE_OFFSET | 
 | #define YY_RESTORE_YY_MORE_OFFSET | 
 | #undef  YY_NO_UNPUT | 
 | #define YY_NO_UNPUT | 
 | #undef  INITIAL | 
 | #define INITIAL 0 | 
 | #undef  YY_EXTRA_TYPE | 
 | #define YY_EXTRA_TYPE void * | 
 | #undef  YY_READ_BUF_SIZE | 
 | #define YY_READ_BUF_SIZE 8192 | 
 | #undef  ECHO | 
 | #define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) | 
 | #undef  YY_START_STACK_INCR | 
 | #define YY_START_STACK_INCR 25 | 
 | #undef  YY_DECL_IS_OURS | 
 | #define YY_DECL_IS_OURS 1 | 
 | #undef  YY_DECL | 
 | #define YY_DECL int yylex (void) | 
 | #undef  YY_USER_ACTION | 
 | #define YY_USER_ACTION | 
 | #undef  YY_BREAK | 
 | #define YY_BREAK break; | 
 | #undef  YY_RULE_SETUP | 
 | #define YY_RULE_SETUP \ | 
 | #undef  YY_EXIT_FAILURE | 
 | #define YY_EXIT_FAILURE 2 | 
 | #undef  YYTABLES_NAME | 
 | #define YYTABLES_NAME "yytables" | 
 | #undef  MAXPWD | 
 | #define MAXPWD 256 | 
 | #undef  ALL | 
 | #define ALL (E_OPEN|E_CREAT|E_EXEC) | 
 | #undef  EV_EXIT | 
 | #define EV_EXIT 01		/* exit after evaluating tree */ | 
 | #undef  EV_TESTED | 
 | #define EV_TESTED 02		/* exit status is checked; ignore -e flag */ | 
 | #undef  EV_BACKCMD | 
 | #define EV_BACKCMD 04		/* command executing within back quotes */ | 
 | #undef  CMDTABLESIZE | 
 | #define CMDTABLESIZE 31		/* should be prime */ | 
 | #undef  ARB | 
 | #define ARB 1			/* actual size determined at run time */ | 
 | #undef  NEWARGS | 
 | #define NEWARGS 5 | 
 | #undef  EOF_NLEFT | 
 | #define EOF_NLEFT -99		/* value of parsenleft when EOF pushed back */ | 
 | #undef  _PATH_DEVNULL | 
 | #define _PATH_DEVNULL "/dev/null" | 
 | #undef  PROFILE | 
 | #define PROFILE 0 | 
 | #undef  SIGSSIZE | 
 | #define SIGSSIZE (sizeof(sigs)/sizeof(sigs[0])) | 
 | #undef  MINSIZE | 
 | #define MINSIZE 504		/* minimum size of a block */ | 
 | #undef  DEFINE_OPTIONS | 
 | #define DEFINE_OPTIONS | 
 | #undef  EOFMARKLEN | 
 | #define EOFMARKLEN 79 | 
 | #undef  OPENBRACE | 
 | #define OPENBRACE '{' | 
 | #undef  CLOSEBRACE | 
 | #define CLOSEBRACE '}' | 
 | #undef  EMPTY | 
 | #define EMPTY -2		/* marks an unused slot in redirtab */ | 
 | #undef  S_DFL | 
 | #define S_DFL 1			/* default signal handling (SIG_DFL) */ | 
 | #undef  S_CATCH | 
 | #define S_CATCH 2		/* signal is caught */ | 
 | #undef  S_IGN | 
 | #define S_IGN 3			/* signal is ignored (SIG_IGN) */ | 
 | #undef  S_HARD_IGN | 
 | #define S_HARD_IGN 4		/* signal is ignored permenantly */ | 
 | #undef  S_RESET | 
 | #define S_RESET 5		/* temporary - to reset a hard ignored sig */ | 
 | #undef  OUTBUFSIZ | 
 | #define OUTBUFSIZ BUFSIZ | 
 | #undef  BLOCK_OUT | 
 | #define BLOCK_OUT -2		/* output to a fixed block of memory */ | 
 | #undef  MEM_OUT | 
 | #define MEM_OUT -3		/* output to dynamically allocated memory */ | 
 | #undef  OUTPUT_ERR | 
 | #define OUTPUT_ERR 01		/* error occurred on output */ | 
 | #undef  TEMPSIZE | 
 | #define TEMPSIZE 24 | 
 | #undef  HAVE_VASPRINTF | 
 | #define HAVE_VASPRINTF 1 | 
 | #undef  VTABSIZE | 
 | #define VTABSIZE 39 | 
 | #undef  VTABSIZE | 
 | #define VTABSIZE 517 | 
 | #undef  main | 
 | #define main echocmd | 
 |  | 
 |  | 
 |  | 
 | extern void rmaliases(void); | 
 |  | 
 | extern int loopnest;		/* current loop nesting level */ | 
 |  | 
 | extern void deletefuncs(void); | 
 | extern void hash_special_builtins(void); | 
 |  | 
 | struct strpush { | 
 | 	struct strpush *prev;	/* preceding string on stack */ | 
 | 	char *prevstring; | 
 | 	int prevnleft; | 
 | 	int prevlleft; | 
 | 	struct alias *ap;	/* if push was associated with an alias */ | 
 | }; | 
 |  | 
 | struct parsefile { | 
 | 	struct parsefile *prev;	/* preceding file on stack */ | 
 | 	int linno;		/* current line */ | 
 | 	int fd;			/* file descriptor (or -1 if string) */ | 
 | 	int nleft;		/* number of chars left in this line */ | 
 | 	int lleft;		/* number of chars left in this buffer */ | 
 | 	char *nextc;		/* next char in buffer */ | 
 | 	char *buf;		/* input buffer */ | 
 | 	struct strpush *strpush; /* for pushing strings at this level */ | 
 | 	struct strpush basestrpush; /* so pushing one is fast */ | 
 | }; | 
 |  | 
 | extern int parselleft;		/* copy of parsefile->lleft */ | 
 | extern struct parsefile basepf;	/* top level input file */ | 
 | extern char basebuf[BUFSIZ];	/* buffer for top level input file */ | 
 |  | 
 | extern pid_t backgndpid;	/* pid of last background process */ | 
 | extern int jobctl; | 
 |  | 
 | extern int tokpushback;		/* last token pushed back */ | 
 | extern int checkkwd;            /* 1 == check for kwds, 2 == also eat newlines */ | 
 |  | 
 | struct redirtab { | 
 | 	struct redirtab *next; | 
 | 	short renamed[10]; | 
 | }; | 
 |  | 
 | extern struct redirtab *redirlist; | 
 |  | 
 | extern char sigmode[NSIG];	/* current value of signal */ | 
 |  | 
 | extern char **environ; | 
 |  | 
 |  | 
 |  | 
 | /* | 
 |  * Initialization code. | 
 |  */ | 
 |  | 
 | void | 
 | init() { | 
 |  | 
 |       /* from exec.c: */ | 
 |       { | 
 | 	      hash_special_builtins(); | 
 |       } | 
 |  | 
 |       /* from input.c: */ | 
 |       { | 
 | 	      basepf.nextc = basepf.buf = basebuf; | 
 |       } | 
 |  | 
 |       /* from var.c: */ | 
 |       { | 
 | 	      char **envp; | 
 |  | 
 | 	      initvar(); | 
 | 	      for (envp = environ ; *envp ; envp++) { | 
 | 		      if (strchr(*envp, '=')) { | 
 | 			      setvareq(*envp, VEXPORT|VTEXTFIXED); | 
 | 		      } | 
 | 	      } | 
 |       } | 
 | } | 
 |  | 
 |  | 
 |  | 
 | /* | 
 |  * This routine is called when an error or an interrupt occurs in an | 
 |  * interactive shell and control is returned to the main command loop. | 
 |  */ | 
 |  | 
 | void | 
 | reset() { | 
 |  | 
 |       /* from eval.c: */ | 
 |       { | 
 | 	      evalskip = 0; | 
 | 	      loopnest = 0; | 
 | 	      funcnest = 0; | 
 |       } | 
 |  | 
 |       /* from input.c: */ | 
 |       { | 
 | 	      if (exception != EXSHELLPROC) | 
 | 		      parselleft = parsenleft = 0;	/* clear input buffer */ | 
 | 	      popallfiles(); | 
 |       } | 
 |  | 
 |       /* from parser.c: */ | 
 |       { | 
 | 	      tokpushback = 0; | 
 | 	      checkkwd = 0; | 
 |       } | 
 |  | 
 |       /* from redir.c: */ | 
 |       { | 
 | 	      while (redirlist) | 
 | 		      popredir(); | 
 |       } | 
 |  | 
 |       /* from output.c: */ | 
 |       { | 
 | 	      out1 = &output; | 
 | 	      out2 = &errout; | 
 | 	      if (memout.buf != NULL) { | 
 | 		      ckfree(memout.buf); | 
 | 		      memout.buf = NULL; | 
 | 	      } | 
 |       } | 
 | } | 
 |  | 
 |  | 
 |  | 
 | /* | 
 |  * This routine is called to initialize the shell to run a shell procedure. | 
 |  */ | 
 |  | 
 | void | 
 | initshellproc() { | 
 |  | 
 |       /* from alias.c: */ | 
 |       { | 
 | 	      rmaliases(); | 
 |       } | 
 |  | 
 |       /* from eval.c: */ | 
 |       { | 
 | 	      exitstatus = 0; | 
 |       } | 
 |  | 
 |       /* from exec.c: */ | 
 |       { | 
 | 	      deletefuncs(); | 
 |       } | 
 |  | 
 |       /* from input.c: */ | 
 |       { | 
 | 	      popallfiles(); | 
 |       } | 
 |  | 
 |       /* from jobs.c: */ | 
 |       { | 
 | 	      backgndpid = -1; | 
 | #if JOBS | 
 | 	      jobctl = 0; | 
 | #endif | 
 |       } | 
 |  | 
 |       /* from options.c: */ | 
 |       { | 
 | 	      int i; | 
 |  | 
 | 	      for (i = 0; optlist[i].name; i++) | 
 | 		      optlist[i].val = 0; | 
 | 	      optschanged(); | 
 |  | 
 |       } | 
 |  | 
 |       /* from redir.c: */ | 
 |       { | 
 | 	      clearredir(0); | 
 |       } | 
 |  | 
 |       /* from trap.c: */ | 
 |       { | 
 | 	      char *sm; | 
 |  | 
 | 	      clear_traps(0); | 
 | 	      for (sm = sigmode ; sm < sigmode + NSIG ; sm++) { | 
 | 		      if (*sm == S_IGN) | 
 | 			      *sm = S_HARD_IGN; | 
 | 	      } | 
 |       } | 
 |  | 
 |       /* from var.c: */ | 
 |       { | 
 | 	      shprocvar(); | 
 |       } | 
 | } |