Home | History | Annotate | Download | only in sh
      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