blob: 55ad17280438e1a1daddb6d943dafcc5a606b251 [file] [log] [blame]
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -08001/*
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}