Lines Matching +full:sub +full:- +full:node
59 void checkdup(Node *list, Cell *item);
62 Node *beginloc = NULL;
63 Node *endloc = NULL;
67 Node *arglist = NULL; /* list of args for current function */
69 static int constnode(Node *);
70 static char *strnode(Node *);
71 static Node *notnull(Node *);
75 Node *p;
89 %token <i> SUB GSUB IF INDEX LSUBSTR MATCHFCN NEXT NEXTFILE
117 %left PRINT PRINTF RETURN SPLIT SPRINTF STRING SUB SUBSTR
120 %left '+' '-'
132 winner = (Node *)stat3(PROGRAM, beginloc, $1, endloc); }
158 { --inloop; $$ = stat4(FOR, $3, notnull($6), $9, $12); }
160 { --inloop; $$ = stat4(FOR, $3, NIL, $7, $10); }
162 { --inloop; $$ = stat3(IN, $3, makearr($5), $8); }
218 { infunc--; curfname=0; defn((Cell *)$2, $4, $8); $$ = 0; }
239 | ppattern MATCHOP reg_expr { $$ = op3($2, NIL, $1, (Node*)makedfa($3, 0)); }
242 $$ = op3($2, NIL, $1, (Node*)makedfa(strnode($3), 0));
244 $$ = op3($2, (Node *)1, $1, $3); }
266 | pattern MATCHOP reg_expr { $$ = op3($2, NIL, $1, (Node*)makedfa($3, 0)); }
269 $$ = op3($2, NIL, $1, (Node*)makedfa(strnode($3), 0));
271 $$ = op3($2, (Node *)1, $1, $3); }
279 else $$ = op3(GETLINE, (Node*)0, itonp($2), $1); }
315 { $$ = op3(MATCH, NIL, rectonode(), (Node*)makedfa($1, 0)); }
354 | do {inloop++;} stmt {--inloop;} WHILE '(' pattern ')' st
371 | while {inloop++;} stmt { --inloop; $$ = stat2(WHILE, $1, $3); }
381 SUB | GSUB
387 | term '-' term { $$ = op2(MINUS, $1, $3); }
392 | '-' term %prec UMINUS { $$ = op1(UMINUS, $2); }
413 $$ = op2(INDEX, $3, (Node*)$5); }
416 { $$ = op3(MATCHFCN, NIL, $3, (Node*)makedfa($5, 1)); }
419 $$ = op3(MATCHFCN, NIL, $3, (Node*)makedfa(strnode($5), 1));
421 $$ = op3(MATCHFCN, (Node *)1, $3, $5); }
424 { $$ = op4(SPLIT, $3, makearr($5), $7, (Node*)STRING); }
426 { $$ = op4(SPLIT, $3, makearr($5), (Node*)makedfa($7, 1), (Node *)REGEXPR); }
428 { $$ = op4(SPLIT, $3, makearr($5), NIL, (Node*)STRING); } /* default */
432 { $$ = op4($1, NIL, (Node*)makedfa($3, 1), $5, rectonode()); }
435 $$ = op4($1, NIL, (Node*)makedfa(strnode($3), 1), $5, rectonode());
437 $$ = op4($1, (Node *)1, $3, $5, rectonode()); }
439 { $$ = op4($1, NIL, (Node*)makedfa($3, 1), $5, $7); }
442 $$ = op4($1, NIL, (Node*)makedfa(strnode($3), 1), $5, $7);
444 $$ = op4($1, (Node *)1, $3, $5, $7); }
470 | VARNF { $$ = op1(VARNF, (Node *) $1); }
484 SYNTAX("%s is an array, not a function", p->nval);
486 SYNTAX("you can't define function %s more than once", p->nval);
487 curfname = p->nval;
488 p->tval |= FCN;
492 constnode(Node *p)
494 return isvalue(p) && ((Cell *) (p->narg[0]))->csub == CCON;
498 strnode(Node *p)
500 return ((Cell *)(p->narg[0]))->sval;
503 static Node *
504 notnull(Node *n)
506 switch (n->nobj) {
516 checkdup(Node *vl, Cell *cp) /* check if name already in list */
518 char *s = cp->nval;
519 for (; vl; vl = vl->nnext) {
520 if (strcmp(s, ((Cell *)(vl->narg[0]))->nval) == 0) {