Lines Matching refs:a
128 void run(Node *a) /* execution of parse tree starts here */ in run() argument
133 execute(a); in run()
141 Node *a; in execute() local
145 for (a = u; ; a = a->nnext) { in execute()
146 curnode = a; in execute()
147 if (isvalue(a)) { in execute()
148 x = (Cell *) (a->narg[0]); in execute()
155 if (notlegal(a->nobj)) /* probably a Cell* but too risky to print */ in execute()
157 proc = proctab[a->nobj-FIRSTTOKEN]; in execute()
158 x = (*proc)(a->narg, a->nobj); in execute()
163 if (isexpr(a)) in execute()
167 if (a->nnext == NULL) in execute()
174 Cell *program(Node **a, int n) /* execute an awk program */ in program() argument
180 if (a[0]) { /* BEGIN */ in program()
181 x = execute(a[0]); in program()
188 if (a[1] || a[2]) in program()
190 x = execute(a[1]); in program()
198 if (a[2]) { /* END */ in program()
199 x = execute(a[2]); in program()
221 Cell *call(Node **a, int n) /* function call. very kludgy and fragile */ in call() argument
231 fcn = execute(a[0]); /* the function itself */ in call()
240 for (ncall = 0, x = a[1]; x != NULL; x = x->nnext) /* args in call */ in call()
249 for (i = 0, x = a[1]; x != NULL; i++, x = x->nnext) { /* get call args */ in call()
336 Cell *arg(Node **a, int n) /* nth argument of a function */ in arg() argument
339 n = ptoi(a[0]); /* argument number, counting from 0 */ in arg()
347 Cell *jump(Node **a, int n) /* break, continue, next, nextfile, return */ in jump() argument
353 if (a[0] != NULL) { in jump()
354 y = execute(a[0]); in jump()
360 if (a[0] != NULL) { in jump()
361 y = execute(a[0]); in jump()
391 Cell *getline(Node **a, int n) /* get next line from specific input */ in getline() argument
405 if (a[1] != NULL) { /* getline < file */ in getline()
406 x = execute(a[2]); /* filename */ in getline()
407 mode = ptoi(a[1]); in getline()
418 } else if (a[0] != NULL) { /* getline var <file */ in getline()
419 x = execute(a[0]); in getline()
430 if (a[0] == NULL) /* getline */ in getline()
434 x = execute(a[0]); in getline()
444 Cell *getnf(Node **a, int n) /* get NF */ in getnf() argument
448 return (Cell *) a[0]; in getnf()
451 Cell *array(Node **a, int n) /* a[0] is symtab, a[1] is list of subscripts */ in array() argument
463 x = execute(a[0]); /* Cell* for symbol table */ in array()
465 for (np = a[1]; np; np = np->nnext) { in array()
491 Cell *awkdelete(Node **a, int n) /* a[0] is symtab, a[1] is list of subscripts */ in awkdelete() argument
498 x = execute(a[0]); /* Cell* for symbol table */ in awkdelete()
501 if (a[1] == 0) { /* delete the elements, not the table */ in awkdelete()
512 for (np = a[1]; np; np = np->nnext) { in awkdelete()
529 Cell *intest(Node **a, int n) /* a[0] is index (list), a[1] is symtab */ in intest() argument
538 ap = execute(a[1]); /* array name */ in intest()
551 for (p = a[0]; p; p = p->nnext) { in intest()
571 Cell *matchop(Node **a, int n) /* ~ and match() */ in matchop() argument
583 x = execute(a[1]); /* a[1] = target text */ in matchop()
585 if (a[0] == 0) /* a[1] == 0: already-compiled reg expr */ in matchop()
586 i = (*mf)((fa *) a[2], s); in matchop()
588 y = execute(a[2]); /* a[2] = regular expr */ in matchop()
612 Cell *boolop(Node **a, int n) /* a[0] || a[1], a[0] && a[1], !a[0] */ in boolop() argument
617 x = execute(a[0]); in boolop()
623 y = execute(a[1]); in boolop()
630 y = execute(a[1]); in boolop()
644 Cell *relop(Node **a, int n) /* a[0 < a[1], etc. */ in relop() argument
650 x = execute(a[0]); in relop()
651 y = execute(a[1]); in relop()
679 void tfree(Cell *a) /* free a tempcell */ in tfree() argument
681 if (freeable(a)) { in tfree()
682 dprintf( ("freeing %s %s %o\n", NN(a->nval), NN(a->sval), a->tval) ); in tfree()
683 xfree(a->sval); in tfree()
685 if (a == tmps) in tfree()
687 a->cnext = tmps; in tfree()
688 tmps = a; in tfree()
709 Cell *indirect(Node **a, int n) /* $( a[0] ) */ in indirect() argument
716 x = execute(a[0]); in indirect()
731 Cell *substr(Node **a, int nnn) /* substr(a[0], a[1], a[2]) */ in substr() argument
738 x = execute(a[0]); in substr()
739 y = execute(a[1]); in substr()
740 if (a[2] != 0) in substr()
741 z = execute(a[2]); in substr()
747 if (a[2] != 0) { in substr()
760 if (a[2] != 0) { in substr()
779 Cell *sindex(Node **a, int nnn) /* index(a[0], a[1]) */ in sindex() argument
785 x = execute(a[0]); in sindex()
787 y = execute(a[1]); in sindex()
807 int format(char **pbuf, int *pbufsize, const char *s, Node *a) /* printf-like conversions */ in format() argument
845 x = execute(a); in format()
846 a = a->nnext; in format()
885 if (a == NULL) in format()
887 x = execute(a); in format()
888 a = a->nnext; in format()
935 for ( ; a; a = a->nnext) /* evaluate any remaining args */ in format()
936 execute(a); in format()
942 Cell *awksprintf(Node **a, int n) /* sprintf(a[0]) */ in awksprintf() argument
951 y = a[0]->nnext; in awksprintf()
952 x = execute(a[0]); in awksprintf()
962 Cell *awkprintf(Node **a, int n) /* printf */ in awkprintf() argument
974 y = a[0]->nnext; in awkprintf()
975 x = execute(a[0]); in awkprintf()
979 if (a[1] == NULL) { in awkprintf()
985 fp = redirect(ptoi(a[1]), a[2]); in awkprintf()
996 Cell *arith(Node **a, int n) /* a[0] + a[1], etc. also -a[0] */ in arith() argument
1002 x = execute(a[0]); in arith()
1006 y = execute(a[1]); in arith()
1061 Cell *incrdecr(Node **a, int n) /* a[0]++, etc. */ in incrdecr() argument
1067 x = execute(a[0]); in incrdecr()
1081 Cell *assign(Node **a, int n) /* a[0] = a[1], a[0] += a[1], etc. */ in assign() argument
1087 y = execute(a[1]); in assign()
1088 x = execute(a[0]); in assign()
1144 Cell *cat(Node **a, int q) /* a[0] cat a[1] */ in cat() argument
1150 x = execute(a[0]); in cat()
1151 y = execute(a[1]); in cat()
1170 Cell *pastat(Node **a, int n) /* a[0] { a[1] } */ in pastat() argument
1174 if (a[0] == 0) in pastat()
1175 x = execute(a[1]); in pastat()
1177 x = execute(a[0]); in pastat()
1180 x = execute(a[1]); in pastat()
1186 Cell *dopa2(Node **a, int n) /* a[0], a[1] { a[2] } */ in dopa2() argument
1191 pair = ptoi(a[3]); in dopa2()
1193 x = execute(a[0]); in dopa2()
1199 x = execute(a[1]); in dopa2()
1203 x = execute(a[2]); in dopa2()
1209 Cell *split(Node **a, int nnn) /* split(a[0], a[1], a[2]); a[3] is type */ in split() argument
1217 y = execute(a[0]); /* source string */ in split()
1219 arg3type = ptoi(a[3]); in split()
1220 if (a[2] == 0) /* fs string */ in split()
1223 x = execute(a[2]); in split()
1230 ap = execute(a[1]); /* array name */ in split()
1241 pfa = (fa *) a[2]; in split()
1332 if (a[2] != 0 && arg3type == STRING) { in split()
1341 Cell *condexpr(Node **a, int n) /* a[0] ? a[1] : a[2] */ in condexpr() argument
1345 x = execute(a[0]); in condexpr()
1348 x = execute(a[1]); in condexpr()
1351 x = execute(a[2]); in condexpr()
1356 Cell *ifstat(Node **a, int n) /* if (a[0]) a[1]; else a[2] */ in ifstat() argument
1360 x = execute(a[0]); in ifstat()
1363 x = execute(a[1]); in ifstat()
1364 } else if (a[2] != 0) { in ifstat()
1366 x = execute(a[2]); in ifstat()
1371 Cell *whilestat(Node **a, int n) /* while (a[0]) a[1] */ in whilestat() argument
1376 x = execute(a[0]); in whilestat()
1380 x = execute(a[1]); in whilestat()
1391 Cell *dostat(Node **a, int n) /* do a[0]; while(a[1]) */ in dostat() argument
1396 x = execute(a[0]); in dostat()
1402 x = execute(a[1]); in dostat()
1409 Cell *forstat(Node **a, int n) /* for (a[0]; a[1]; a[2]) a[3] */ in forstat() argument
1413 x = execute(a[0]); in forstat()
1416 if (a[1]!=0) { in forstat()
1417 x = execute(a[1]); in forstat()
1421 x = execute(a[3]); in forstat()
1427 x = execute(a[2]); in forstat()
1432 Cell *instat(Node **a, int n) /* for (a[0] in a[1]) a[2] */ in instat() argument
1438 vp = execute(a[0]); in instat()
1439 arrayp = execute(a[1]); in instat()
1449 x = execute(a[2]); in instat()
1464 Cell *bltin(Node **a, int n) /* builtin functions. a[0] is type, a[1] is arg list */ in bltin() argument
1474 t = ptoi(a[0]); in bltin()
1475 x = execute(a[1]); in bltin()
1476 nextarg = a[1]->nnext; in bltin()
1501 y = execute(a[1]->nnext); in bltin()
1563 Cell *printstat(Node **a, int n) /* print a[0] */ in printstat() argument
1569 if (a[1] == 0) /* a[1] is redirection operator, a[2] is file */ in printstat()
1572 fp = redirect(ptoi(a[1]), a[2]); in printstat()
1573 for (x = a[0]; x != NULL; x = x->nnext) { in printstat()
1582 if (a[1] != 0) in printstat()
1589 Cell *nullproc(Node **a, int n) in nullproc() argument
1592 a = a; in nullproc()
1597 FILE *redirect(int a, Node *b) /* set up all i/o redirections */ in redirect() argument
1605 fp = openfile(a, fname); in redirect()
1629 FILE *openfile(int a, const char *us) in openfile() argument
1639 if (a == files[i].mode || (a==APPEND && files[i].mode==GT)) in openfile()
1641 if (a == FFLUSH) in openfile()
1644 if (a == FFLUSH) /* didn't find it, so don't create it! */ in openfile()
1653 m = a; in openfile()
1654 if (a == GT) { in openfile()
1656 } else if (a == APPEND) { in openfile()
1659 } else if (a == '|') { /* output pipe */ in openfile()
1661 } else if (a == LE) { /* input pipe */ in openfile()
1663 } else if (a == LT) { /* getline <file */ in openfile()
1666 FATAL("illegal redirection %d", a); in openfile()
1685 Cell *closefile(Node **a, int n) in closefile() argument
1691 x = execute(a[0]); in closefile()
1745 Cell *sub(Node **a, int nnn) /* substitute command */ in sub() argument
1755 x = execute(a[3]); /* target string */ in sub()
1757 if (a[0] == 0) /* 0 => a[1] is already-compiled regexpr */ in sub()
1758 pfa = (fa *) a[1]; /* regular expression */ in sub()
1760 y = execute(a[1]); in sub()
1764 y = execute(a[2]); /* replacement string */ in sub()
1805 Cell *gsub(Node **a, int nnn) /* global substitute */ in gsub() argument
1818 x = execute(a[3]); /* target string */ in gsub()
1820 if (a[0] == 0) /* 0 => a[1] is already-compiled regexpr */ in gsub()
1821 pfa = (fa *) a[1]; /* regular expression */ in gsub()
1823 y = execute(a[1]); in gsub()
1827 y = execute(a[2]); /* replacement string */ in gsub()