Lines Matching refs:proto
60 struct proto /* proto buffer state */ struct
266 register struct proto* proto = (struct proto*)(iob - sizeof(struct proto)); in proto_error() local
268 if (proto->line) in proto_error()
270 if (proto->file) in proto_error()
273 p = strcopy(p, proto->file); in proto_error()
279 p = number(p, proto->line); in proto_error()
281 else if (proto->file) in proto_error()
282 p = strcopy(p, proto->file); in proto_error()
338 linesync(register struct proto* proto, register char* p, register long n) in linesync() argument
341 if (proto->flags & LINESYNC) in linesync()
361 init(struct proto* proto, char* op, int flags) in init() argument
438 if (proto->package) in init()
467 op = strcopy(op - 1, proto->package); in init()
479 #define CACHE() do{CACHEIN();CACHEOUT();call=proto->call;}while(0)
480 #define CACHEIN() (ip=proto->ip)
481 #define CACHEOUT() (op=proto->op)
486 …NCIN();SYNCOUT();proto->flags&=~(EXTERN|INIT|OTHER|VARIADIC|VARIADIC2);proto->flags|=flags&(EXTERN…
487 #define SYNCIN() (proto->ip=ip)
488 #define SYNCOUT() (proto->op=op)
545 lex(register struct proto* proto, register long flags) in lex() argument
589 proto->tp = ip; in lex()
611 if (op > proto->ob && *(op - 1) == '=' && (op == proto->ob + 1 || *(op - 2) != '=')) switch (c) in lex()
634 proto->line++; in lex()
673 if ((flags & (DECLARE|GLOBAL|RECURSIVE)) == GLOBAL && (proto->flags & MORE)) in lex()
679 c = ip - proto->ib; in lex()
681 im = proto->tp; in lex()
682 if (ip > proto->ib) in lex()
685 if (ip - n < proto->ib) in lex()
686 proto->flags |= ERROR; in lex()
687 memcopy(proto->ib - n, ip - n, n); in lex()
688 ip = proto->ib; in lex()
690 proto->tp -= c; in lex()
700 if ((n = read(proto->fd, ip, proto->iz)) > 0) in lex()
702 if ((proto->options & REGULAR) && n < proto->iz) in lex()
704 proto->flags &= ~MORE; in lex()
705 close(proto->fd); in lex()
714 proto->flags &= ~MORE; in lex()
715 close(proto->fd); in lex()
803 lex(proto, (flags & GLOBAL) | RECURSIVE); in lex()
840 if ((flags & EXTERN) && *proto->tp == 's' && !strncmp(proto->tp, "static", 6)) in lex()
846 if (*proto->tp == '_' && !strncmp(proto->tp, "__STDPP__directive", 6)) c = '#'; in lex()
853 proto->line++; in lex()
857 if (op != proto->ob && LASTOUT() != ' ' && LASTOUT() != '\n') in lex()
913 op = linesync(proto, op, proto->line); in lex()
951 if (!(flags & DECLARE)) switch (RESERVED(*proto->tp, *(ip - 1), ip - proto->tp)) in lex()
954 if (proto->tp[1] == 'o') in lex()
961 …if (!(flags & RECURSIVE) && (flags & (DIRECTIVE|TOKENS)) != DIRECTIVE && !strncmp(proto->tp, "else… in lex()
968 if (!strncmp(proto->tp, "extern", 6)) in lex()
972 if (!(flags & RECURSIVE) && !strncmp(proto->tp, "for", 3)) in lex()
982 …if (!strncmp(proto->tp, "inline", 6) && !(flags & (MATCH|SKIP|TOKENS|TYPEDEF)) && proto->brace == … in lex()
986 line = proto->line; in lex()
992 if (!(flags & RECURSIVE) && !strncmp(proto->tp, "return", 6)) in lex()
999 if ((proto->options & EXTERNALIZE) && !strncmp(proto->tp, "static", 6)) in lex()
1001 proto->ox = op - 6; in lex()
1006 if (!(flags & RECURSIVE) && !strncmp(proto->tp, "typedef", 7)) in lex()
1013 if (*ip == '(' && !strncmp(proto->tp, "va_start", 8)) c = T_VA_START; in lex()
1016 if (!strncmp(proto->tp, "void", 4)) in lex()
1022 line = proto->line; in lex()
1023 if (lex(proto, (flags & GLOBAL) | RECURSIVE) == '*') in lex()
1029 proto->line = line; in lex()
1036 if (!(flags & RECURSIVE) && !strncmp(proto->tp, "while", 5)) in lex()
1057 while (op > proto->ob && (*(op - 1) == ' ' || *(op - 1) == '\t')) in lex()
1059 if (op > proto->ob && *(op - 1) != '\n') *op++ = ' '; in lex()
1078 proto->line++; in lex()
1101 if (!(flags & CLASSIC) || proto->brace == 0) in lex()
1158 if (!(flags & CLASSIC) || proto->brace == 0) in lex()
1191 …if (proto->brace == 0 && paren == 0 && last != '=' && (flags & (CLASSIC|DECLARE|DIRECTIVE|MATCH|PL… in lex()
1204 proto->line = 0; in lex()
1206 proto->line = proto->line * 10 + *ip - '0'; in lex()
1207 proto->line--; in lex()
1267 op = linesync(proto, op, proto->line); in lex()
1285 op = linesync(proto, op, proto->line); in lex()
1300 op = linesync(proto, op, proto->line); in lex()
1317 if (proto->brace++ == 0 && paren == 0) in lex()
1332 proto_error((char*)proto + sizeof(struct proto), 2, op, NiL); in lex()
1483 …proto_error((char*)proto + sizeof(struct proto), 1, "function pointer argument prototype omitted",… in lex()
1516 line = proto->line; in lex()
1525 if ((vc = ie - im + 1) > sizeof(proto->variadic)) vc = sizeof(proto->variadic); in lex()
1526 memcopy(proto->variadic, im, vc); in lex()
1532 proto->ip = im; in lex()
1533 proto->op = op; in lex()
1538 switch (lex(proto, (flags & GLOBAL) | RECURSIVE)) in lex()
1572 proto->op = op; in lex()
1579 m = proto->tp; in lex()
1580 e = proto->ip; in lex()
1594 proto->op = strcopy(op, " __OTORP__("); in lex()
1595 proto->ip = im + 1; in lex()
1600 lex(proto, (flags & GLOBAL) | DECLARE); in lex()
1603 proto->ip = ie; in lex()
1604 op = proto->op; in lex()
1607 if (flags & EXTERNALIZE) memcpy(proto->ox, "extern", 6); in lex()
1608 op = linesync(proto, op, proto->line = line); in lex()
1611 proto->brace = 0; in lex()
1624 if (--proto->brace == 0) in lex()
1639 if (last == ')' && proto->brace && (group != 2 || call != 2)) flags |= SKIP; in lex()
1768 if (flags & EXTERNALIZE) memcpy(proto->ox, "extern", 6); in lex()
1804 if (proto->brace == 0) in lex()
1812 if (!(flags & PLUSONLY) || proto->package) in lex()
1815 if (proto->package) in lex()
1817 op = strcopy(op - 1, proto->package); in lex()
1843 line = proto->line; in lex()
1848 switch (lex(proto, (flags & GLOBAL) | RECURSIVE)) in lex()
1857 m = proto->tp; in lex()
1858 e = proto->ip; in lex()
1878 proto->ip = proto->variadic; in lex()
1879 proto->op = op; in lex()
1882 bp = proto->ip + 1; in lex()
1886 switch (lex(proto, (flags & GLOBAL) | RECURSIVE)) in lex()
1909 else op = memcopy(op, e, proto->ip - e - 1); in lex()
1935 else op = memcopy(op, e, proto->ip - e - 1); in lex()
1938 bp = proto->ip + 1; in lex()
1942 proto->op = op; in lex()
1949 m = proto->tp; in lex()
1950 e = proto->ip; in lex()
1960 proto->line = line; in lex()
1978 if (proto->brace == 0 && !(flags & DECLARE)) flags |= SKIP; in lex()
1989 if (*proto->tp >= '0' && *proto->tp <= '9') in lex()
2058 …if ((flags & (EXTERN|MATCH)) == (EXTERN|MATCH) && ((flags & (DIRECTIVE|SKIP)) || proto->brace || c… in lex()
2086 op = proto->op; in lex()
2089 op = init(proto, op, flags); in lex()
2090 op = linesync(proto, op, proto->line); in lex()
2092 proto->flags &= ~(INIT_DEFINE|INIT_INCLUDE); in lex()
2106 register struct proto* proto = (struct proto*)(iob - sizeof(struct proto)); in pppclose() local
2108 if (proto->flags & MORE) close(proto->fd); in pppclose()
2109 free((char*)proto); /* some ANSI cc's botch the free() prototype */ in pppclose()
2127 register struct proto* proto; in pppopen() local
2165 if (!(proto = newof(0, struct proto, 1, 4 * n + 2))) in pppopen()
2167 proto->iz = n; in pppopen()
2168 proto->oz = 3 * n; in pppopen()
2179 if (!(proto = newof(0, struct proto, 1, 5 * n + 2))) in pppopen()
2181 proto->iz = n; in pppopen()
2182 proto->oz = 3 * n; in pppopen()
2183 proto->flags |= MORE; in pppopen()
2185 proto->fd = fd; in pppopen()
2186 proto->package = package; in pppopen()
2187 iob = (char*)proto + sizeof(struct proto); in pppopen()
2188 proto->op = proto->ob = iob; in pppopen()
2189 proto->ip = proto->ib = iob + proto->oz + n; in pppopen()
2190 if (m) proto->options |= REGULAR; in pppopen()
2193 if (!(proto->cc[0] = comment[0])) in pppopen()
2197 proto->cc[1] = comment[1]; in pppopen()
2198 proto->cc[2] = comment[2] ? comment[2] : comment[0]; in pppopen()
2201 proto->cc[1] = proto->cc[2] = comment[0]; in pppopen()
2207 n = read(fd, proto->ip, proto->iz); in pppopen()
2208 if (!(proto->flags & MORE)) in pppopen()
2215 *(proto->ip + n) = 0; in pppopen()
2229 …| (comlen = astlicense(com, sizeof(com), NiL, "type=check", proto->cc[0], proto->cc[1], proto->cc[… in pppopen()
2233 s = proto->ip; in pppopen()
2275 proto->flags |= YACC; in pppopen()
2310 if (flags & PROTO_PLUSPLUS) proto->flags |= PLUSPLUS; in pppopen()
2311 if (flags & PROTO_TEST) proto->test = 1; in pppopen()
2312 if (flags & PROTO_EXTERNALIZE) proto->options |= EXTERNALIZE; in pppopen()
2316 if (flags & PROTO_LINESYNC) proto->flags |= LINESYNC; in pppopen()
2317 …if (!(proto->flags & YACC) && file && (m = strlen(file)) > 2 && file[--m] == 'y' && file[--m] == '… in pppopen()
2318 proto->flags |= YACC; in pppopen()
2325 proto->flags |= PLUSONLY; in pppopen()
2334 proto->flags |= PASS; in pppopen()
2335 if (proto->flags & MORE) in pppopen()
2336 proto->oz += proto->iz; in pppopen()
2337 proto->iz = n; in pppopen()
2340 if (proto->cc[0] == '#' && proto->ip[0] == '#' && proto->ip[1] == '!') in pppopen()
2342 s = proto->ip; in pppopen()
2344 m = s - proto->ip; in pppopen()
2345 proto->op = memcopy(proto->op, proto->ip, m); in pppopen()
2346 proto->ip = s; in pppopen()
2347 proto->iz = n -= m; in pppopen()
2350 if (proto->cc[0]) in pppopen()
2352 …if ((comlen = astlicense(proto->op, proto->oz, notice, options, proto->cc[0], proto->cc[1], proto-… in pppopen()
2353 proto_error((char*)proto + sizeof(struct proto), 1, proto->op, NiL); in pppopen()
2355 proto->op += comlen; in pppopen()
2357 if (!(flags & PROTO_CLASSIC) && !(proto->flags & YACC)) in pppopen()
2359 proto->op = linesync(proto, proto->op, 1); in pppopen()
2360 proto->iz += proto->op - proto->ob; in pppopen()
2362 memcopy(proto->op, proto->ip, n); in pppopen()
2373 proto->line = 1; in pppopen()
2380 …if ((comlen = astlicense(proto->op, proto->oz, notice, options, proto->cc[0], proto->cc[1], proto-… in pppopen()
2381 proto_error((char*)proto + sizeof(struct proto), 1, proto->op, NiL); in pppopen()
2383 proto->op += comlen; in pppopen()
2388 proto->flags |= INIT_INCLUDE; in pppopen()
2398 *proto->op++ = '#'; in pppopen()
2399 proto->op = strcopy(proto->op, MAGICDIR); in pppopen()
2400 *proto->op++ = ' '; in pppopen()
2401 proto->op = strcopy(proto->op, MAGICARG); in pppopen()
2402 *proto->op++ = '\n'; in pppopen()
2406 proto->flags |= INIT_DEFINE; in pppopen()
2411 if (proto->flags & YACC) in pppopen()
2413 proto->op = strcopy(proto->op, "\n%{\n" + !notice); in pppopen()
2414 proto->op = strcopy(proto->op, MAGICGEN); in pppopen()
2415 proto->op = strcopy(proto->op, "%}\n"); in pppopen()
2420 *proto->op++ = '\n'; in pppopen()
2421 proto->op = strcopy(proto->op, MAGICGEN); in pppopen()
2423 proto->op = linesync(proto, proto->op, proto->line); in pppopen()
2424 else if (proto->flags & (INIT_DEFINE|INIT_INCLUDE)) in pppopen()
2425 proto->op = init(proto, proto->op, proto->flags); in pppopen()
2432 proto->file = file; in pppopen()
2435 proto->flags |= CLASSIC; in pppopen()
2436 if (!(flags & PROTO_HEADER)) proto->flags |= EXTERN; in pppopen()
2450 register struct proto* proto = (struct proto*)(iob - sizeof(struct proto)); in pppread() local
2453 if (proto->flags & PASS) in pppread()
2455 if (proto->iz) in pppread()
2457 n = proto->iz; in pppread()
2458 proto->iz = 0; in pppread()
2460 else if (!(proto->flags & MORE)) n = 0; in pppread()
2461 …else if ((n = read(proto->fd, proto->ob, proto->oz)) <= 0 || (proto->options & REGULAR) && n < pro… in pppread()
2463 proto->flags &= ~MORE; in pppread()
2464 close(proto->fd); in pppread()
2469 if (proto->op == proto->ob) in pppread()
2471 if (proto->flags & ERROR) return -1; in pppread()
2473 if (proto->flags & YACC) in pppread()
2475 register char* ip = proto->ip; in pppread()
2476 register char* op = proto->ob; in pppread()
2477 register char* ep = proto->ob + proto->oz - 2; in pppread()
2481 ip = proto->ip = proto->ib; in pppread()
2482 if (!(proto->flags & MORE)) n = 0; in pppread()
2483 … else if ((n = read(proto->fd, ip, proto->iz)) <= 0 || (proto->options & REGULAR) && n < proto->iz) in pppread()
2486 proto->flags &= ~MORE; in pppread()
2487 close(proto->fd); in pppread()
2491 if (proto->flags & YACCSPLIT) in pppread()
2493 proto->flags &= ~YACCSPLIT; in pppread()
2497 if (proto->flags & YACC2) proto->flags &= ~YACC; in pppread()
2498 else proto->flags |= YACC2; in pppread()
2501 if (proto->flags & YACC) in pppread()
2507 if (*ip == '%' && (ip == proto->ip + 1 || *(ip - 2) == '\n')) in pppread()
2510 if (proto->flags & YACC2) proto->flags &= ~YACC; in pppread()
2511 else proto->flags |= YACC2; in pppread()
2517 proto->flags |= YACCSPLIT; in pppread()
2521 else if (n == '\n') proto->line++; in pppread()
2523 proto->op = memcopy(proto->ob, proto->ip, ip - proto->ip); in pppread()
2524 proto->ip = ip; in pppread()
2528 lex(proto, proto->flags); in pppread()
2529 if ((proto->flags & (ERROR|MORE)) == ERROR) in pppread()
2530 proto->op = strcopy(proto->op, "/* NOTE: some constructs may not have been converted */\n"); in pppread()
2532 n = proto->op - proto->ob; in pppread()
2533 proto->op = proto->ob; in pppread()
2549 register struct proto* proto = (struct proto*)(iob - sizeof(struct proto)); in pppdrop() local
2551 if (proto->flags & MORE) in pppdrop()
2553 proto->flags &= ~MORE; in pppdrop()
2554 return proto->fd; in pppdrop()