|  | /* | 
|  | * This file was generated by mknodes.sh | 
|  | */ | 
|  |  | 
|  | #define NSEMI 0 | 
|  | #define NCMD 1 | 
|  | #define NPIPE 2 | 
|  | #define NREDIR 3 | 
|  | #define NBACKGND 4 | 
|  | #define NSUBSHELL 5 | 
|  | #define NAND 6 | 
|  | #define NOR 7 | 
|  | #define NIF 8 | 
|  | #define NWHILE 9 | 
|  | #define NUNTIL 10 | 
|  | #define NFOR 11 | 
|  | #define NCASE 12 | 
|  | #define NCLIST 13 | 
|  | #define NDEFUN 14 | 
|  | #define NARG 15 | 
|  | #define NTO 16 | 
|  | #define NCLOBBER 17 | 
|  | #define NFROM 18 | 
|  | #define NFROMTO 19 | 
|  | #define NAPPEND 20 | 
|  | #define NTOFD 21 | 
|  | #define NFROMFD 22 | 
|  | #define NHERE 23 | 
|  | #define NXHERE 24 | 
|  | #define NNOT 25 | 
|  |  | 
|  |  | 
|  |  | 
|  | struct nbinary { | 
|  | int type; | 
|  | union node *ch1; | 
|  | union node *ch2; | 
|  | }; | 
|  |  | 
|  |  | 
|  | struct ncmd { | 
|  | int type; | 
|  | int backgnd; | 
|  | union node *args; | 
|  | union node *redirect; | 
|  | }; | 
|  |  | 
|  |  | 
|  | struct npipe { | 
|  | int type; | 
|  | int backgnd; | 
|  | struct nodelist *cmdlist; | 
|  | }; | 
|  |  | 
|  |  | 
|  | struct nredir { | 
|  | int type; | 
|  | union node *n; | 
|  | union node *redirect; | 
|  | }; | 
|  |  | 
|  |  | 
|  | struct nif { | 
|  | int type; | 
|  | union node *test; | 
|  | union node *ifpart; | 
|  | union node *elsepart; | 
|  | }; | 
|  |  | 
|  |  | 
|  | struct nfor { | 
|  | int type; | 
|  | union node *args; | 
|  | union node *body; | 
|  | char *var; | 
|  | }; | 
|  |  | 
|  |  | 
|  | struct ncase { | 
|  | int type; | 
|  | union node *expr; | 
|  | union node *cases; | 
|  | }; | 
|  |  | 
|  |  | 
|  | struct nclist { | 
|  | int type; | 
|  | union node *next; | 
|  | union node *pattern; | 
|  | union node *body; | 
|  | }; | 
|  |  | 
|  |  | 
|  | struct narg { | 
|  | int type; | 
|  | union node *next; | 
|  | char *text; | 
|  | struct nodelist *backquote; | 
|  | }; | 
|  |  | 
|  |  | 
|  | struct nfile { | 
|  | int type; | 
|  | union node *next; | 
|  | int fd; | 
|  | union node *fname; | 
|  | char *expfname; | 
|  | }; | 
|  |  | 
|  |  | 
|  | struct ndup { | 
|  | int type; | 
|  | union node *next; | 
|  | int fd; | 
|  | int dupfd; | 
|  | union node *vname; | 
|  | }; | 
|  |  | 
|  |  | 
|  | struct nhere { | 
|  | int type; | 
|  | union node *next; | 
|  | int fd; | 
|  | union node *doc; | 
|  | }; | 
|  |  | 
|  |  | 
|  | struct nnot { | 
|  | int type; | 
|  | union node *com; | 
|  | }; | 
|  |  | 
|  |  | 
|  | union node { | 
|  | int type; | 
|  | struct nbinary nbinary; | 
|  | struct ncmd ncmd; | 
|  | struct npipe npipe; | 
|  | struct nredir nredir; | 
|  | struct nif nif; | 
|  | struct nfor nfor; | 
|  | struct ncase ncase; | 
|  | struct nclist nclist; | 
|  | struct narg narg; | 
|  | struct nfile nfile; | 
|  | struct ndup ndup; | 
|  | struct nhere nhere; | 
|  | struct nnot nnot; | 
|  | }; | 
|  |  | 
|  |  | 
|  | struct nodelist { | 
|  | struct nodelist *next; | 
|  | union node *n; | 
|  | }; | 
|  |  | 
|  |  | 
|  | union node *copyfunc(union node *); | 
|  | void freefunc(union node *); |