Lines Matching refs:pp
72 if (a = (struct pplist*)hashget(pp.prdtab, pred))
94 hashput(pp.prdtab, pred, a);
95 if (sym = ppsymref(pp.symtab, pred))
105 hashput(pp.prdtab, NiL, p);
107 if ((pp.state & COMPILE) && pp.truncate) return;
108 if (sym = ppsymset(pp.symtab, pred))
136 pp.state &= ~NOSPACE;
138 pp.state |= NOSPACE;
141 ppop(op, (flags & TOKOP_DUP) ? strdup(pp.token) : pp.token, n);
166 error(2, "%s: invalid macro name", pptokstr(pp.token, 0));
169 sym = pprefmac(pp.token, REF_CREATE);
170 if ((sym->flags & SYM_FINAL) && (pp.mode & HOSTED)) return 0;
173 if (!(pp.option & ALLPOSSIBLE))
196 restore = pp.state & (NOSPACE|STRIP);
197 pp.state &= ~(NEWLINE|NOSPACE|STRIP);
198 pp.state |= EOF2NL;
207 disable = (c == T_ID && streq(pp.token, pp.pass)) ? 2 : 0;
212 pp.state |= DISABLE;
215 s = pp.token;
230 pp.state &= ~(NOSPACE|STRIP);
231 pp.state |= restore;
310 if (pp.state & SKIPCONTROL) pp.level--;
311 restore = (pp.state & RESTORE)|NEWLINE;
312 if (pp.state & PASSTHROUGH) restore |= DISABLE;
314 pp.state &= ~(NEWLINE|RESTORE|SKIPCONTROL);
315 pp.state |= DIRECTIVE|DISABLE|EOF2NL|NOSPACE|NOVERTICAL;
317 if ((pp.state & (COMPATIBILITY|STRICT)) == COMPATIBILITY || (pp.mode & HOSTED)) pp.state &= ~NOVERTICAL;
319 if (pp.mode & HOSTED) pp.state &= ~NOVERTICAL;
325 if ((pp.state & STRICT) && !(pp.mode & (HOSTED|RELAX)))
330 switch (directive = (int)hashref(pp.dirtab, pp.token))
334 if ((pp.option & ALLPOSSIBLE) && !pp.in->prev->prev)
336 if (pp.control <= pp.in->control)
341 if (pp.control == (pp.in->control + 1)) pp.in->flags |= IN_noguard;
342 if (*pp.control & HADELSE)
345 *pp.control |= SKIP;
348 if (*pp.control & KEPT)
350 *pp.control |= SKIP;
355 *pp.control &= ~SKIP;
361 *pp.control &= ~SKIP;
362 *pp.control |= KEPT;
364 else *pp.control |= SKIP;
365 c = (pp.state & NEWLINE) ? '\n' : ' ';
368 if ((pp.option & ALLPOSSIBLE) && !pp.in->prev->prev)
370 if ((pp.option & ELSEIF) && (c = pplex()) == T_ID && ((n = (int)hashref(pp.dirtab, pp.token)) == IF || n == IFDEF || n == IFNDEF))
376 if (pp.control <= pp.in->control) error(2, "no matching #%s for #%s", dirname(IF), dirname(ELSE));
379 if (pp.control == (pp.in->control + 1)) pp.in->flags |= IN_noguard;
380 if (!(*pp.control & KEPT))
382 *pp.control &= ~SKIP;
383 *pp.control |= HADELSE|KEPT;
387 if (*pp.control & HADELSE) error(2, "more than one #%s for #%s", dirname(ELSE), dirname(IF));
388 *pp.control |= HADELSE|SKIP;
393 if ((pp.option & ALLPOSSIBLE) && !pp.in->prev->prev)
395 if (pp.control <= pp.in->control) error(2, "no matching #%s for #%s", dirname(IF), dirname(ENDIF));
396 else if (--pp.control == pp.in->control && pp.in->symbol)
398 if (pp.in->flags & IN_endguard) pp.in->flags |= IN_noguard;
401 pp.in->flags &= ~IN_tokens;
402 pp.in->flags |= IN_endguard;
409 if ((pp.option & ALLPOSSIBLE) && !pp.in->prev->prev)
412 SETIFBLOCK(pp.control);
413 if (*pp.control & SKIP)
415 *pp.control |= KEPT;
422 sym = pprefmac(pp.token, REF_IF);
423 if (directive == IFNDEF && pp.control == pp.in->control + 1)
425 if (pp.in->flags & (IN_defguard|IN_endguard))
426 pp.in->flags |= IN_noguard;
429 pp.in->flags |= IN_defguard;
430 if (!(pp.in->flags & IN_tokens))
431 pp.in->symbol = sym ? sym : pprefmac(pp.token, REF_CREATE);
438 if (!(pp.mode & HOSTED))
439 error(1, "%s: invalid macro name", pptokstr(pp.token, 0));
441 *pp.control |= ((sym != 0) == (directive == IFDEF)) ? KEPT : SKIP;
444 if (*pp.control & SKIP)
446 pp.state |= HEADER;
448 pp.state &= ~HEADER;
451 pp.state &= ~DISABLE;
452 pp.state |= HEADER|STRIP;
453 pp.in->flags |= IN_noguard;
457 p = pp.token;
458 do pp.token = pp.toknxt; while ((c = pplex()) == T_STRING);
459 *pp.token = 0;
460 pp.token = p;
464 if (!*pp.token)
469 if (*pp.token == '/' && !(pp.mode & (HOSTED|RELAX)))
470 error(1, "#%s: reference to %s is not portable", dirname(INCLUDE), pp.token);
471 n = ppsearch(pp.token, c, SEARCH_INCLUDE);
478 if (!(p = pp.hdrbuf) && !(p = pp.hdrbuf = newof(0, char, MAXTOKEN, 0)))
480 pp.state &= ~NOSPACE;
484 STRCOPY(p, pp.token, s);
485 if (p == v && *(p - 1) == ' ' && pp.in->type != IN_MACRO)
488 pp.state |= NOSPACE;
490 memcpy(pp.token, pp.hdrbuf, p - pp.hdrbuf);
503 p = pp.valbuf;
505 STRCOPY(p, pp.token, s);
507 pp.mode |= EXPOSE;
508 pp.state |= HEADER;
509 p6 = getline(p, &pp.valbuf[MAXTOKEN], 0);
510 pp.state &= ~HEADER;
511 pp.mode &= ~EXPOSE;
515 error(2, "%s: directive too long", pp.valbuf);
523 p = pp.valbuf;
526 for (map = (struct map*)pp.maps; map; map = map->next)
540 if ((pp.state & (STRICT|WARN)) && !(pp.mode & (HOSTED|RELAX)))
543 if (!(pp.state & WARN) || strcmp(p + 1, dirname(PRAGMA)))
547 if (!(*pp.control & SKIP))
577 if (directive != PRAGMA && (!(*pp.control & SKIP) || !(pp.mode & (HOSTED|RELAX))))
580 error(1, "%s: unknown directive", pptokstr(pp.valbuf, 0));
584 if (!(*pp.control & SKIP) && pp.pragma && !(pp.state & NOTEXT) && (directive == PRAGMA || !(pp.mode & INIT)))
592 p5 = strcpy(pp.tmpbuf, p5);
603 if (p = (char*)memchr(pp.valbuf + 1, MARK, p6 - pp.valbuf - 1))
617 (*pp.pragma)(pp.valbuf + 1, p1, p3, p5, (pp.state & COMPILE) || (pp.mode & INIT) != 0);
625 if (*pp.control & SKIP) goto eatdirective;
636 if ((pp.state & STRICT) && !(pp.mode & (HOSTED|RELAX)))
637 error(1, "#%s: non-standard directive", pp.token);
653 if (pp.truncate)
654 ppfsm(FSM_MACRO, pp.token);
656 if ((pp.option & ALLPOSSIBLE) && !pp.in->prev->prev && mac->value)
670 pp.state &= ~NOSPACE;
671 pp.state |= DEFINITION|NOEXPAND;
676 pp.state |= NOSPACE;
678 if (pp.option & KEYARGS)
688 STRAPP(p, pp.token, s);
694 else error(2, "%s: formal argument %s ignored", sym->name, pp.token);
705 pp.state &= ~NOSPACE;
734 STRCOPY(p, pp.token, s);
750 pp.state |= NOSPACE;
765 if ((pp.state & COMPATIBILITY) && c == ',')
767 if ((pp.state & WARN) && !(pp.mode & HOSTED))
777 error(2, "%s: %s: duplicate macro formal argument", sym->name, pp.token);
783 v = pp.token;
805 if ((pp.state & COMPATIBILITY) && c == ',')
807 if ((pp.state & WARN) && !(pp.mode & HOSTED))
818 error(2, "%s: %s: duplicate macro formal argument", sym->name, pp.token);
841 pp.state |= NOEXPAND|NOSPACE;
843 pp.state |= NOEXPAND;
859 pp.state &= ~NOSPACE;
875 n3 = pp.state;
877 if ((pp.option & PLUSPLUS) && (pp.state & (COMPATIBILITY|TRANSITION)) != COMPATIBILITY)
898 if (streq(formargs[c], pp.token))
901 if (!(pp.state & COMPATIBILITY))
903 if (var.type != TOK_TOKCAT && p > mac->value && *(p - 1) != ' ' && !(pp.option & PRESERVE)) *p++ = ' ';
906 if ((pp.state & (COMPATIBILITY|TRANSITION)) == COMPATIBILITY) *p++ = 'C';
911 if ((pp.state & WARN) && !(pp.mode & (HOSTED|RELAX)) && var.type != TOK_TOKCAT && !(var.type & TOK_ID))
913 s = pp.in->nextchr;
926 error(1, "%s: %s: formal should be parenthesized in macro value (t=%x o=%#c c=%#c)", sym->name, pp.token, var.type, o, c);
933 if (var.type == TOK_BUILTIN) switch ((int)hashget(pp.strtab, pp.token))
940 else if (pp.hiding && (var.symbol = ppsymref(pp.symtab, pp.token)) && var.symbol->hidden)
942 for (var.inp = pp.in; var.inp->type != IN_FILE && var.inp->prev; var.inp = var.inp->prev);
943 p += sfsprintf(p, MAXTOKEN, "_%d_%s_hIDe", var.inp->hide, pp.token);
956 pp.state |= NOSPACE;
964 pp.state &= ~NOSPACE;
967 if (streq(formargs[c], pp.token))
976 pp.state &= ~NOEXPAND;
977 switch ((int)hashref(pp.dirtab, pp.token))
995 if (pp.state & COMPATIBILITY) *p++ = '#';
1002 if (p > mac->value && ppisidig(*(p - 1)) && !(pp.option & PRESERVE)) *p++ = ' ';
1010 if (p <= mac->value) error(2, "%s lhs operand omitted", pp.token);
1016 pp.state |= NOSPACE;
1018 pp.state &= ~NOSPACE;
1023 if (*pp.token == '#')
1040 pp.state &= ~NOEXPAND;
1042 if (strchr(pp.token, MARK)) pp.state &= ~NOEXPAND;
1046 if ((sym->flags & SYM_FUNCTION) && (pp.state & (COMPATIBILITY|TRANSITION)))
1050 s = pp.token;
1066 if (!(pp.mode & HOSTED) && (!(pp.state & COMPATIBILITY) || (pp.state & WARN))) switch (*pp.token)
1091 if (pp.state & EOF2NL)
1094 pp.state |= HIDDEN;
1095 pp.hidden++;
1101 pp.state |= EOF2NL;
1111 if (pp.state & COMPATIBILITY) var.type = 0;
1112 if (pp.option & PRESERVE) break;
1123 if (pp.state & WARN) error(1, "use the ## operator to concatenate macro arguments");
1129 if (pp.option & PRESERVE) break;
1134 pp.state &= ~NOEXPAND;
1141 STRCOPY(p, pp.token, s);
1151 n3 = pp.state;
1157 if (p > mac->value && (pp.option & PLUSPLUS) && (pp.state & (COMPATIBILITY|TRANSITION)) != COMPATIBILITY)
1174 else if (pp.option & KEYARGS)
1201 if (pp.option & KEYARGS)
1212 if (pp.option & KEYARGS)
1227 if (!(pp.mode & HOSTED) || !(i0 & SYM_INITIAL))
1230 if ((pp.option & KEYARGS) && mac->formkeys)
1234 if (!(pp.option & KEYARGS))
1239 else if (!pp.truncate) ppfsm(FSM_MACRO, sym->name);
1241 if ((pp.option & (DEFINITIONS|PREDEFINITIONS|REGUARD)) && !sym->hidden && !(sym->flags & SYM_MULTILINE) && ((pp.option & PREDEFINITIONS) || !(pp.mode & INIT)) && ((pp.option & (DEFINITIONS|PREDEFINITIONS)) || !(pp.state & NOTEXT)))
1288 if (pp.mode & BUILTIN) sym->flags |= SYM_BUILTIN;
1289 if (pp.option & FINAL) sym->flags |= SYM_FINAL;
1290 if (pp.mode & INIT) sym->flags |= SYM_INIT;
1291 if (pp.option & INITIAL) sym->flags |= SYM_INITIAL;
1292 if (pp.state & NOEXPAND) sym->flags |= SYM_NOEXPAND;
1293 if (pp.option & PREDEFINED) sym->flags |= SYM_PREDEFINED;
1294 if (pp.mode & READONLY) sym->flags |= SYM_READONLY;
1295 if (pp.macref) (*pp.macref)(sym, error_info.file, n2, mac ? error_info.line - n2 + 1 : REF_UNDEF, mac ? strsum(mac->value, (long)mac->arity) : 0L);
1299 if ((pp.state & STRICT) && !(pp.mode & (HOSTED|RELAX)))
1300 error(1, "#%s #%s: assertions are non-standard", dirname(directive), pptokstr(pp.token, 0));
1303 error(2, "%s: invalid predicate name", pptokstr(pp.token, 0));
1306 switch ((int)hashref(pp.strtab, pp.token))
1311 error(2, "%s is a builtin predicate", pp.token);
1314 error(2, "%s cannot be a predicate", pp.token);
1317 strcpy(pp.tmpbuf, pp.token);
1322 assert(directive, pp.tmpbuf, pp.args);
1325 assert(directive, pp.tmpbuf, NiL);
1333 pp.state |= DEFINITION|NOEXPAND|NOSPACE;
1341 if (streq(tp->token, pp.token))
1345 if (!(tp = newof(0, struct pptuple, 1, strlen(pp.token))))
1347 strcpy(tp->token, pp.token);
1362 pp.state &= ~NOSPACE;
1372 STRCOPY(p, pp.token, s);
1390 if ((pp.state & STRICT) && !(pp.mode & (HOSTED|RELAX)))
1391 error(1, "#%s: non-standard directive", pp.token);
1394 pp.state &= ~DISABLE;
1395 p = pp.tmpbuf;
1397 if (p + strlen(pp.token) < &pp.tmpbuf[MAXTOKEN])
1399 STRCOPY(p, pp.token, s);
1400 pp.state &= ~NOSPACE;
1403 p = *pp.tmpbuf ? pp.tmpbuf : ((directive == WARNING) ? "user warning" : "user error");
1409 if ((pp.state & STRICT) && !(pp.mode & (HOSTED|RELAX)))
1410 error(1, "#%s: non-standard directive", pp.token);
1425 if ((pp.option & KEYARGS) && mac->formkeys) free(mac->formkeys);
1438 if (i1) c = sfsprintf(pp.tmpbuf, MAXTOKEN, "%luU", n1);
1439 else c = sfsprintf(pp.tmpbuf, MAXTOKEN, "%ld", n1);
1445 strcpy(mac->value, pp.tmpbuf);
1447 c = (pp.state & NEWLINE) ? '\n' : ' ';
1450 pp.state &= ~DISABLE;
1463 error_info.line = strtol(pp.token, NiL, 0);
1464 if (error_info.line == 0 && directive == LINE && (pp.state & STRICT) && !(pp.mode & HOSTED))
1466 pp.state &= ~DISABLE;
1467 pp.state |= STRIP;
1472 if (*(p = pp.token))
1484 if (directive == LINE && (pp.state & STRICT) && !(pp.mode & (HOSTED|RELAX)))
1491 if (directive == LINE) pp.in->flags &= ~IN_ignoreline;
1492 else if (pp.incref)
1496 switch (*pp.token)
1499 if (pp.insert) (*pp.incref)(s, error_info.file, n, PP_SYNC_INSERT);
1500 else (*pp.incref)(s, error_info.file, n, PP_SYNC_PUSH);
1503 if (pp.insert) (*pp.incref)(s, error_info.file, n, PP_SYNC_INSERT);
1504 else (*pp.incref)(s, error_info.file, n - 1, PP_SYNC_POP);
1507 if (pp.insert) (*pp.incref)(s, error_info.file, n, PP_SYNC_INSERT);
1510 (*pp.incref)(s, error_info.file, n, PP_SYNC_IGNORE);
1517 if (fp == pp.insert)
1518 pp.insert = 0;
1519 else if (error_info.line == 1 && !pp.insert)
1520 (*pp.incref)(s, error_info.file, n, PP_SYNC_PUSH);
1523 if (!pp.insert) pp.insert = ppgetfile(s);
1524 (*pp.incref)(s, error_info.file, n, PP_SYNC_INSERT);
1538 if (directive == LINE && (pp.in->flags & IN_ignoreline))
1542 pp.hidden = 0;
1543 pp.state &= ~HIDDEN;
1544 if (pp.linesync)
1547 if (pp.state & JOINING) pp.state |= HIDDEN|SYNCLINE;
1551 s = pp.lineid;
1552 n = pp.flags;
1555 pp.flags &= ~PP_linetype;
1556 if (pp.macref) pp.lineid = dirname(LINE);
1558 (*pp.linesync)(error_info.line, error_info.file);
1559 pp.flags = n;
1560 pp.lineid = s;
1574 * if pass is pp.pass then the option is used
1579 * otherwise if pass is non-null and not pp.pass then
1587 * pp.valbuf p0 p1 p2 p3 p4 p5 p6
1593 p = pp.valbuf;
1595 STRCOPY(p, pp.token, s);
1597 if (pp.option & PRAGMAEXPAND)
1598 pp.state &= ~DISABLE;
1599 if (!(p6 = getline(p, &pp.valbuf[MAXTOKEN], !!(pp.option & PRAGMAEXPAND))))
1602 error(2, "%s: directive too long", pp.valbuf);
1644 if ((pp.state & WARN) && (pp.mode & (HOSTED|RELAX|PEDANTIC)) == PEDANTIC)
1652 n = streq(p1, pp.pass);
1661 if (((i1 = (int)hashref(pp.strtab, p3 + (i0 ? 0 : 2))) < 1 || i1 > X_last_option) && (i0 || (i1 = (int)hashref(pp.strtab, p3)) > X_last_option))
1663 if ((pp.state & (COMPATIBILITY|STRICT)) == STRICT && !(pp.mode & (HOSTED|RELAX)))
1665 if (pp.optflags[i1] & OPT_GLOBAL)
1667 if (n || (pp.mode & WARN))
1676 if (!(pp.optflags[i1] & OPT_GLOBAL))
1681 if (!(pp.optflags[i1] & OPT_PASS))
1686 else if ((pp.state & STRICT) && !(pp.mode & (HOSTED|RELAX)))
1702 if (pp.mode & CATLITERAL)
1745 if (c != T_ID) error(1, "%s: %s: identifier expected", p3, pp.token);
1746 else if (sym = ppsymset(pp.symtab, pp.token))
1761 pp.hiding++;
1783 pp.hiding--;
1823 if (pp.linesync) pp.olinesync = pp.linesync;
1824 pp.linesync = i0 ? pp.olinesync : (PPLINESYNC)0;
1841 if (i0 && !pp.macref)
1850 if (pp.macref && (s = strchr(p, ' ')))
1854 var.type = pp.truncate;
1855 pp.truncate = PPTOKSIZ;
1856 (*pp.macref)(pprefmac(p, REF_CREATE), error_info.file, error_info.line - (c == REF_NORMAL ? 2 : 1), c, (s = strchr(s, ' ')) ? strtol(s, NiL, 0) : 0L);
1857 pp.truncate = var.type;
1865 * #pragma pp:map [id ...] "/from/[,/to/]" [ "/old/new/[glnu]" ... ]
1881 sfsprintf(pp.tmpbuf, MAXTOKEN, "__%s__", s = pp.token);
1882 if (c = (int)hashget(pp.dirtab, s))
1884 hashput(pp.dirtab, 0, 0);
1885 hashput(pp.dirtab, pp.tmpbuf, c);
1887 if (c = (int)hashget(pp.strtab, s))
1889 hashput(pp.strtab, 0, 0);
1890 hashput(pp.strtab, pp.tmpbuf, c);
1893 if (c != T_STRING || !*(s = pp.token))
1896 error(2, "%s: %s: address argument expected", p3, pptokstr(pp.token, 0));
1920 if (!*(s = pp.token))
1941 error(2, "%s: %s: substitution argument expected", p3, pptokstr(pp.token, 0));
1944 map->next = (struct map*)pp.maps;
1945 pp.maps = (char*)map;
1958 if (pp.in->type == IN_FILE || pp.in->type == IN_RESCAN)
1996 if (pp.option & PRESERVE)
2037 if (!(pp.state & (COMPATIBILITY|COMPILE)))
2057 if (pp.option & STRINGSPLIT)
2063 pp.mode |= HOSTED;
2064 pp.flags |= PP_hosted;
2065 pp.in->flags |= IN_hosted;
2069 pp.mode &= ~HOSTED;
2070 pp.flags &= ~PP_hosted;
2071 pp.in->flags &= ~PP_hosted;
2078 if (!(pp.option & KEEPNOTEXT))
2083 if (pp.state & TRANSITION) ppop(PP_COMPATIBILITY, i0);
2092 if (!(*pp.control & SKIP) && pp.pragma && !(pp.state & NOTEXT))
2094 sfsprintf(pp.tmpbuf, MAXTOKEN, "\"%s\"", pp.version);
2095 (*pp.pragma)(dirname(PRAGMA), pp.pass, p3, pp.tmpbuf, !n);
2096 if (pp.linesync && !n)
2097 (*pp.linesync)(error_info.line, error_info.file);
2115 error(PANIC, "%s: option recognized but not implemented", pp.valbuf);
2124 if ((pp.state & STRICT) && !(pp.mode & (HOSTED|RELAX)))
2125 error(1, "#%s: non-standard directive", pp.token);
2128 error(1, "%s: invalid macro name", pptokstr(pp.token, 0));
2131 if (!(sym = pprefmac(pp.token, REF_DELETE)) || !sym->macro)
2135 if (!(pp.option & ALLPOSSIBLE))
2141 error(1, "%s: invalid macro name", pptokstr(pp.token, 0));
2144 var.symbol = pprefmac(pp.token, REF_CREATE);
2149 if (!(pp.option & ALLPOSSIBLE))
2153 if (!(pp.mode & HOSTED) || !(var.symbol->flags & SYM_INITIAL))
2168 error(1, "%s: invalid macro name", pptokstr(pp.token, 0));
2171 if (sym = pprefmac(pp.token, REF_DELETE))
2177 if (!(pp.option & ALLPOSSIBLE))
2186 if ((pp.option & (DEFINITIONS|PREDEFINITIONS|REGUARD)) && !sym->hidden && !(sym->flags & SYM_MULTILINE) && ((pp.option & PREDEFINITIONS) || !(pp.mode & INIT)) && ((pp.option & (DEFINITIONS|PREDEFINITIONS)) || !(pp.state & NOTEXT)))
2196 else pprefmac(pp.token, REF_UNDEF);
2200 error(PANIC, "#%s: directive recognized but not implemented", pp.token);
2208 error(1, "%s: invalid directive name", pptokstr(pp.token, 0));
2213 if (c != '\n' && !(pp.state & COMPATIBILITY))
2218 pp.state |= DISABLE|NOSPACE;
2219 if ((c = pplex()) != '\n' && (pp.mode & (HOSTED|PEDANTIC)) == PEDANTIC)
2220 error(1, "%s: invalid characters after directive", pptokstr(pp.token, 0));
2225 pp.state |= DISABLE;
2230 if (!(pp.state & EOF2NL))
2233 pp.state &= ~RESTORE;
2234 pp.mode &= ~RELAX;
2235 if (!(*pp.control & SKIP))
2237 pp.state |= restore;
2243 if (pp.include)
2246 PUSH_FILE(pp.include, n);
2247 if (!pp.vendor && (pp.found->type & TYPE_VENDOR))
2248 pp.vendor = 1;
2249 pp.include = 0;
2252 if (pp.incref)
2253 (*pp.incref)(error_info.file, ppgetfile(pp.path)->name, error_info.line, PP_SYNC_IGNORE);
2254 else if (pp.linesync && pp.macref)
2256 pp.flags |= PP_lineignore;
2257 (*pp.linesync)(error_info.line, ppgetfile(pp.path)->name);
2261 pp.in->flags |= IN_tokens;
2272 pp.state |= HIDDEN;
2273 pp.hidden++;
2278 pp.state |= restore|HIDDEN|SKIPCONTROL;
2279 pp.hidden++;
2280 pp.level++;
2286 * grow the pp nesting control stack
2299 oz = pp.constack;
2300 op = pp.maxcon - oz + 1;
2305 ip = pp.in;
2312 pp.control = np + oz;
2313 pp.constack = nz;
2314 pp.maxcon = np + nz - 1;