int fgetc(FILE *f) { #ifdef TRACEUART return (traceputchar(mygetchar())); #else// TRACEUART return (mygetchar()); #endif// TRACEUART }
static int get_i(){ int c; // printf("entering get_i()"); while ((c = mygetchar())< '0'){} int n = 0; // printf("n = %d\n", n); while (c >= '0'){ n = n*10 + (c - '0'); c = mygetchar(); // printf("inside n = %d\n", n); } return n; }
static int getop2(char *s) { int c; /* skip the white space */ while (isspace(c = *s = mygetchar()) && c != '\n') ; s[1] = '\0'; if (!isdigit(c) && !issign(c) && c != '.') { return c; } /* scan the char after the sign */ if (issign(c)) { if (isdigit(c = mygetchar())) { *++s = c; } else { myungetc(c); return *s; } } /* scan for the integral part */ while (isdigit(c = mygetchar())) { *++s = c; } /* not a digit, is it a decimal point? */ if (c == '.') { *++s = c; /* scan for the floating part */ while (isdigit(c = mygetchar())) { *++s = c; } } if (c != EOF) { myungetc(c); } *++s = '\0'; return NUMBER; }
dem _read (memory pm) { int c; dem sd0, sd1, d; enum node node; char buf[30]; int i; dem used1; debut: /* c = getchar (); */ /* c = fgetc (stdin); */ c = mygetchar (); /* pm = &_memory; _memory.max_dems = MAX_DEMS; */ switch (c) { case '.': exit (0); case '-': node = node_ap; read01: sd0 = _read (pm); sd1 = _read (pm); d = _mkdem (pm, node, 0, NULL, sd0, sd1); break; case '/': node = node_transym; goto read01; case '%': node = node_subst; goto read01; case '#': node = node_axiom; goto read01; case '\\': sd0 = _read (pm); d = _mkdem (pm, node_lambda, 0, NULL, sd0, NULL); break; case '^' : sd0 = _read (pm); sd1 = _read (pm); d = vlambda (sd0, sd1); break; case ' ' : case '\t' : case '\n' : case '\r' : case 0 : goto debut; case ':' : sd0 = _read (pm); sd1 = _read (pm); sd0->_value = sd1; sd1->_name = sd0->_name; d = sd1; break; case '<' : sd0 = _read (pm); d = lr (0, sd0); break; case '>' : sd0 = _read (pm); d = lr (1, sd0); break; case '$' : sd0 = _read (pm); d = red (sd0); break; case '@' : sd0 = _read (pm); d = reduc (sd0, 1); break; case '`': used1 = used; used = _read (pm); d = _read (pm); used = used1; break; default : if ((c >= '0') && (c <= '9')) d = _mkdem (pm, node_var, c-'0', NULL, NULL, NULL); else { buf[0] = c; for (i=1; ; i++) { c = mygetchar (); if (c == ' ' || c == '\t' || c == '\n' || c == '\r') { buf[i] = 0; break; } buf[i] = c; } /*buf[1] = 0;*/ d = _mkdem (pm, node_symbol, 0, buf, NULL, NULL); if (d->_value != NULL) d = d->_value; } } return d; }