• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * This file was generated by the mkinit program.
3  */
4 
5 #include "shell.h"
6 #include "mystring.h"
7 #include "init.h"
8 #include "eval.h"
9 #include <stdio.h>
10 #include "input.h"
11 #include "error.h"
12 #include <stdlib.h>
13 #include "options.h"
14 #include "redir.h"
15 #include <signal.h>
16 #include "trap.h"
17 #include "output.h"
18 #include "memalloc.h"
19 #include "var.h"
20 
21 
22 
23 #undef  ATABSIZE
24 #define ATABSIZE 39
25 #undef  YYBISON
26 #define YYBISON 1
27 #undef  YYSKELETON_NAME
28 #define YYSKELETON_NAME "yacc.c"
29 #undef  YYPURE
30 #define YYPURE 0
31 #undef  YYLSP_NEEDED
32 #define YYLSP_NEEDED 0
33 #undef  ARITH_NUM
34 #define ARITH_NUM 258
35 #undef  ARITH_LPAREN
36 #define ARITH_LPAREN 259
37 #undef  ARITH_RPAREN
38 #define ARITH_RPAREN 260
39 #undef  ARITH_OR
40 #define ARITH_OR 261
41 #undef  ARITH_AND
42 #define ARITH_AND 262
43 #undef  ARITH_BOR
44 #define ARITH_BOR 263
45 #undef  ARITH_BXOR
46 #define ARITH_BXOR 264
47 #undef  ARITH_BAND
48 #define ARITH_BAND 265
49 #undef  ARITH_NE
50 #define ARITH_NE 266
51 #undef  ARITH_EQ
52 #define ARITH_EQ 267
53 #undef  ARITH_LE
54 #define ARITH_LE 268
55 #undef  ARITH_GE
56 #define ARITH_GE 269
57 #undef  ARITH_GT
58 #define ARITH_GT 270
59 #undef  ARITH_LT
60 #define ARITH_LT 271
61 #undef  ARITH_RSHIFT
62 #define ARITH_RSHIFT 272
63 #undef  ARITH_LSHIFT
64 #define ARITH_LSHIFT 273
65 #undef  ARITH_SUB
66 #define ARITH_SUB 274
67 #undef  ARITH_ADD
68 #define ARITH_ADD 275
69 #undef  ARITH_REM
70 #define ARITH_REM 276
71 #undef  ARITH_DIV
72 #define ARITH_DIV 277
73 #undef  ARITH_MUL
74 #define ARITH_MUL 278
75 #undef  ARITH_BNOT
76 #define ARITH_BNOT 279
77 #undef  ARITH_NOT
78 #define ARITH_NOT 280
79 #undef  ARITH_UNARYPLUS
80 #define ARITH_UNARYPLUS 281
81 #undef  ARITH_UNARYMINUS
82 #define ARITH_UNARYMINUS 282
83 #undef  YYFINAL
84 #define YYFINAL  14
85 #undef  YYLAST
86 #define YYLAST   170
87 #undef  YYNTOKENS
88 #define YYNTOKENS  28
89 #undef  YYNNTS
90 #define YYNNTS  3
91 #undef  YYNRULES
92 #define YYNRULES  26
93 #undef  YYNSTATES
94 #define YYNSTATES  52
95 #undef  YYUNDEFTOK
96 #define YYUNDEFTOK  2
97 #undef  YYMAXUTOK
98 #define YYMAXUTOK   282
99 #undef  YYPACT_NINF
100 #define YYPACT_NINF -13
101 #undef  YYTABLE_NINF
102 #define YYTABLE_NINF -1
103 #undef  yyerrok
104 #define yyerrok		(yyerrstatus = 0)
105 #undef  yyclearin
106 #define yyclearin	(yychar = YYEMPTY)
107 #undef  YYEMPTY
108 #define YYEMPTY		(-2)
109 #undef  YYEOF
110 #define YYEOF		0
111 #undef  YYACCEPT
112 #define YYACCEPT	goto yyacceptlab
113 #undef  YYABORT
114 #define YYABORT		goto yyabortlab
115 #undef  YYERROR
116 #define YYERROR		goto yyerrorlab
117 #undef  YYFAIL
118 #define YYFAIL		goto yyerrlab
119 #undef  YYTERROR
120 #define YYTERROR	1
121 #undef  YYERRCODE
122 #define YYERRCODE	256
123 #undef  YYPOPSTACK
124 #define YYPOPSTACK   (yyvsp--, yyssp--)
125 #undef  YY_INT_ALIGNED
126 #define  YY_INT_ALIGNED short int
127 #undef  FLEX_SCANNER
128 #define FLEX_SCANNER
129 #undef  YY_FLEX_MAJOR_VERSION
130 #define YY_FLEX_MAJOR_VERSION 2
131 #undef  YY_FLEX_MINOR_VERSION
132 #define YY_FLEX_MINOR_VERSION 5
133 #undef  YY_FLEX_SUBMINOR_VERSION
134 #define YY_FLEX_SUBMINOR_VERSION 31
135 #undef  FLEX_BETA
136 #define FLEX_BETA
137 #undef  FLEXINT_H
138 #define FLEXINT_H
139 #undef  INT8_MIN
140 #define INT8_MIN               (-128)
141 #undef  INT16_MIN
142 #define INT16_MIN              (-32767-1)
143 #undef  INT32_MIN
144 #define INT32_MIN              (-2147483647-1)
145 #undef  INT8_MAX
146 #define INT8_MAX               (127)
147 #undef  INT16_MAX
148 #define INT16_MAX              (32767)
149 #undef  INT32_MAX
150 #define INT32_MAX              (2147483647)
151 #undef  UINT8_MAX
152 #define UINT8_MAX              (255U)
153 #undef  UINT16_MAX
154 #define UINT16_MAX             (65535U)
155 #undef  UINT32_MAX
156 #define UINT32_MAX             (4294967295U)
157 #undef  YY_USE_CONST
158 #define YY_USE_CONST
159 #undef  YY_USE_CONST
160 #define YY_USE_CONST
161 #undef  yyconst
162 #define yyconst const
163 #undef  yyconst
164 #define yyconst
165 #undef  YY_NULL
166 #define YY_NULL 0
167 #undef  BEGIN
168 #define BEGIN (yy_start) = 1 + 2 *
169 #undef  YY_START
170 #define YY_START (((yy_start) - 1) / 2)
171 #undef  YYSTATE
172 #define YYSTATE YY_START
173 #undef  YY_NEW_FILE
174 #define YY_NEW_FILE yyrestart(yyin  )
175 #undef  YY_END_OF_BUFFER_CHAR
176 #define YY_END_OF_BUFFER_CHAR 0
177 #undef  YY_BUF_SIZE
178 #define YY_BUF_SIZE 16384
179 #undef  YY_TYPEDEF_YY_BUFFER_STATE
180 #define YY_TYPEDEF_YY_BUFFER_STATE
181 #undef  EOB_ACT_CONTINUE_SCAN
182 #define EOB_ACT_CONTINUE_SCAN 0
183 #undef  EOB_ACT_END_OF_FILE
184 #define EOB_ACT_END_OF_FILE 1
185 #undef  EOB_ACT_LAST_MATCH
186 #define EOB_ACT_LAST_MATCH 2
187 #undef  YY_TYPEDEF_YY_SIZE_T
188 #define YY_TYPEDEF_YY_SIZE_T
189 #undef  YY_STRUCT_YY_BUFFER_STATE
190 #define YY_STRUCT_YY_BUFFER_STATE
191 #undef  YY_BUFFER_NEW
192 #define YY_BUFFER_NEW 0
193 #undef  YY_BUFFER_NORMAL
194 #define YY_BUFFER_NORMAL 1
195 #undef  YY_BUFFER_EOF_PENDING
196 #define YY_BUFFER_EOF_PENDING 2
197 #undef  YY_CURRENT_BUFFER
198 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
199 #undef  YY_CURRENT_BUFFER_LVALUE
200 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
201 #undef  YY_FLUSH_BUFFER
202 #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
203 #undef  yy_new_buffer
204 #define yy_new_buffer yy_create_buffer
205 #undef  YY_SKIP_YYWRAP
206 #define YY_SKIP_YYWRAP
207 #undef  yytext_ptr
208 #define yytext_ptr yytext
209 #undef  YY_DO_BEFORE_ACTION
210 #define YY_DO_BEFORE_ACTION \
211 #undef  YY_NUM_RULES
212 #define YY_NUM_RULES 29
213 #undef  YY_END_OF_BUFFER
214 #define YY_END_OF_BUFFER 30
215 #undef  REJECT
216 #define REJECT reject_used_but_not_detected
217 #undef  YY_MORE_ADJ
218 #define YY_MORE_ADJ 0
219 #undef  YY_RESTORE_YY_MORE_OFFSET
220 #define YY_RESTORE_YY_MORE_OFFSET
221 #undef  YY_NO_UNPUT
222 #define YY_NO_UNPUT
223 #undef  INITIAL
224 #define INITIAL 0
225 #undef  YY_EXTRA_TYPE
226 #define YY_EXTRA_TYPE void *
227 #undef  YY_READ_BUF_SIZE
228 #define YY_READ_BUF_SIZE 8192
229 #undef  ECHO
230 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
231 #undef  YY_START_STACK_INCR
232 #define YY_START_STACK_INCR 25
233 #undef  YY_DECL_IS_OURS
234 #define YY_DECL_IS_OURS 1
235 #undef  YY_DECL
236 #define YY_DECL int yylex (void)
237 #undef  YY_USER_ACTION
238 #define YY_USER_ACTION
239 #undef  YY_BREAK
240 #define YY_BREAK break;
241 #undef  YY_RULE_SETUP
242 #define YY_RULE_SETUP \
243 #undef  YY_EXIT_FAILURE
244 #define YY_EXIT_FAILURE 2
245 #undef  YYTABLES_NAME
246 #define YYTABLES_NAME "yytables"
247 #undef  MAXPWD
248 #define MAXPWD 256
249 #undef  signal
250 #define signal bsd_signal
251 #undef  ALL
252 #define ALL (E_OPEN|E_CREAT|E_EXEC)
253 #undef  EV_EXIT
254 #define EV_EXIT 01		/* exit after evaluating tree */
255 #undef  EV_TESTED
256 #define EV_TESTED 02		/* exit status is checked; ignore -e flag */
257 #undef  EV_BACKCMD
258 #define EV_BACKCMD 04		/* command executing within back quotes */
259 #undef  CMDTABLESIZE
260 #define CMDTABLESIZE 31		/* should be prime */
261 #undef  ARB
262 #define ARB 1			/* actual size determined at run time */
263 #undef  NEWARGS
264 #define NEWARGS 5
265 #undef  EOF_NLEFT
266 #define EOF_NLEFT -99		/* value of parsenleft when EOF pushed back */
267 #undef  _PATH_DEVNULL
268 #define _PATH_DEVNULL "/dev/null"
269 #undef  PROFILE
270 #define PROFILE 0
271 #undef  SIGSSIZE
272 #define SIGSSIZE (sizeof(sigs)/sizeof(sigs[0]))
273 #undef  MINSIZE
274 #define MINSIZE 504		/* minimum size of a block */
275 #undef  DEFINE_OPTIONS
276 #define DEFINE_OPTIONS
277 #undef  EOFMARKLEN
278 #define EOFMARKLEN 79
279 #undef  OPENBRACE
280 #define OPENBRACE '{'
281 #undef  CLOSEBRACE
282 #define CLOSEBRACE '}'
283 #undef  EMPTY
284 #define EMPTY -2		/* marks an unused slot in redirtab */
285 #undef  signal
286 #define signal bsd_signal
287 #undef  sys_signame
288 #define sys_signame sys_siglist
289 #undef  S_DFL
290 #define S_DFL 1			/* default signal handling (SIG_DFL) */
291 #undef  S_CATCH
292 #define S_CATCH 2		/* signal is caught */
293 #undef  S_IGN
294 #define S_IGN 3			/* signal is ignored (SIG_IGN) */
295 #undef  S_HARD_IGN
296 #define S_HARD_IGN 4		/* signal is ignored permenantly */
297 #undef  S_RESET
298 #define S_RESET 5		/* temporary - to reset a hard ignored sig */
299 #undef  OUTBUFSIZ
300 #define OUTBUFSIZ BUFSIZ
301 #undef  BLOCK_OUT
302 #define BLOCK_OUT -2		/* output to a fixed block of memory */
303 #undef  MEM_OUT
304 #define MEM_OUT -3		/* output to dynamically allocated memory */
305 #undef  OUTPUT_ERR
306 #define OUTPUT_ERR 01		/* error occurred on output */
307 #undef  TEMPSIZE
308 #define TEMPSIZE 24
309 #undef  HAVE_VASPRINTF
310 #define HAVE_VASPRINTF 1
311 #undef  VTABSIZE
312 #define VTABSIZE 39
313 #undef  VTABSIZE
314 #define VTABSIZE 517
315 #undef  ATABSIZE
316 #define ATABSIZE 39
317 #undef  YYBISON
318 #define YYBISON 1
319 #undef  YYSKELETON_NAME
320 #define YYSKELETON_NAME "yacc.c"
321 #undef  YYPURE
322 #define YYPURE 0
323 #undef  YYLSP_NEEDED
324 #define YYLSP_NEEDED 0
325 #undef  ARITH_NUM
326 #define ARITH_NUM 258
327 #undef  ARITH_LPAREN
328 #define ARITH_LPAREN 259
329 #undef  ARITH_RPAREN
330 #define ARITH_RPAREN 260
331 #undef  ARITH_OR
332 #define ARITH_OR 261
333 #undef  ARITH_AND
334 #define ARITH_AND 262
335 #undef  ARITH_BOR
336 #define ARITH_BOR 263
337 #undef  ARITH_BXOR
338 #define ARITH_BXOR 264
339 #undef  ARITH_BAND
340 #define ARITH_BAND 265
341 #undef  ARITH_NE
342 #define ARITH_NE 266
343 #undef  ARITH_EQ
344 #define ARITH_EQ 267
345 #undef  ARITH_LE
346 #define ARITH_LE 268
347 #undef  ARITH_GE
348 #define ARITH_GE 269
349 #undef  ARITH_GT
350 #define ARITH_GT 270
351 #undef  ARITH_LT
352 #define ARITH_LT 271
353 #undef  ARITH_RSHIFT
354 #define ARITH_RSHIFT 272
355 #undef  ARITH_LSHIFT
356 #define ARITH_LSHIFT 273
357 #undef  ARITH_SUB
358 #define ARITH_SUB 274
359 #undef  ARITH_ADD
360 #define ARITH_ADD 275
361 #undef  ARITH_REM
362 #define ARITH_REM 276
363 #undef  ARITH_DIV
364 #define ARITH_DIV 277
365 #undef  ARITH_MUL
366 #define ARITH_MUL 278
367 #undef  ARITH_BNOT
368 #define ARITH_BNOT 279
369 #undef  ARITH_NOT
370 #define ARITH_NOT 280
371 #undef  ARITH_UNARYPLUS
372 #define ARITH_UNARYPLUS 281
373 #undef  ARITH_UNARYMINUS
374 #define ARITH_UNARYMINUS 282
375 #undef  YYFINAL
376 #define YYFINAL  14
377 #undef  YYLAST
378 #define YYLAST   170
379 #undef  YYNTOKENS
380 #define YYNTOKENS  28
381 #undef  YYNNTS
382 #define YYNNTS  3
383 #undef  YYNRULES
384 #define YYNRULES  26
385 #undef  YYNSTATES
386 #define YYNSTATES  52
387 #undef  YYUNDEFTOK
388 #define YYUNDEFTOK  2
389 #undef  YYMAXUTOK
390 #define YYMAXUTOK   282
391 #undef  YYPACT_NINF
392 #define YYPACT_NINF -13
393 #undef  YYTABLE_NINF
394 #define YYTABLE_NINF -1
395 #undef  yyerrok
396 #define yyerrok		(yyerrstatus = 0)
397 #undef  yyclearin
398 #define yyclearin	(yychar = YYEMPTY)
399 #undef  YYEMPTY
400 #define YYEMPTY		(-2)
401 #undef  YYEOF
402 #define YYEOF		0
403 #undef  YYACCEPT
404 #define YYACCEPT	goto yyacceptlab
405 #undef  YYABORT
406 #define YYABORT		goto yyabortlab
407 #undef  YYERROR
408 #define YYERROR		goto yyerrorlab
409 #undef  YYFAIL
410 #define YYFAIL		goto yyerrlab
411 #undef  YYTERROR
412 #define YYTERROR	1
413 #undef  YYERRCODE
414 #define YYERRCODE	256
415 #undef  YYPOPSTACK
416 #define YYPOPSTACK   (yyvsp--, yyssp--)
417 #undef  YY_INT_ALIGNED
418 #define  YY_INT_ALIGNED short int
419 #undef  FLEX_SCANNER
420 #define FLEX_SCANNER
421 #undef  YY_FLEX_MAJOR_VERSION
422 #define YY_FLEX_MAJOR_VERSION 2
423 #undef  YY_FLEX_MINOR_VERSION
424 #define YY_FLEX_MINOR_VERSION 5
425 #undef  YY_FLEX_SUBMINOR_VERSION
426 #define YY_FLEX_SUBMINOR_VERSION 31
427 #undef  FLEX_BETA
428 #define FLEX_BETA
429 #undef  FLEXINT_H
430 #define FLEXINT_H
431 #undef  INT8_MIN
432 #define INT8_MIN               (-128)
433 #undef  INT16_MIN
434 #define INT16_MIN              (-32767-1)
435 #undef  INT32_MIN
436 #define INT32_MIN              (-2147483647-1)
437 #undef  INT8_MAX
438 #define INT8_MAX               (127)
439 #undef  INT16_MAX
440 #define INT16_MAX              (32767)
441 #undef  INT32_MAX
442 #define INT32_MAX              (2147483647)
443 #undef  UINT8_MAX
444 #define UINT8_MAX              (255U)
445 #undef  UINT16_MAX
446 #define UINT16_MAX             (65535U)
447 #undef  UINT32_MAX
448 #define UINT32_MAX             (4294967295U)
449 #undef  YY_USE_CONST
450 #define YY_USE_CONST
451 #undef  YY_USE_CONST
452 #define YY_USE_CONST
453 #undef  yyconst
454 #define yyconst const
455 #undef  yyconst
456 #define yyconst
457 #undef  YY_NULL
458 #define YY_NULL 0
459 #undef  BEGIN
460 #define BEGIN (yy_start) = 1 + 2 *
461 #undef  YY_START
462 #define YY_START (((yy_start) - 1) / 2)
463 #undef  YYSTATE
464 #define YYSTATE YY_START
465 #undef  YY_NEW_FILE
466 #define YY_NEW_FILE yyrestart(yyin  )
467 #undef  YY_END_OF_BUFFER_CHAR
468 #define YY_END_OF_BUFFER_CHAR 0
469 #undef  YY_BUF_SIZE
470 #define YY_BUF_SIZE 16384
471 #undef  YY_TYPEDEF_YY_BUFFER_STATE
472 #define YY_TYPEDEF_YY_BUFFER_STATE
473 #undef  EOB_ACT_CONTINUE_SCAN
474 #define EOB_ACT_CONTINUE_SCAN 0
475 #undef  EOB_ACT_END_OF_FILE
476 #define EOB_ACT_END_OF_FILE 1
477 #undef  EOB_ACT_LAST_MATCH
478 #define EOB_ACT_LAST_MATCH 2
479 #undef  YY_TYPEDEF_YY_SIZE_T
480 #define YY_TYPEDEF_YY_SIZE_T
481 #undef  YY_STRUCT_YY_BUFFER_STATE
482 #define YY_STRUCT_YY_BUFFER_STATE
483 #undef  YY_BUFFER_NEW
484 #define YY_BUFFER_NEW 0
485 #undef  YY_BUFFER_NORMAL
486 #define YY_BUFFER_NORMAL 1
487 #undef  YY_BUFFER_EOF_PENDING
488 #define YY_BUFFER_EOF_PENDING 2
489 #undef  YY_CURRENT_BUFFER
490 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
491 #undef  YY_CURRENT_BUFFER_LVALUE
492 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
493 #undef  YY_FLUSH_BUFFER
494 #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
495 #undef  yy_new_buffer
496 #define yy_new_buffer yy_create_buffer
497 #undef  YY_SKIP_YYWRAP
498 #define YY_SKIP_YYWRAP
499 #undef  yytext_ptr
500 #define yytext_ptr yytext
501 #undef  YY_DO_BEFORE_ACTION
502 #define YY_DO_BEFORE_ACTION \
503 #undef  YY_NUM_RULES
504 #define YY_NUM_RULES 29
505 #undef  YY_END_OF_BUFFER
506 #define YY_END_OF_BUFFER 30
507 #undef  REJECT
508 #define REJECT reject_used_but_not_detected
509 #undef  YY_MORE_ADJ
510 #define YY_MORE_ADJ 0
511 #undef  YY_RESTORE_YY_MORE_OFFSET
512 #define YY_RESTORE_YY_MORE_OFFSET
513 #undef  YY_NO_UNPUT
514 #define YY_NO_UNPUT
515 #undef  INITIAL
516 #define INITIAL 0
517 #undef  YY_EXTRA_TYPE
518 #define YY_EXTRA_TYPE void *
519 #undef  YY_READ_BUF_SIZE
520 #define YY_READ_BUF_SIZE 8192
521 #undef  ECHO
522 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
523 #undef  YY_START_STACK_INCR
524 #define YY_START_STACK_INCR 25
525 #undef  YY_DECL_IS_OURS
526 #define YY_DECL_IS_OURS 1
527 #undef  YY_DECL
528 #define YY_DECL int yylex (void)
529 #undef  YY_USER_ACTION
530 #define YY_USER_ACTION
531 #undef  YY_BREAK
532 #define YY_BREAK break;
533 #undef  YY_RULE_SETUP
534 #define YY_RULE_SETUP \
535 #undef  YY_EXIT_FAILURE
536 #define YY_EXIT_FAILURE 2
537 #undef  YYTABLES_NAME
538 #define YYTABLES_NAME "yytables"
539 #undef  MAXPWD
540 #define MAXPWD 256
541 #undef  signal
542 #define signal bsd_signal
543 #undef  ALL
544 #define ALL (E_OPEN|E_CREAT|E_EXEC)
545 #undef  EV_EXIT
546 #define EV_EXIT 01		/* exit after evaluating tree */
547 #undef  EV_TESTED
548 #define EV_TESTED 02		/* exit status is checked; ignore -e flag */
549 #undef  EV_BACKCMD
550 #define EV_BACKCMD 04		/* command executing within back quotes */
551 #undef  CMDTABLESIZE
552 #define CMDTABLESIZE 31		/* should be prime */
553 #undef  ARB
554 #define ARB 1			/* actual size determined at run time */
555 #undef  NEWARGS
556 #define NEWARGS 5
557 #undef  EOF_NLEFT
558 #define EOF_NLEFT -99		/* value of parsenleft when EOF pushed back */
559 #undef  _PATH_DEVNULL
560 #define _PATH_DEVNULL "/dev/null"
561 #undef  PROFILE
562 #define PROFILE 0
563 #undef  SIGSSIZE
564 #define SIGSSIZE (sizeof(sigs)/sizeof(sigs[0]))
565 #undef  MINSIZE
566 #define MINSIZE 504		/* minimum size of a block */
567 #undef  DEFINE_OPTIONS
568 #define DEFINE_OPTIONS
569 #undef  EOFMARKLEN
570 #define EOFMARKLEN 79
571 #undef  OPENBRACE
572 #define OPENBRACE '{'
573 #undef  CLOSEBRACE
574 #define CLOSEBRACE '}'
575 #undef  EMPTY
576 #define EMPTY -2		/* marks an unused slot in redirtab */
577 #undef  signal
578 #define signal bsd_signal
579 #undef  sys_signame
580 #define sys_signame sys_siglist
581 #undef  S_DFL
582 #define S_DFL 1			/* default signal handling (SIG_DFL) */
583 #undef  S_CATCH
584 #define S_CATCH 2		/* signal is caught */
585 #undef  S_IGN
586 #define S_IGN 3			/* signal is ignored (SIG_IGN) */
587 #undef  S_HARD_IGN
588 #define S_HARD_IGN 4		/* signal is ignored permenantly */
589 #undef  S_RESET
590 #define S_RESET 5		/* temporary - to reset a hard ignored sig */
591 #undef  OUTBUFSIZ
592 #define OUTBUFSIZ BUFSIZ
593 #undef  BLOCK_OUT
594 #define BLOCK_OUT -2		/* output to a fixed block of memory */
595 #undef  MEM_OUT
596 #define MEM_OUT -3		/* output to dynamically allocated memory */
597 #undef  OUTPUT_ERR
598 #define OUTPUT_ERR 01		/* error occurred on output */
599 #undef  TEMPSIZE
600 #define TEMPSIZE 24
601 #undef  HAVE_VASPRINTF
602 #define HAVE_VASPRINTF 1
603 #undef  VTABSIZE
604 #define VTABSIZE 39
605 #undef  VTABSIZE
606 #define VTABSIZE 517
607 #undef  main
608 #define main echocmd
609 #undef  YYBISON
610 #define YYBISON 1
611 #undef  YYSKELETON_NAME
612 #define YYSKELETON_NAME "yacc.c"
613 #undef  YYPURE
614 #define YYPURE 0
615 #undef  YYLSP_NEEDED
616 #define YYLSP_NEEDED 0
617 #undef  ARITH_NUM
618 #define ARITH_NUM 258
619 #undef  ARITH_LPAREN
620 #define ARITH_LPAREN 259
621 #undef  ARITH_RPAREN
622 #define ARITH_RPAREN 260
623 #undef  ARITH_OR
624 #define ARITH_OR 261
625 #undef  ARITH_AND
626 #define ARITH_AND 262
627 #undef  ARITH_BOR
628 #define ARITH_BOR 263
629 #undef  ARITH_BXOR
630 #define ARITH_BXOR 264
631 #undef  ARITH_BAND
632 #define ARITH_BAND 265
633 #undef  ARITH_NE
634 #define ARITH_NE 266
635 #undef  ARITH_EQ
636 #define ARITH_EQ 267
637 #undef  ARITH_LE
638 #define ARITH_LE 268
639 #undef  ARITH_GE
640 #define ARITH_GE 269
641 #undef  ARITH_GT
642 #define ARITH_GT 270
643 #undef  ARITH_LT
644 #define ARITH_LT 271
645 #undef  ARITH_RSHIFT
646 #define ARITH_RSHIFT 272
647 #undef  ARITH_LSHIFT
648 #define ARITH_LSHIFT 273
649 #undef  ARITH_SUB
650 #define ARITH_SUB 274
651 #undef  ARITH_ADD
652 #define ARITH_ADD 275
653 #undef  ARITH_REM
654 #define ARITH_REM 276
655 #undef  ARITH_DIV
656 #define ARITH_DIV 277
657 #undef  ARITH_MUL
658 #define ARITH_MUL 278
659 #undef  ARITH_BNOT
660 #define ARITH_BNOT 279
661 #undef  ARITH_NOT
662 #define ARITH_NOT 280
663 #undef  ARITH_UNARYPLUS
664 #define ARITH_UNARYPLUS 281
665 #undef  ARITH_UNARYMINUS
666 #define ARITH_UNARYMINUS 282
667 #undef  YYFINAL
668 #define YYFINAL  14
669 #undef  YYLAST
670 #define YYLAST   170
671 #undef  YYNTOKENS
672 #define YYNTOKENS  28
673 #undef  YYNNTS
674 #define YYNNTS  3
675 #undef  YYNRULES
676 #define YYNRULES  26
677 #undef  YYNSTATES
678 #define YYNSTATES  52
679 #undef  YYUNDEFTOK
680 #define YYUNDEFTOK  2
681 #undef  YYMAXUTOK
682 #define YYMAXUTOK   282
683 #undef  YYPACT_NINF
684 #define YYPACT_NINF -13
685 #undef  YYTABLE_NINF
686 #define YYTABLE_NINF -1
687 #undef  yyerrok
688 #define yyerrok		(yyerrstatus = 0)
689 #undef  yyclearin
690 #define yyclearin	(yychar = YYEMPTY)
691 #undef  YYEMPTY
692 #define YYEMPTY		(-2)
693 #undef  YYEOF
694 #define YYEOF		0
695 #undef  YYACCEPT
696 #define YYACCEPT	goto yyacceptlab
697 #undef  YYABORT
698 #define YYABORT		goto yyabortlab
699 #undef  YYERROR
700 #define YYERROR		goto yyerrorlab
701 #undef  YYFAIL
702 #define YYFAIL		goto yyerrlab
703 #undef  YYTERROR
704 #define YYTERROR	1
705 #undef  YYERRCODE
706 #define YYERRCODE	256
707 #undef  YYPOPSTACK
708 #define YYPOPSTACK   (yyvsp--, yyssp--)
709 #undef  YY_INT_ALIGNED
710 #define  YY_INT_ALIGNED short int
711 #undef  FLEX_SCANNER
712 #define FLEX_SCANNER
713 #undef  YY_FLEX_MAJOR_VERSION
714 #define YY_FLEX_MAJOR_VERSION 2
715 #undef  YY_FLEX_MINOR_VERSION
716 #define YY_FLEX_MINOR_VERSION 5
717 #undef  YY_FLEX_SUBMINOR_VERSION
718 #define YY_FLEX_SUBMINOR_VERSION 31
719 #undef  FLEX_BETA
720 #define FLEX_BETA
721 #undef  FLEXINT_H
722 #define FLEXINT_H
723 #undef  INT8_MIN
724 #define INT8_MIN               (-128)
725 #undef  INT16_MIN
726 #define INT16_MIN              (-32767-1)
727 #undef  INT32_MIN
728 #define INT32_MIN              (-2147483647-1)
729 #undef  INT8_MAX
730 #define INT8_MAX               (127)
731 #undef  INT16_MAX
732 #define INT16_MAX              (32767)
733 #undef  INT32_MAX
734 #define INT32_MAX              (2147483647)
735 #undef  UINT8_MAX
736 #define UINT8_MAX              (255U)
737 #undef  UINT16_MAX
738 #define UINT16_MAX             (65535U)
739 #undef  UINT32_MAX
740 #define UINT32_MAX             (4294967295U)
741 #undef  YY_USE_CONST
742 #define YY_USE_CONST
743 #undef  YY_USE_CONST
744 #define YY_USE_CONST
745 #undef  yyconst
746 #define yyconst const
747 #undef  yyconst
748 #define yyconst
749 #undef  YY_NULL
750 #define YY_NULL 0
751 #undef  BEGIN
752 #define BEGIN (yy_start) = 1 + 2 *
753 #undef  YY_START
754 #define YY_START (((yy_start) - 1) / 2)
755 #undef  YYSTATE
756 #define YYSTATE YY_START
757 #undef  YY_NEW_FILE
758 #define YY_NEW_FILE yyrestart(yyin  )
759 #undef  YY_END_OF_BUFFER_CHAR
760 #define YY_END_OF_BUFFER_CHAR 0
761 #undef  YY_BUF_SIZE
762 #define YY_BUF_SIZE 16384
763 #undef  YY_TYPEDEF_YY_BUFFER_STATE
764 #define YY_TYPEDEF_YY_BUFFER_STATE
765 #undef  EOB_ACT_CONTINUE_SCAN
766 #define EOB_ACT_CONTINUE_SCAN 0
767 #undef  EOB_ACT_END_OF_FILE
768 #define EOB_ACT_END_OF_FILE 1
769 #undef  EOB_ACT_LAST_MATCH
770 #define EOB_ACT_LAST_MATCH 2
771 #undef  YY_TYPEDEF_YY_SIZE_T
772 #define YY_TYPEDEF_YY_SIZE_T
773 #undef  YY_STRUCT_YY_BUFFER_STATE
774 #define YY_STRUCT_YY_BUFFER_STATE
775 #undef  YY_BUFFER_NEW
776 #define YY_BUFFER_NEW 0
777 #undef  YY_BUFFER_NORMAL
778 #define YY_BUFFER_NORMAL 1
779 #undef  YY_BUFFER_EOF_PENDING
780 #define YY_BUFFER_EOF_PENDING 2
781 #undef  YY_CURRENT_BUFFER
782 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
783 #undef  YY_CURRENT_BUFFER_LVALUE
784 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
785 #undef  YY_FLUSH_BUFFER
786 #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
787 #undef  yy_new_buffer
788 #define yy_new_buffer yy_create_buffer
789 #undef  yytext_ptr
790 #define yytext_ptr yytext
791 #undef  YY_DO_BEFORE_ACTION
792 #define YY_DO_BEFORE_ACTION \
793 #undef  YY_NUM_RULES
794 #define YY_NUM_RULES 29
795 #undef  YY_END_OF_BUFFER
796 #define YY_END_OF_BUFFER 30
797 #undef  REJECT
798 #define REJECT reject_used_but_not_detected
799 #undef  YY_MORE_ADJ
800 #define YY_MORE_ADJ 0
801 #undef  YY_RESTORE_YY_MORE_OFFSET
802 #define YY_RESTORE_YY_MORE_OFFSET
803 #undef  YY_NO_UNPUT
804 #define YY_NO_UNPUT
805 #undef  INITIAL
806 #define INITIAL 0
807 #undef  YY_EXTRA_TYPE
808 #define YY_EXTRA_TYPE void *
809 #undef  YY_READ_BUF_SIZE
810 #define YY_READ_BUF_SIZE 8192
811 #undef  ECHO
812 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
813 #undef  YY_START_STACK_INCR
814 #define YY_START_STACK_INCR 25
815 #undef  YY_DECL_IS_OURS
816 #define YY_DECL_IS_OURS 1
817 #undef  YY_DECL
818 #define YY_DECL int yylex (void)
819 #undef  YY_USER_ACTION
820 #define YY_USER_ACTION
821 #undef  YY_BREAK
822 #define YY_BREAK break;
823 #undef  YY_RULE_SETUP
824 #define YY_RULE_SETUP \
825 #undef  YY_EXIT_FAILURE
826 #define YY_EXIT_FAILURE 2
827 #undef  YYTABLES_NAME
828 #define YYTABLES_NAME "yytables"
829 #undef  MAXPWD
830 #define MAXPWD 256
831 #undef  ALL
832 #define ALL (E_OPEN|E_CREAT|E_EXEC)
833 #undef  EV_EXIT
834 #define EV_EXIT 01		/* exit after evaluating tree */
835 #undef  EV_TESTED
836 #define EV_TESTED 02		/* exit status is checked; ignore -e flag */
837 #undef  EV_BACKCMD
838 #define EV_BACKCMD 04		/* command executing within back quotes */
839 #undef  CMDTABLESIZE
840 #define CMDTABLESIZE 31		/* should be prime */
841 #undef  ARB
842 #define ARB 1			/* actual size determined at run time */
843 #undef  NEWARGS
844 #define NEWARGS 5
845 #undef  EOF_NLEFT
846 #define EOF_NLEFT -99		/* value of parsenleft when EOF pushed back */
847 #undef  _PATH_DEVNULL
848 #define _PATH_DEVNULL "/dev/null"
849 #undef  PROFILE
850 #define PROFILE 0
851 #undef  SIGSSIZE
852 #define SIGSSIZE (sizeof(sigs)/sizeof(sigs[0]))
853 #undef  MINSIZE
854 #define MINSIZE 504		/* minimum size of a block */
855 #undef  DEFINE_OPTIONS
856 #define DEFINE_OPTIONS
857 #undef  EOFMARKLEN
858 #define EOFMARKLEN 79
859 #undef  OPENBRACE
860 #define OPENBRACE '{'
861 #undef  CLOSEBRACE
862 #define CLOSEBRACE '}'
863 #undef  EMPTY
864 #define EMPTY -2		/* marks an unused slot in redirtab */
865 #undef  S_DFL
866 #define S_DFL 1			/* default signal handling (SIG_DFL) */
867 #undef  S_CATCH
868 #define S_CATCH 2		/* signal is caught */
869 #undef  S_IGN
870 #define S_IGN 3			/* signal is ignored (SIG_IGN) */
871 #undef  S_HARD_IGN
872 #define S_HARD_IGN 4		/* signal is ignored permenantly */
873 #undef  S_RESET
874 #define S_RESET 5		/* temporary - to reset a hard ignored sig */
875 #undef  OUTBUFSIZ
876 #define OUTBUFSIZ BUFSIZ
877 #undef  BLOCK_OUT
878 #define BLOCK_OUT -2		/* output to a fixed block of memory */
879 #undef  MEM_OUT
880 #define MEM_OUT -3		/* output to dynamically allocated memory */
881 #undef  OUTPUT_ERR
882 #define OUTPUT_ERR 01		/* error occurred on output */
883 #undef  TEMPSIZE
884 #define TEMPSIZE 24
885 #undef  HAVE_VASPRINTF
886 #define HAVE_VASPRINTF 1
887 #undef  VTABSIZE
888 #define VTABSIZE 39
889 #undef  VTABSIZE
890 #define VTABSIZE 517
891 #undef  main
892 #define main echocmd
893 
894 
895 
896 extern void rmaliases(void);
897 
898 extern int loopnest;		/* current loop nesting level */
899 
900 extern void deletefuncs(void);
901 extern void hash_special_builtins(void);
902 
903 struct strpush {
904 	struct strpush *prev;	/* preceding string on stack */
905 	char *prevstring;
906 	int prevnleft;
907 	int prevlleft;
908 	struct alias *ap;	/* if push was associated with an alias */
909 };
910 
911 struct parsefile {
912 	struct parsefile *prev;	/* preceding file on stack */
913 	int linno;		/* current line */
914 	int fd;			/* file descriptor (or -1 if string) */
915 	int nleft;		/* number of chars left in this line */
916 	int lleft;		/* number of chars left in this buffer */
917 	char *nextc;		/* next char in buffer */
918 	char *buf;		/* input buffer */
919 	struct strpush *strpush; /* for pushing strings at this level */
920 	struct strpush basestrpush; /* so pushing one is fast */
921 };
922 
923 extern int parselleft;		/* copy of parsefile->lleft */
924 extern struct parsefile basepf;	/* top level input file */
925 extern char basebuf[BUFSIZ];	/* buffer for top level input file */
926 
927 extern pid_t backgndpid;	/* pid of last background process */
928 extern int jobctl;
929 
930 extern int tokpushback;		/* last token pushed back */
931 extern int checkkwd;            /* 1 == check for kwds, 2 == also eat newlines */
932 
933 struct redirtab {
934 	struct redirtab *next;
935 	short renamed[10];
936 };
937 
938 extern struct redirtab *redirlist;
939 
940 extern char sigmode[NSIG];	/* current value of signal */
941 
942 extern char **environ;
943 
944 
945 
946 /*
947  * Initialization code.
948  */
949 
950 void
init()951 init() {
952 
953       /* from exec.c: */
954       {
955 	      hash_special_builtins();
956       }
957 
958       /* from input.c: */
959       {
960 	      basepf.nextc = basepf.buf = basebuf;
961       }
962 
963       /* from var.c: */
964       {
965 	      char **envp;
966 
967 	      initvar();
968 	      for (envp = environ ; *envp ; envp++) {
969 		      if (strchr(*envp, '=')) {
970 			      setvareq(*envp, VEXPORT|VTEXTFIXED);
971 		      }
972 	      }
973       }
974 }
975 
976 
977 
978 /*
979  * This routine is called when an error or an interrupt occurs in an
980  * interactive shell and control is returned to the main command loop.
981  */
982 
983 void
reset()984 reset() {
985 
986       /* from eval.c: */
987       {
988 	      evalskip = 0;
989 	      loopnest = 0;
990 	      funcnest = 0;
991       }
992 
993       /* from input.c: */
994       {
995 	      if (exception != EXSHELLPROC)
996 		      parselleft = parsenleft = 0;	/* clear input buffer */
997 	      popallfiles();
998       }
999 
1000       /* from parser.c: */
1001       {
1002 	      tokpushback = 0;
1003 	      checkkwd = 0;
1004       }
1005 
1006       /* from redir.c: */
1007       {
1008 	      while (redirlist)
1009 		      popredir();
1010       }
1011 
1012       /* from output.c: */
1013       {
1014 	      out1 = &output;
1015 	      out2 = &errout;
1016 	      if (memout.buf != NULL) {
1017 		      ckfree(memout.buf);
1018 		      memout.buf = NULL;
1019 	      }
1020       }
1021 }
1022 
1023 
1024 
1025 /*
1026  * This routine is called to initialize the shell to run a shell procedure.
1027  */
1028 
1029 void
initshellproc()1030 initshellproc() {
1031 
1032       /* from alias.c: */
1033       {
1034 	      rmaliases();
1035       }
1036 
1037       /* from eval.c: */
1038       {
1039 	      exitstatus = 0;
1040       }
1041 
1042       /* from exec.c: */
1043       {
1044 	      deletefuncs();
1045       }
1046 
1047       /* from input.c: */
1048       {
1049 	      popallfiles();
1050       }
1051 
1052       /* from jobs.c: */
1053       {
1054 	      backgndpid = -1;
1055 #if JOBS
1056 	      jobctl = 0;
1057 #endif
1058       }
1059 
1060       /* from options.c: */
1061       {
1062 	      int i;
1063 
1064 	      for (i = 0; optlist[i].name; i++)
1065 		      optlist[i].val = 0;
1066 	      optschanged();
1067 
1068       }
1069 
1070       /* from redir.c: */
1071       {
1072 	      clearredir(0);
1073       }
1074 
1075       /* from trap.c: */
1076       {
1077 	      char *sm;
1078 
1079 	      clear_traps(0);
1080 	      for (sm = sigmode ; sm < sigmode + NSIG ; sm++) {
1081 		      if (*sm == S_IGN)
1082 			      *sm = S_HARD_IGN;
1083 	      }
1084       }
1085 
1086       /* from var.c: */
1087       {
1088 	      shprocvar();
1089       }
1090 }
1091