Lines Matching defs:a
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
81 run(Node *a)
83 (void) execute(a);
92 register Node *a;
96 for (a = u; ; a = a->nnext) {
97 curnode = a;
98 if (isvalue(a)) {
99 x = (Cell *) (a->narg[0]);
106 /* probably a Cell* but too risky to print */
107 if (notlegal(a->nobj))
109 proc = proctab[a->nobj-FIRSTTOKEN];
110 x = (*proc)(a->narg, a->nobj);
115 if (isexpr(a))
117 /* a statement, goto next statement */
120 if (a->nnext == (Node *)NULL)
128 program(Node **a, int n)
134 if (a[0]) { /* BEGIN */
135 x = execute(a[0]);
145 if (a[1] || a[2])
147 x = execute(a[1]);
155 if (a[2]) { /* END */
156 x = execute(a[2]);
182 call(Node **a, int n)
191 fcn = execute(a[0]); /* the function itself */
203 for (ncall = 0, x = a[1]; x != NULL; x = x->nnext) /* args in call */
216 for (i = 0, x = a[1]; x != NULL; i++, x = x->nnext) {
290 copycell(Cell *x) /* make a copy of a cell in a temp */
306 arg(Node **a, int nnn)
310 n = (int)a[0]; /* argument number, counting from 0 */
320 jump(Node **a, int n)
326 if (a[0] != NULL) {
327 y = execute(a[0]);
334 if (a[0] != NULL) {
335 y = execute(a[0]);
361 getaline(Node **a, int n)
363 /* a[0] is variable, a[1] is operator, a[2] is filename */
369 (void) fflush(stdout); /* in case someone is waiting for a prompt */
371 if (a[1] != NULL) { /* getline < file */
372 x = execute(a[2]); /* filename */
373 if ((int)a[1] == '|') /* input pipe */
374 a[1] = (Node *)LE; /* arbitrary flag */
375 fp = openfile((int)a[1], getsval(x));
383 if (a[0] != NULL) { /* getline var <file */
384 (void) setsval(execute(a[0]), buf);
399 if (a[0] == NULL) /* getline */
404 (void) setsval(execute(a[0]), buf);
414 getnf(Node **a, int n)
418 return ((Cell *)a[0]);
423 array(Node **a, int n)
431 x = execute(a[0]); /* Cell* for symbol table */
436 for (np = a[1]; np; np = np->nnext) {
469 delete(Node **a, int n)
476 x = execute(a[0]); /* Cell* for symbol table */
483 for (np = a[1]; np; np = np->nnext) {
505 intest(Node **a, int n)
513 ap = execute(a[1]); /* array name */
520 for (p = a[0]; p; p = p->nnext) {
546 matchop(Node **a, int n)
558 x = execute(a[1]);
560 if (a[0] == 0)
561 i = (*mf)(a[2], s);
563 y = execute(a[2]);
588 boolop(Node **a, int n)
593 x = execute(a[0]);
600 y = execute(a[1]);
607 y = execute(a[1]);
621 relop(Node **a, int n)
627 x = execute(a[0]);
628 y = execute(a[1]);
652 tfree(Cell *a, char *s)
656 s, (ulong_t)a, a->sval ? a->sval : (uchar *)"");
658 if (freeable(a))
659 xfree(a->sval);
660 if (a == tmps)
662 a->cnext = tmps;
663 tmps = a;
690 indirect(Node **a, int n)
696 x = execute(a[0]);
709 substr(Node **a, int nnn)
716 x = execute(a[0]);
717 y = execute(a[1]);
718 if (a[2] != 0)
719 z = execute(a[2]);
725 if (a[2] != 0)
737 if (a[2] != 0) {
758 sindex(Node **a, int nnn)
764 x = execute(a[0]);
766 y = execute(a[1]);
785 format(uchar **bufp, uchar *s, Node *a)
818 if (a == NULL) {
822 x = execute(a);
823 a = a->nnext;
868 if (a == NULL) {
872 x = execute(a);
873 a = a->nnext;
922 for (; a; a = a->nnext) /* evaluate any remaining args */
923 (void) execute(a);
931 a_sprintf(Node **a, int n)
937 y = a[0]->nnext;
938 x = execute(a[0]);
949 aprintf(Node **a, int n)
956 y = a[0]->nnext;
957 x = execute(a[0]);
960 if (a[1] == NULL)
963 fp = redirect((int)a[1], a[2]);
972 arith(Node **a, int n)
978 x = execute(a[0]);
982 y = execute(a[1]);
1039 incrdecr(Node **a, int n)
1045 x = execute(a[0]);
1060 assign(Node **a, int n)
1066 y = execute(a[1]);
1067 x = execute(a[0]); /* order reversed from before... */
1122 cat(Node **a, int q)
1128 x = execute(a[0]);
1129 y = execute(a[1]);
1151 pastat(Node **a, int n)
1155 if (a[0] == 0)
1156 x = execute(a[1]);
1158 x = execute(a[0]);
1161 x = execute(a[1]);
1169 dopa2(Node **a, int n)
1184 pair = (int)a[3];
1186 x = execute(a[0]);
1192 x = execute(a[1]);
1196 x = execute(a[2]);
1204 split(Node **a, int nnn)
1212 y = execute(a[0]); /* source string */
1214 if (a[2] == 0) /* fs string */
1216 else if ((int)a[3] == STRING) { /* split(str,arr,"string") */
1217 x = execute(a[2]);
1219 } else if ((int)a[3] == REGEXPR)
1224 ap = execute(a[1]); /* array name */
1226 dprintf(("split: s=|%s|, a=%s, sep=|%s|\n", s, ap->nval, fs));
1232 if (*s != '\0' && strlen((char *)fs) > 1 || (int)a[3] == REGEXPR) {
1235 if ((int)a[3] == REGEXPR) { /* it's ready already */
1236 pfa = (fa *)a[2];
1337 if (a[2] != 0 && (int)a[3] == STRING)
1347 condexpr(Node **a, int n)
1351 x = execute(a[0]);
1354 x = execute(a[1]);
1357 x = execute(a[2]);
1364 ifstat(Node **a, int n)
1368 x = execute(a[0]);
1371 x = execute(a[1]);
1372 } else if (a[2] != 0) {
1374 x = execute(a[2]);
1381 whilestat(Node **a, int n)
1386 x = execute(a[0]);
1390 x = execute(a[1]);
1403 dostat(Node **a, int n)
1408 x = execute(a[0]);
1414 x = execute(a[1]);
1423 forstat(Node **a, int n)
1427 x = execute(a[0]);
1430 if (a[1] != 0) {
1431 x = execute(a[1]);
1437 x = execute(a[3]);
1443 x = execute(a[2]);
1450 instat(Node **a, int n)
1456 vp = execute(a[0]);
1457 arrayp = execute(a[1]);
1467 x = execute(a[2]);
1484 bltin(Node **a, int n)
1492 t = (int)a[0];
1493 x = execute(a[1]);
1494 nextarg = a[1]->nnext;
1516 y = execute(a[1]->nnext);
1572 print(Node **a, int n)
1578 if (a[1] == 0)
1581 fp = redirect((int)a[1], a[2]);
1582 for (x = a[0]; x != NULL; x = x->nnext) {
1591 if (a[1] != 0)
1598 nullproc(Node **a, int n)
1606 int mode; /* '|', 'a', 'w' */
1610 redirect(int a, Node *b)
1618 fp = openfile(a, fname);
1626 openfile(int a, uchar *s)
1636 if (a == files[i].mode ||
1637 a == APPEND && files[i].mode == GT) {
1648 (void) fflush(stdout); /* force a semblance of order */
1649 m = a;
1650 if (a == GT) {
1652 } else if (a == APPEND) {
1653 fp = fopen((char *)s, "a");
1655 } else if (a == '|') { /* output pipe */
1657 } else if (a == LE) { /* input pipe */
1659 } else if (a == LT) { /* getline <file */
1674 closefile(Node **a, int n)
1679 x = execute(a[0]);
1731 sub(Node **a, int nnn)
1739 x = execute(a[3]); /* target string */
1741 if (a[0] == 0)
1742 pfa = (fa *)a[1]; /* regular expression */
1744 y = execute(a[1]);
1748 y = execute(a[2]); /* replacement string */
1795 gsub(Node **a, int nnn)
1806 x = execute(a[3]); /* target string */
1808 if (a[0] == 0)
1809 pfa = (fa *) a[1]; /* regular expression */
1811 y = execute(a[1]);
1815 y = execute(a[2]); /* replacement string */