extern int yywrap(void); extern void setfname(Cell *); extern int constnode(Node *); extern uchar *strnode(Node *); extern Node *notnull(Node *); extern int yyparse(void); extern int yylex(void); extern void startreg(void); extern int input(void); extern void unput(int); extern void unputstr(char *); extern int yylook(void); extern int yyback(int *, int); extern int yyinput(void); extern int yyoutput(int); extern int yyunput(int); extern void *compre(uchar *); extern int hexstr(char **); extern void quoted(uchar **, uchar **, uchar *); extern int match(void *, uchar *, uchar *); extern int pmatch(void *, uchar *, uchar *); extern int nematch(void *, uchar *, uchar *); extern int countposn(uchar *, int); extern void overflow(void); extern int main(int, uchar **); extern int pgetc(void); extern Node *nodealloc(int); extern Node *exptostat(Node *); extern Node *node1(int, Node *); extern Node *node2(int, Node *, Node *); extern Node *node3(int, Node *, Node *, Node *); extern Node *node4(int, Node *, Node *, Node *, Node *); extern Node *stat3(int, Node *, Node *, Node *); extern Node *op2(int, Node *, Node *); extern Node *op1(int, Node *); extern Node *stat1(int, Node *); extern Node *op3(int, Node *, Node *, Node *); extern Node *op4(int, Node *, Node *, Node *, Node *); extern Node *stat2(int, Node *, Node *); extern Node *stat4(int, Node *, Node *, Node *, Node *); extern Node *valtonode(Cell *, int); extern Node *rectonode(void); extern Node *makearr(Node *); extern Node *pa2stat(Node *, Node *, Node *); extern Node *linkum(Node *, Node *); extern void defn(Cell *, Node *, Node *); extern int isarg(uchar *); extern uchar *tokname(int); extern Cell *(*proctab[])(Node **, int); extern void syminit(void); extern void arginit(int, uchar **); extern void envinit(uchar **); extern Array *makesymtab(int); extern void freesymtab(Cell *); extern void freeelem(Cell *, uchar *); extern Cell *setsymtab(uchar *, uchar *, double, unsigned int, Array *); extern int hash(uchar *, int); extern void rehash(Array *); extern Cell *lookup(uchar *, Array *); extern double setfval(Cell *, double); extern void funnyvar(Cell *, char *); extern uchar *setsval(Cell *, uchar *); extern double r_getfval(Cell *); extern uchar *r_getsval(Cell *); extern uchar *tostring(uchar *); extern uchar *qstring(uchar *, int); extern void initgetrec(void); extern int getrec(uchar *); extern int readrec(uchar *buf, int bufsize, FILE *inf); extern uchar *getargv(int); extern void setclvar(uchar *); extern void fldbld(void); extern void cleanfld(int, int); extern void newfld(int); extern int refldbld(uchar *, uchar *); extern void recbld(void); extern Cell *fieldadr(int); extern void yyerror(char *); extern void fpecatch(int); extern void bracecheck(void); extern void bcheck2(int, int, int); extern void error(int, char *); extern void eprint(void); extern void bclass(int); extern double errcheck(double, uchar *); extern int isclvar(uchar *); extern int isnumber(uchar *); extern void run(Node *); extern Cell *r_execute(Node *); extern Cell *program(Node **, int); extern Cell *call(Node **, int); extern Cell *copycell(Cell *); extern Cell *arg(Node **, int); extern Cell *jump(Node **, int); extern Cell *getline(Node **, int); extern Cell *getnf(Node **, int); extern Cell *array(Node **, int); extern Cell *delete(Node **, int); extern Cell *intest(Node **, int); extern Cell *matchop(Node **, int); extern Cell *boolop(Node **, int); extern Cell *relop(Node **, int); extern void tfree(Cell *); extern Cell *gettemp(void); extern Cell *field(Node **, int); extern Cell *indirect(Node **, int); extern Cell *substr(Node **, int); extern Cell *sindex(Node **, int); extern int format(uchar *, int, uchar *, Node *); extern Cell *asprintf(Node **, int); extern Cell *aprintf(Node **, int); extern Cell *arith(Node **, int); extern double ipow(double, int); extern Cell *incrdecr(Node **, int); extern Cell *assign(Node **, int); extern Cell *cat(Node **, int); extern Cell *pastat(Node **, int); extern Cell *dopa2(Node **, int); extern Cell *split(Node **, int); extern Cell *condexpr(Node **, int); extern Cell *ifstat(Node **, int); extern Cell *whilestat(Node **, int); extern Cell *dostat(Node **, int); extern Cell *forstat(Node **, int); extern Cell *instat(Node **, int); extern Cell *bltin(Node **, int); extern Cell *printstat(Node **, int); extern Cell *nullproc(Node **, int); extern FILE *redirect(int, Node *); extern FILE *openfile(int, uchar *); extern uchar *filename(FILE *); extern Cell *closefile(Node **, int); extern void closeall(void); extern Cell *sub(Node **, int); extern Cell *gsub(Node **, int);