makebinary
static union node *makebinary(int type, union node *n1, union node *n2);
n1 = makebinary(NSEMI, ntop, n2);
n3 = makebinary(NSEMI, n1->nbinary.ch2, n2);
n = makebinary(t, n, pipeline());
n1 = makebinary((t == TWHILE)? NWHILE : NUNTIL, n1, list(0));