Lines Matching +full:1 +full:st +full:- +full:cell

30 void checkdup(Node *list, Cell *item);
31 int yywrap(void) { return(1); } in yywrap()
36 int inloop = 0; /* >= 1 if in while, for, do; can't be bool, since loops can next */
43 Cell *cp;
71 %type <i> do st
88 %left '+' '-'
100 winner = (Node *)stat3(PROGRAM, beginloc, $1, endloc); }
126 { --inloop; $$ = stat4(FOR, $3, notnull($6), $9, $12); }
128 { --inloop; $$ = stat4(FOR, $3, NIL, $7, $10); }
130 { --inloop; $$ = stat3(IN, $3, makearr($5), $8); }
134 VAR { setfname($1); }
135 | CALL { setfname($1); }
172 pattern { $$ = notnull($1); }
176 pa_pat { $$ = stat2(PASTAT, $1, stat2(PRINT, rectonode(), NIL)); }
177 | pa_pat lbrace stmtlist '}' { $$ = stat2(PASTAT, $1, $3); }
178 | pa_pat ',' opt_nl pa_pat { $$ = pa2stat($1, $4, stat2(PRINT, rectonode(), NIL)); }
179 | pa_pat ',' opt_nl pa_pat lbrace stmtlist '}' { $$ = pa2stat($1, $4, $6); }
186 { infunc = false; curfname=0; defn((Cell *)$2, $4, $8); $$ = 0; }
191 | pa_stats opt_pst pa_stat { $$ = linkum($1, $3); }
196 | patlist comma pattern { $$ = linkum($1, $3); }
200 var ASGNOP ppattern { $$ = op2($2, $1, $3); }
202 { $$ = op3(CONDEXPR, notnull($1), $3, $5); }
204 { $$ = op2(BOR, notnull($1), notnull($3)); }
206 { $$ = op2(AND, notnull($1), notnull($3)); }
207 | ppattern MATCHOP reg_expr { $$ = op3($2, NIL, $1, (Node*)makedfa($3, 0)); free($3); }
210 $$ = op3($2, NIL, $1, (Node*)makedfa(strnode($3), 0));
213 $$ = op3($2, (Node *)1, $1, $3); }
214 | ppattern IN varname { $$ = op2(INTEST, $1, makearr($3)); }
216 | ppattern term %prec CAT { $$ = op2(CAT, $1, $2); }
222 var ASGNOP pattern { $$ = op2($2, $1, $3); }
224 { $$ = op3(CONDEXPR, notnull($1), $3, $5); }
226 { $$ = op2(BOR, notnull($1), notnull($3)); }
228 { $$ = op2(AND, notnull($1), notnull($3)); }
229 | pattern EQ pattern { $$ = op2($2, $1, $3); }
230 | pattern GE pattern { $$ = op2($2, $1, $3); }
231 | pattern GT pattern { $$ = op2($2, $1, $3); }
232 | pattern LE pattern { $$ = op2($2, $1, $3); }
233 | pattern LT pattern { $$ = op2($2, $1, $3); }
234 | pattern NE pattern { $$ = op2($2, $1, $3); }
235 | pattern MATCHOP reg_expr { $$ = op3($2, NIL, $1, (Node*)makedfa($3, 0)); free($3); }
238 $$ = op3($2, NIL, $1, (Node*)makedfa(strnode($3), 0));
241 $$ = op3($2, (Node *)1, $1, $3); }
242 | pattern IN varname { $$ = op2(INTEST, $1, makearr($3)); }
246 else $$ = op3(GETLINE, $4, itonp($2), $1); }
249 else $$ = op3(GETLINE, (Node*)0, itonp($2), $1); }
250 | pattern term %prec CAT { $$ = op2(CAT, $1, $2); }
256 pattern comma pattern { $$ = linkum($1, $3); }
257 | plist comma pattern { $$ = linkum($1, $3); }
262 | pplist comma ppattern { $$ = linkum($1, $3); }
285 { $$ = op3(MATCH, NIL, rectonode(), (Node*)makedfa($1, 0)); free($1); }
300 else $$ = stat3($1, $2, itonp($3), $4); }
303 else $$ = stat3($1, $2, itonp($3), $4); }
306 else $$ = stat3($1, $2, itonp($3), $4); }
307 | print prarg { $$ = stat3($1, $2, NIL, NIL); }
310 | pattern { $$ = exptostat($1); }
314 st:
320 BREAK st { if (!inloop) SYNTAX("break illegal outside of loops");
322 | CONTINUE st { if (!inloop) SYNTAX("continue illegal outside of loops");
324 | do {inloop++;} stmt {--inloop;} WHILE '(' pattern ')' st
326 | EXIT pattern st { $$ = stat1(EXIT, $2); }
327 | EXIT st { $$ = stat1(EXIT, NIL); }
329 | if stmt else stmt { $$ = stat3(IF, $1, $2, $4); }
330 | if stmt { $$ = stat3(IF, $1, $2, NIL); }
332 | NEXT st { if (infunc)
335 | NEXTFILE st { if (infunc)
338 | RETURN pattern st { $$ = stat1(RETURN, $2); }
339 | RETURN st { $$ = stat1(RETURN, NIL); }
340 | simple_stmt st
341 | while {inloop++;} stmt { --inloop; $$ = stat2(WHILE, $1, $3); }
347 | stmtlist stmt { $$ = linkum($1, $2); }
356 | string STRING { $$ = catstr($1, $2); }
360 term '/' ASGNOP term { $$ = op2(DIVEQ, $1, $4); }
361 | term '+' term { $$ = op2(ADD, $1, $3); }
362 | term '-' term { $$ = op2(MINUS, $1, $3); }
363 | term '*' term { $$ = op2(MULT, $1, $3); }
364 | term '/' term { $$ = op2(DIVIDE, $1, $3); }
365 | term '%' term { $$ = op2(MOD, $1, $3); }
366 | term POWER term { $$ = op2(POWER, $1, $3); }
367 | '-' term %prec UMINUS { $$ = op1(UMINUS, $2); }
370 | BLTIN '(' ')' { $$ = op2(BLTIN, itonp($1), rectonode()); }
371 | BLTIN '(' patlist ')' { $$ = op2(BLTIN, itonp($1), $3); }
372 | BLTIN { $$ = op2(BLTIN, itonp($1), rectonode()); }
373 | CALL '(' ')' { $$ = op2(CALL, celltonode($1,CVAR), NIL); }
374 | CALL '(' patlist ')' { $$ = op2(CALL, celltonode($1,CVAR), $3); }
378 | var DECR { $$ = op1(POSTDECR, $1); }
379 | var INCR { $$ = op1(POSTINCR, $1); }
381 { $$ = op5(GENSUB, NIL, (Node*)makedfa($3, 1), $5, $7, rectonode()); }
384 $$ = op5(GENSUB, NIL, (Node *)makedfa(strnode($3), 1), $5, $7, rectonode());
387 $$ = op5(GENSUB, (Node *)1, $3, $5, $7, rectonode());
390 { $$ = op5(GENSUB, NIL, (Node*)makedfa($3, 1), $5, $7, $9); }
393 $$ = op5(GENSUB, NIL, (Node *)makedfa(strnode($3),1), $5,$7,$9);
396 $$ = op5(GENSUB, (Node *)1, $3, $5, $7, $9);
409 { $$ = op3(MATCHFCN, NIL, $3, (Node*)makedfa($5, 1)); free($5); }
412 $$ = op3(MATCHFCN, NIL, $3, (Node*)makedfa(strnode($5), 1));
415 $$ = op3(MATCHFCN, (Node *)1, $3, $5); }
416 | NUMBER { $$ = celltonode($1, CCON); }
420 { $$ = op4(SPLIT, $3, makearr($5), (Node*)makedfa($7, 1), (Node *)REGEXPR); free($7); }
423 | SPRINTF '(' patlist ')' { $$ = op1($1, $3); }
424 | string { $$ = celltonode($1, CCON); }
426 { $$ = op4($1, NIL, (Node*)makedfa($3, 1), $5, rectonode()); free($3); }
429 $$ = op4($1, NIL, (Node*)makedfa(strnode($3), 1), $5, rectonode());
432 $$ = op4($1, (Node *)1, $3, $5, rectonode()); }
434 { $$ = op4($1, NIL, (Node*)makedfa($3, 1), $5, $7); free($3); }
437 $$ = op4($1, NIL, (Node*)makedfa(strnode($3), 1), $5, $7);
440 $$ = op4($1, (Node *)1, $3, $5, $7); }
450 | varname '[' patlist ']' { $$ = op2(ARRAY, makearr($1), $3); }
451 | IVAR { $$ = op1(INDIRECT, celltonode($1, CVAR)); }
457 | VAR { arglist = $$ = celltonode($1,CVAR); }
459 checkdup($1, $3);
460 arglist = $$ = linkum($1,celltonode($3,CVAR)); }
464 VAR { $$ = celltonode($1, CVAR); }
465 | ARG { $$ = op1(ARG, itonp($1)); }
466 | VARNF { $$ = op1(VARNF, (Node *) $1); }
476 void setfname(Cell *p)
479 SYNTAX("%s is an array, not a function", p->nval);
481 SYNTAX("you can't define function %s more than once", p->nval);
482 curfname = p->nval;
487 return isvalue(p) && ((Cell *) (p->narg[0]))->csub == CCON;
492 return ((Cell *)(p->narg[0]))->sval;
497 switch (n->nobj) {
506 void checkdup(Node *vl, Cell *cp) /* check if name already in list */
508 char *s = cp->nval;
509 for ( ; vl; vl = vl->nnext) {
510 if (strcmp(s, ((Cell *)(vl->narg[0]))->nval) == 0) {