init.c revision 4f6e8d7a00cbeda1e70cc15be9c4af1018bdad53
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
896extern void rmaliases(void);
897
898extern int loopnest;		/* current loop nesting level */
899
900extern void deletefuncs(void);
901extern void hash_special_builtins(void);
902
903struct 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
911struct 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
923extern int parselleft;		/* copy of parsefile->lleft */
924extern struct parsefile basepf;	/* top level input file */
925extern char basebuf[BUFSIZ];	/* buffer for top level input file */
926
927extern pid_t backgndpid;	/* pid of last background process */
928extern int jobctl;
929
930extern int tokpushback;		/* last token pushed back */
931extern int checkkwd;            /* 1 == check for kwds, 2 == also eat newlines */
932
933struct redirtab {
934	struct redirtab *next;
935	short renamed[10];
936};
937
938extern struct redirtab *redirlist;
939
940extern char sigmode[NSIG];	/* current value of signal */
941
942extern char **environ;
943
944
945
946/*
947 * Initialization code.
948 */
949
950void
951init() {
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
983void
984reset() {
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
1029void
1030initshellproc() {
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