13e12c5d1SDavid du Colombier extern int yywrap(void); 23e12c5d1SDavid du Colombier extern void setfname(Cell *); 33e12c5d1SDavid du Colombier extern int constnode(Node *); 43e12c5d1SDavid du Colombier extern uchar *strnode(Node *); 53e12c5d1SDavid du Colombier extern Node *notnull(Node *); 63e12c5d1SDavid du Colombier extern int yyparse(void); 73e12c5d1SDavid du Colombier 83e12c5d1SDavid du Colombier extern int yylex(void); 93e12c5d1SDavid du Colombier extern void startreg(void); 103e12c5d1SDavid du Colombier extern int input(void); 113e12c5d1SDavid du Colombier extern void unput(int); 123e12c5d1SDavid du Colombier extern void unputstr(char *); 133e12c5d1SDavid du Colombier extern int yylook(void); 143e12c5d1SDavid du Colombier extern int yyback(int *, int); 153e12c5d1SDavid du Colombier extern int yyinput(void); 163e12c5d1SDavid du Colombier 173e12c5d1SDavid du Colombier extern void *compre(uchar *); 183e12c5d1SDavid du Colombier extern int hexstr(char **); 193e12c5d1SDavid du Colombier extern void quoted(uchar **, uchar **, uchar *); 203e12c5d1SDavid du Colombier extern int match(void *, uchar *, uchar *); 213e12c5d1SDavid du Colombier extern int pmatch(void *, uchar *, uchar *); 223e12c5d1SDavid du Colombier extern int nematch(void *, uchar *, uchar *); 233e12c5d1SDavid du Colombier extern int countposn(uchar *, int); 243e12c5d1SDavid du Colombier extern void overflow(void); 253e12c5d1SDavid du Colombier 263e12c5d1SDavid du Colombier extern int main(int, uchar **); 273e12c5d1SDavid du Colombier extern int pgetc(void); 283e12c5d1SDavid du Colombier 293e12c5d1SDavid du Colombier extern Node *nodealloc(int); 303e12c5d1SDavid du Colombier extern Node *exptostat(Node *); 313e12c5d1SDavid du Colombier extern Node *node1(int, Node *); 323e12c5d1SDavid du Colombier extern Node *node2(int, Node *, Node *); 333e12c5d1SDavid du Colombier extern Node *node3(int, Node *, Node *, Node *); 343e12c5d1SDavid du Colombier extern Node *node4(int, Node *, Node *, Node *, Node *); 353e12c5d1SDavid du Colombier extern Node *stat3(int, Node *, Node *, Node *); 363e12c5d1SDavid du Colombier extern Node *op2(int, Node *, Node *); 373e12c5d1SDavid du Colombier extern Node *op1(int, Node *); 383e12c5d1SDavid du Colombier extern Node *stat1(int, Node *); 393e12c5d1SDavid du Colombier extern Node *op3(int, Node *, Node *, Node *); 403e12c5d1SDavid du Colombier extern Node *op4(int, Node *, Node *, Node *, Node *); 413e12c5d1SDavid du Colombier extern Node *stat2(int, Node *, Node *); 423e12c5d1SDavid du Colombier extern Node *stat4(int, Node *, Node *, Node *, Node *); 433e12c5d1SDavid du Colombier extern Node *valtonode(Cell *, int); 443e12c5d1SDavid du Colombier extern Node *rectonode(void); 453e12c5d1SDavid du Colombier extern Node *makearr(Node *); 463e12c5d1SDavid du Colombier extern Node *pa2stat(Node *, Node *, Node *); 473e12c5d1SDavid du Colombier extern Node *linkum(Node *, Node *); 483e12c5d1SDavid du Colombier extern void defn(Cell *, Node *, Node *); 493e12c5d1SDavid du Colombier extern int isarg(uchar *); 503e12c5d1SDavid du Colombier extern uchar *tokname(int); 513e12c5d1SDavid du Colombier extern Cell *(*proctab[])(Node **, int); 523e12c5d1SDavid du Colombier 533e12c5d1SDavid du Colombier extern void syminit(void); 543e12c5d1SDavid du Colombier extern void arginit(int, uchar **); 553e12c5d1SDavid du Colombier extern void envinit(uchar **); 563e12c5d1SDavid du Colombier extern Array *makesymtab(int); 573e12c5d1SDavid du Colombier extern void freesymtab(Cell *); 583e12c5d1SDavid du Colombier extern void freeelem(Cell *, uchar *); 593e12c5d1SDavid du Colombier extern Cell *setsymtab(uchar *, uchar *, double, unsigned int, Array *); 603e12c5d1SDavid du Colombier extern int hash(uchar *, int); 613e12c5d1SDavid du Colombier extern void rehash(Array *); 623e12c5d1SDavid du Colombier extern Cell *lookup(uchar *, Array *); 633e12c5d1SDavid du Colombier extern double setfval(Cell *, double); 643e12c5d1SDavid du Colombier extern void funnyvar(Cell *, char *); 653e12c5d1SDavid du Colombier extern uchar *setsval(Cell *, uchar *); 663e12c5d1SDavid du Colombier extern double r_getfval(Cell *); 673e12c5d1SDavid du Colombier extern uchar *r_getsval(Cell *); 683e12c5d1SDavid du Colombier extern uchar *tostring(uchar *); 693e12c5d1SDavid du Colombier extern uchar *qstring(uchar *, int); 703e12c5d1SDavid du Colombier 71*219b2ee8SDavid du Colombier extern void recinit(unsigned int); 723e12c5d1SDavid du Colombier extern void initgetrec(void); 733e12c5d1SDavid du Colombier extern int getrec(uchar *); 743e12c5d1SDavid du Colombier extern int readrec(uchar *buf, int bufsize, FILE *inf); 753e12c5d1SDavid du Colombier extern uchar *getargv(int); 763e12c5d1SDavid du Colombier extern void setclvar(uchar *); 773e12c5d1SDavid du Colombier extern void fldbld(void); 783e12c5d1SDavid du Colombier extern void cleanfld(int, int); 793e12c5d1SDavid du Colombier extern void newfld(int); 803e12c5d1SDavid du Colombier extern int refldbld(uchar *, uchar *); 813e12c5d1SDavid du Colombier extern void recbld(void); 823e12c5d1SDavid du Colombier extern Cell *fieldadr(int); 833e12c5d1SDavid du Colombier extern void yyerror(char *); 843e12c5d1SDavid du Colombier extern void fpecatch(int); 853e12c5d1SDavid du Colombier extern void bracecheck(void); 863e12c5d1SDavid du Colombier extern void bcheck2(int, int, int); 873e12c5d1SDavid du Colombier extern void error(int, char *); 883e12c5d1SDavid du Colombier extern void eprint(void); 893e12c5d1SDavid du Colombier extern void bclass(int); 903e12c5d1SDavid du Colombier extern double errcheck(double, uchar *); 913e12c5d1SDavid du Colombier extern int isclvar(uchar *); 923e12c5d1SDavid du Colombier extern int isnumber(uchar *); 933e12c5d1SDavid du Colombier 943e12c5d1SDavid du Colombier extern void run(Node *); 953e12c5d1SDavid du Colombier extern Cell *r_execute(Node *); 963e12c5d1SDavid du Colombier extern Cell *program(Node **, int); 973e12c5d1SDavid du Colombier extern Cell *call(Node **, int); 983e12c5d1SDavid du Colombier extern Cell *copycell(Cell *); 993e12c5d1SDavid du Colombier extern Cell *arg(Node **, int); 1003e12c5d1SDavid du Colombier extern Cell *jump(Node **, int); 1013e12c5d1SDavid du Colombier extern Cell *getline(Node **, int); 1023e12c5d1SDavid du Colombier extern Cell *getnf(Node **, int); 1033e12c5d1SDavid du Colombier extern Cell *array(Node **, int); 104*219b2ee8SDavid du Colombier extern Cell *adelete(Node **, int); 1053e12c5d1SDavid du Colombier extern Cell *intest(Node **, int); 1063e12c5d1SDavid du Colombier extern Cell *matchop(Node **, int); 1073e12c5d1SDavid du Colombier extern Cell *boolop(Node **, int); 1083e12c5d1SDavid du Colombier extern Cell *relop(Node **, int); 1093e12c5d1SDavid du Colombier extern void tfree(Cell *); 1103e12c5d1SDavid du Colombier extern Cell *gettemp(void); 1113e12c5d1SDavid du Colombier extern Cell *field(Node **, int); 1123e12c5d1SDavid du Colombier extern Cell *indirect(Node **, int); 1133e12c5d1SDavid du Colombier extern Cell *substr(Node **, int); 1143e12c5d1SDavid du Colombier extern Cell *sindex(Node **, int); 1153e12c5d1SDavid du Colombier extern int format(uchar *, int, uchar *, Node *); 1163e12c5d1SDavid du Colombier extern Cell *asprintf(Node **, int); 1173e12c5d1SDavid du Colombier extern Cell *aprintf(Node **, int); 1183e12c5d1SDavid du Colombier extern Cell *arith(Node **, int); 1193e12c5d1SDavid du Colombier extern double ipow(double, int); 1203e12c5d1SDavid du Colombier extern Cell *incrdecr(Node **, int); 1213e12c5d1SDavid du Colombier extern Cell *assign(Node **, int); 1223e12c5d1SDavid du Colombier extern Cell *cat(Node **, int); 1233e12c5d1SDavid du Colombier extern Cell *pastat(Node **, int); 1243e12c5d1SDavid du Colombier extern Cell *dopa2(Node **, int); 1253e12c5d1SDavid du Colombier extern Cell *split(Node **, int); 1263e12c5d1SDavid du Colombier extern Cell *condexpr(Node **, int); 1273e12c5d1SDavid du Colombier extern Cell *ifstat(Node **, int); 1283e12c5d1SDavid du Colombier extern Cell *whilestat(Node **, int); 1293e12c5d1SDavid du Colombier extern Cell *dostat(Node **, int); 1303e12c5d1SDavid du Colombier extern Cell *forstat(Node **, int); 1313e12c5d1SDavid du Colombier extern Cell *instat(Node **, int); 1323e12c5d1SDavid du Colombier extern Cell *bltin(Node **, int); 1333e12c5d1SDavid du Colombier extern Cell *printstat(Node **, int); 1343e12c5d1SDavid du Colombier extern Cell *nullproc(Node **, int); 1353e12c5d1SDavid du Colombier extern FILE *redirect(int, Node *); 1363e12c5d1SDavid du Colombier extern FILE *openfile(int, uchar *); 1373e12c5d1SDavid du Colombier extern uchar *filename(FILE *); 1383e12c5d1SDavid du Colombier extern Cell *closefile(Node **, int); 1393e12c5d1SDavid du Colombier extern void closeall(void); 1403e12c5d1SDavid du Colombier extern Cell *sub(Node **, int); 1413e12c5d1SDavid du Colombier extern Cell *gsub(Node **, int); 1423e12c5d1SDavid du Colombier 143