1N/A#pragma prototyped
1N/A#define PPCHECKOUT() do{if(op>xp){{PPWRITE(PPBUFSIZ);if(pp.outbuf==pp.outb){pp.outbuf+=PPBUFSIZ;xp=pp.oute+=PPBUFSIZ;}else{pp.outbuf-=PPBUFSIZ;memcpy(pp.outbuf,xp,op-xp);xp=pp.oute-=PPBUFSIZ;op-=2*PPBUFSIZ;}}}}while(0)
1N/A#define PPCHECKOUTSP() do{if(op>xp){if(sp)op=sp;else{PPWRITE(PPBUFSIZ);if(pp.outbuf==pp.outb){pp.outbuf+=PPBUFSIZ;xp=pp.oute+=PPBUFSIZ;}else{pp.outbuf-=PPBUFSIZ;memcpy(pp.outbuf,xp,op-xp);xp=pp.oute-=PPBUFSIZ;op-=2*PPBUFSIZ;}}}}while(0)
1N/A#define PPCHECKOUTTP() do{if(op>xp){{PPWRITE(PPBUFSIZ);if(pp.outbuf==pp.outb){pp.outbuf+=PPBUFSIZ;xp=pp.oute+=PPBUFSIZ;}else{pp.outbuf-=PPBUFSIZ;memcpy(pp.outbuf,xp,op-xp);xp=pp.oute-=PPBUFSIZ;op-=2*PPBUFSIZ;}}tp=op;}}while(0)
1N/A PPCHECKOUT(); \
1N/Astatic void poolstatus(void);
1N/A#define DOSTRIP() ((st&STRIP)||pp.level==1&&(st&(COMPILE|JOINING))==COMPILE&&!(pp.option&PRESERVE))
1N/A PPCHECKOUTSP();
1N/A if (((state = ~state) != S_COMMENT || pp.comment || c == '/' && !INCOMMENT(rp)) && (n = ip - bp - 1) > 0)
1N/A PPSYNCLINE();
1N/A debug((-9, "TERM %s > %s%s%s |%-*.*s|%s|", pplexstr(INDEX(rp)), pplexstr(state), (st & NEWLINE) ? "|NEWLINE" : "", (st & SKIPCONTROL) ? "|SKIP" : "", op - tp, op - tp, tp, pptokchr(c)));
1N/A goto fsm_comment;
1N/A#if COMPATIBLE
1N/A if (pp.comment && !(st & (COLLECTING|DIRECTIVE|JOINING)) && !(*pp.control & SKIP) && (pp.in->type & IN_TOP))
1N/A (*pp.comment)(c == '\n' ? "//" : "/*", tp + 2, c == '\n' ? "" : (st & HEADER) ? "*/\n" : "*/", comstart ? comstart : error_info.line);
1N/A goto fsm_newline;
1N/A#if COMPATIBLE
1N/A#if COMPATIBLE
1N/A goto fsm_return;
1N/A goto fsm_terminal;
1N/A goto fsm_return;
1N/A if (prv->type == IN_FILE || cur->type == IN_FILE && (prv->type == IN_RESCAN || prv->type == IN_MULTILINE))
1N/A#if CHECKPOINT
1N/A case IN_MULTILINE:
1N/A#if COMPATIBLE
1N/A if (prv && (!INMACRO(rp) || (st & (COMPATIBILITY|TRANSITION)) == COMPATIBILITY && ppismac(*prv->nextchr)))
1N/A c = T_LSHIFTEQ;
1N/A c = T_RSHIFTEQ;
1N/A#if COMPATIBLE
1N/A#if COMPATIBLE
1N/A#if COMPATIBLE
1N/A PPSYNCLINE();
1N/A if (!(st & HEADER) || (pp.option & (HEADEREXPAND|HEADEREXPANDALL)) && pp.in->type != IN_FILE && pp.in->type != IN_BUFFER && pp.in->type != IN_INIT && pp.in->type != IN_RESCAN)
1N/A#if CATSTRINGS
1N/A if (c == '"' && pp.level == 1 && !(st & (COLLECTING|JOINING|NOTEXT|SKIPCONTROL)) && (pp.mode & CATLITERAL))
1N/A#if COMPATIBLE
1N/A if (n && !(st & (PASSTHROUGH|SKIPCONTROL|NOTEXT)) && c == '\'' && (op - tp) <= 2 && !(pp.mode & (HOSTED|RELAX)))
1N/A#if COMPATIBLE
1N/A#if COMPATIBLE
1N/A#if COMPATIBLE
1N/A#if COMPATIBLE
1N/A PPCHECKOUT();
1N/A if ((sym->flags & SYM_KEYWORD) && (!pp.truncate || (op - tp) <= pp.truncate || (tp[pp.truncate] = '_', tp[pp.truncate + 1] = 0, pp.symbol = sym = (pp.option & NOHASH) ? ppsymref(pp.symtab, tp) : ppsymset(pp.symtab, tp), 0)))
1N/A f |= NOISE_NOSPACEOUT;
1N/A if (f & NOISE_PAREN)
1N/A f |= NOISE_PAREN;
1N/A case T_X_STATEMENT:
1N/A if (f & NOISE_NOSPACEOUT)
1N/A goto fsm_symbol;
1N/A goto fsm_symbol;
1N/A#if COMPATIBLE
1N/A PPCHECKOUTTP();
1N/A PPSYNCLINE();
1N/A PPCHECKOUT();
1N/A goto fsm_return;
1N/A#if COMPATIBLE
1N/A#if COMPATIBLE
1N/A#if CATSTRINGS
1N/A#if CATSTRINGS
1N/A goto fsm_return;
1N/A goto fsm_return;
1N/A#if CATSTRINGS
1N/A if ((st & JOINING) && (!INQUOTE(rp) || quot != '"') || pp.level > 1 && (rp == fsm[START] || INQUOTE(rp)))
1N/A if (!*(s = pp.macp->arg[c]) && (pp.in->symbol->flags & SYM_VARIADIC) && pp.in->symbol->macro->arity == (c + 1))
1N/A#if CATSTRINGS
1N/A error(1, "trigraph conversion %c%c%c -> %c%s", '?', '?', n, c, (st & TRANSITION) ? "" : " inhibited");
1N/A#if COMPATIBLE
1N/A#if COMPATIBLE
1N/A#if COMPATIBLE
1N/A#if COMPATIBLE
1N/A#if COMPATIBLE
1N/A if (!INQUOTE(rp) && (st & (COMPATIBILITY|DEFINITION|TRANSITION)) == (COMPATIBILITY|DEFINITION))
1N/A goto fsm_terminal;
1N/A#if COMPATIBLE
1N/A else if ((st & (COMPATIBILITY|TRANSITION)) == COMPATIBILITY && (n == '"' || n == '\'') && !INQUOTE(rp))
1N/A#if COMPATIBLE
1N/A goto fsm_terminal;
1N/A goto fsm_terminal;
1N/A ppflushout();
1N/A if (open(ofile, O_WRONLY|O_CREAT|O_TRUNC, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) != 1)
1N/A#if CHECKPOINT