1 extern int yywrap(void); 2 extern void setfname(Cell *); 3 extern int constnode(Node *); 4 extern uchar *strnode(Node *); 5 extern Node *notnull(Node *); 6 extern int yyparse(void); 7 8 extern int yylex(void); 9 extern void startreg(void); 10 extern int input(void); 11 extern void unput(int); 12 extern void unputstr(char *); 13 extern int yylook(void); 14 extern int yyback(int *, int); 15 extern int yyinput(void); 16 17 extern void *compre(uchar *); 18 extern int hexstr(char **); 19 extern void quoted(uchar **, uchar **, uchar *); 20 extern int match(void *, uchar *, uchar *); 21 extern int pmatch(void *, uchar *, uchar *); 22 extern int nematch(void *, uchar *, uchar *); 23 extern int countposn(uchar *, int); 24 extern void overflow(void); 25 26 extern int main(int, uchar **); 27 extern int pgetc(void); 28 29 extern Node *nodealloc(int); 30 extern Node *exptostat(Node *); 31 extern Node *node1(int, Node *); 32 extern Node *node2(int, Node *, Node *); 33 extern Node *node3(int, Node *, Node *, Node *); 34 extern Node *node4(int, Node *, Node *, Node *, Node *); 35 extern Node *stat3(int, Node *, Node *, Node *); 36 extern Node *op2(int, Node *, Node *); 37 extern Node *op1(int, Node *); 38 extern Node *stat1(int, Node *); 39 extern Node *op3(int, Node *, Node *, Node *); 40 extern Node *op4(int, Node *, Node *, Node *, Node *); 41 extern Node *stat2(int, Node *, Node *); 42 extern Node *stat4(int, Node *, Node *, Node *, Node *); 43 extern Node *valtonode(Cell *, int); 44 extern Node *rectonode(void); 45 extern Node *makearr(Node *); 46 extern Node *pa2stat(Node *, Node *, Node *); 47 extern Node *linkum(Node *, Node *); 48 extern void defn(Cell *, Node *, Node *); 49 extern int isarg(uchar *); 50 extern uchar *tokname(int); 51 extern Cell *(*proctab[])(Node **, int); 52 53 extern void syminit(void); 54 extern void arginit(int, uchar **); 55 extern void envinit(uchar **); 56 extern Array *makesymtab(int); 57 extern void freesymtab(Cell *); 58 extern void freeelem(Cell *, uchar *); 59 extern Cell *setsymtab(uchar *, uchar *, double, unsigned int, Array *); 60 extern int hash(uchar *, int); 61 extern void rehash(Array *); 62 extern Cell *lookup(uchar *, Array *); 63 extern double setfval(Cell *, double); 64 extern void funnyvar(Cell *, char *); 65 extern uchar *setsval(Cell *, uchar *); 66 extern double r_getfval(Cell *); 67 extern uchar *r_getsval(Cell *); 68 extern uchar *tostring(uchar *); 69 extern uchar *qstring(uchar *, int); 70 71 extern void recinit(unsigned int); 72 extern void initgetrec(void); 73 extern int getrec(uchar *); 74 extern int readrec(uchar *buf, int bufsize, FILE *inf); 75 extern uchar *getargv(int); 76 extern void setclvar(uchar *); 77 extern void fldbld(void); 78 extern void cleanfld(int, int); 79 extern void newfld(int); 80 extern int refldbld(uchar *, uchar *); 81 extern void recbld(void); 82 extern Cell *fieldadr(int); 83 extern void yyerror(char *); 84 extern void fpecatch(int); 85 extern void bracecheck(void); 86 extern void bcheck2(int, int, int); 87 extern void error(int, char *); 88 extern void eprint(void); 89 extern void bclass(int); 90 extern double errcheck(double, uchar *); 91 extern int isclvar(uchar *); 92 extern int isnumber(uchar *); 93 94 extern void run(Node *); 95 extern Cell *r_execute(Node *); 96 extern Cell *program(Node **, int); 97 extern Cell *call(Node **, int); 98 extern Cell *copycell(Cell *); 99 extern Cell *arg(Node **, int); 100 extern Cell *jump(Node **, int); 101 extern Cell *getline(Node **, int); 102 extern Cell *getnf(Node **, int); 103 extern Cell *array(Node **, int); 104 extern Cell *adelete(Node **, int); 105 extern Cell *intest(Node **, int); 106 extern Cell *matchop(Node **, int); 107 extern Cell *boolop(Node **, int); 108 extern Cell *relop(Node **, int); 109 extern void tfree(Cell *); 110 extern Cell *gettemp(void); 111 extern Cell *field(Node **, int); 112 extern Cell *indirect(Node **, int); 113 extern Cell *substr(Node **, int); 114 extern Cell *sindex(Node **, int); 115 extern int format(uchar *, int, uchar *, Node *); 116 extern Cell *asprintf(Node **, int); 117 extern Cell *aprintf(Node **, int); 118 extern Cell *arith(Node **, int); 119 extern double ipow(double, int); 120 extern Cell *incrdecr(Node **, int); 121 extern Cell *assign(Node **, int); 122 extern Cell *cat(Node **, int); 123 extern Cell *pastat(Node **, int); 124 extern Cell *dopa2(Node **, int); 125 extern Cell *split(Node **, int); 126 extern Cell *condexpr(Node **, int); 127 extern Cell *ifstat(Node **, int); 128 extern Cell *whilestat(Node **, int); 129 extern Cell *dostat(Node **, int); 130 extern Cell *forstat(Node **, int); 131 extern Cell *instat(Node **, int); 132 extern Cell *bltin(Node **, int); 133 extern Cell *printstat(Node **, int); 134 extern Cell *nullproc(Node **, int); 135 extern FILE *redirect(int, Node *); 136 extern FILE *openfile(int, uchar *); 137 extern uchar *filename(FILE *); 138 extern Cell *closefile(Node **, int); 139 extern void closeall(void); 140 extern Cell *sub(Node **, int); 141 extern Cell *gsub(Node **, int); 142 143