1 /* 2 * This file was generated by mknodes.sh 3 */ 4 5 #define NSEMI 0 6 #define NCMD 1 7 #define NPIPE 2 8 #define NREDIR 3 9 #define NBACKGND 4 10 #define NSUBSHELL 5 11 #define NAND 6 12 #define NOR 7 13 #define NIF 8 14 #define NWHILE 9 15 #define NUNTIL 10 16 #define NFOR 11 17 #define NCASE 12 18 #define NCLIST 13 19 #define NDEFUN 14 20 #define NARG 15 21 #define NTO 16 22 #define NCLOBBER 17 23 #define NFROM 18 24 #define NFROMTO 19 25 #define NAPPEND 20 26 #define NTOFD 21 27 #define NFROMFD 22 28 #define NHERE 23 29 #define NXHERE 24 30 #define NNOT 25 31 32 33 34 struct nbinary { 35 int type; 36 union node *ch1; 37 union node *ch2; 38 }; 39 40 41 struct ncmd { 42 int type; 43 int backgnd; 44 union node *args; 45 union node *redirect; 46 }; 47 48 49 struct npipe { 50 int type; 51 int backgnd; 52 struct nodelist *cmdlist; 53 }; 54 55 56 struct nredir { 57 int type; 58 union node *n; 59 union node *redirect; 60 }; 61 62 63 struct nif { 64 int type; 65 union node *test; 66 union node *ifpart; 67 union node *elsepart; 68 }; 69 70 71 struct nfor { 72 int type; 73 union node *args; 74 union node *body; 75 char *var; 76 }; 77 78 79 struct ncase { 80 int type; 81 union node *expr; 82 union node *cases; 83 }; 84 85 86 struct nclist { 87 int type; 88 union node *next; 89 union node *pattern; 90 union node *body; 91 }; 92 93 94 struct narg { 95 int type; 96 union node *next; 97 char *text; 98 struct nodelist *backquote; 99 }; 100 101 102 struct nfile { 103 int type; 104 union node *next; 105 int fd; 106 union node *fname; 107 char *expfname; 108 }; 109 110 111 struct ndup { 112 int type; 113 union node *next; 114 int fd; 115 int dupfd; 116 union node *vname; 117 }; 118 119 120 struct nhere { 121 int type; 122 union node *next; 123 int fd; 124 union node *doc; 125 }; 126 127 128 struct nnot { 129 int type; 130 union node *com; 131 }; 132 133 134 union node { 135 int type; 136 struct nbinary nbinary; 137 struct ncmd ncmd; 138 struct npipe npipe; 139 struct nredir nredir; 140 struct nif nif; 141 struct nfor nfor; 142 struct ncase ncase; 143 struct nclist nclist; 144 struct narg narg; 145 struct nfile nfile; 146 struct ndup ndup; 147 struct nhere nhere; 148 struct nnot nnot; 149 }; 150 151 152 struct nodelist { 153 struct nodelist *next; 154 union node *n; 155 }; 156 157 158 union node *copyfunc(union node *); 159 void freefunc(union node *); 160