96 |
7u83 |
1 |
/****************************************************************
|
|
|
2 |
Copyright (C) Lucent Technologies 1997
|
|
|
3 |
All Rights Reserved
|
|
|
4 |
|
|
|
5 |
Permission to use, copy, modify, and distribute this software and
|
|
|
6 |
its documentation for any purpose and without fee is hereby
|
|
|
7 |
granted, provided that the above copyright notice appear in all
|
|
|
8 |
copies and that both that the copyright notice and this
|
|
|
9 |
permission notice and warranty disclaimer appear in supporting
|
|
|
10 |
documentation, and that the name Lucent Technologies or any of
|
|
|
11 |
its entities not be used in advertising or publicity pertaining
|
|
|
12 |
to distribution of the software without specific, written prior
|
|
|
13 |
permission.
|
|
|
14 |
|
|
|
15 |
LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
|
|
16 |
INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
|
|
|
17 |
IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY
|
|
|
18 |
SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
|
19 |
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
|
|
|
20 |
IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
|
|
21 |
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
|
|
|
22 |
THIS SOFTWARE.
|
|
|
23 |
****************************************************************/
|
|
|
24 |
|
|
|
25 |
extern int yywrap(void);
|
|
|
26 |
extern void setfname(Cell *);
|
|
|
27 |
extern int constnode(Node *);
|
|
|
28 |
extern char *strnode(Node *);
|
|
|
29 |
extern Node *notnull(Node *);
|
|
|
30 |
extern int yyparse(void);
|
|
|
31 |
|
|
|
32 |
extern int yylex(void);
|
|
|
33 |
extern void startreg(void);
|
|
|
34 |
extern int input(void);
|
|
|
35 |
extern void unput(int);
|
|
|
36 |
extern void unputstr(const char *);
|
|
|
37 |
extern int yylook(void);
|
|
|
38 |
extern int yyback(int *, int);
|
|
|
39 |
extern int yyinput(void);
|
|
|
40 |
|
|
|
41 |
extern fa *makedfa(const char *, int);
|
|
|
42 |
extern fa *mkdfa(const char *, int);
|
|
|
43 |
extern int makeinit(fa *, int);
|
|
|
44 |
extern void penter(Node *);
|
|
|
45 |
extern void freetr(Node *);
|
|
|
46 |
extern int hexstr(uschar **);
|
|
|
47 |
extern int quoted(uschar **);
|
|
|
48 |
extern char *cclenter(const char *);
|
|
|
49 |
extern void overflo(const char *);
|
|
|
50 |
extern void cfoll(fa *, Node *);
|
|
|
51 |
extern int first(Node *);
|
|
|
52 |
extern void follow(Node *);
|
|
|
53 |
extern int member(int, const char *);
|
|
|
54 |
extern int match(fa *, const char *);
|
|
|
55 |
extern int pmatch(fa *, const char *);
|
|
|
56 |
extern int nematch(fa *, const char *);
|
|
|
57 |
extern Node *reparse(const char *);
|
|
|
58 |
extern Node *regexp(void);
|
|
|
59 |
extern Node *primary(void);
|
|
|
60 |
extern Node *concat(Node *);
|
|
|
61 |
extern Node *alt(Node *);
|
|
|
62 |
extern Node *unary(Node *);
|
|
|
63 |
extern int relex(void);
|
|
|
64 |
extern int cgoto(fa *, int, int);
|
|
|
65 |
extern void freefa(fa *);
|
|
|
66 |
|
|
|
67 |
extern int pgetc(void);
|
|
|
68 |
extern char *cursource(void);
|
|
|
69 |
|
|
|
70 |
extern Node *nodealloc(int);
|
|
|
71 |
extern Node *exptostat(Node *);
|
|
|
72 |
extern Node *node1(int, Node *);
|
|
|
73 |
extern Node *node2(int, Node *, Node *);
|
|
|
74 |
extern Node *node3(int, Node *, Node *, Node *);
|
|
|
75 |
extern Node *node4(int, Node *, Node *, Node *, Node *);
|
|
|
76 |
extern Node *stat3(int, Node *, Node *, Node *);
|
|
|
77 |
extern Node *op2(int, Node *, Node *);
|
|
|
78 |
extern Node *op1(int, Node *);
|
|
|
79 |
extern Node *stat1(int, Node *);
|
|
|
80 |
extern Node *op3(int, Node *, Node *, Node *);
|
|
|
81 |
extern Node *op4(int, Node *, Node *, Node *, Node *);
|
|
|
82 |
extern Node *stat2(int, Node *, Node *);
|
|
|
83 |
extern Node *stat4(int, Node *, Node *, Node *, Node *);
|
|
|
84 |
extern Node *celltonode(Cell *, int);
|
|
|
85 |
extern Node *rectonode(void);
|
|
|
86 |
extern Node *makearr(Node *);
|
|
|
87 |
extern Node *pa2stat(Node *, Node *, Node *);
|
|
|
88 |
extern Node *linkum(Node *, Node *);
|
|
|
89 |
extern void defn(Cell *, Node *, Node *);
|
|
|
90 |
extern int isarg(const char *);
|
|
|
91 |
extern char *tokname(int);
|
|
|
92 |
extern Cell *(*proctab[])(Node **, int);
|
|
|
93 |
extern int ptoi(void *);
|
|
|
94 |
extern Node *itonp(int);
|
|
|
95 |
|
|
|
96 |
extern void syminit(void);
|
|
|
97 |
extern void arginit(int, char **);
|
|
|
98 |
extern void envinit(char **);
|
|
|
99 |
extern Array *makesymtab(int);
|
|
|
100 |
extern void freesymtab(Cell *);
|
|
|
101 |
extern void freeelem(Cell *, const char *);
|
|
|
102 |
extern Cell *setsymtab(const char *, const char *, double, unsigned int, Array *);
|
|
|
103 |
extern int hash(const char *, int);
|
|
|
104 |
extern void rehash(Array *);
|
|
|
105 |
extern Cell *lookup(const char *, Array *);
|
|
|
106 |
extern double setfval(Cell *, double);
|
|
|
107 |
extern void funnyvar(Cell *, const char *);
|
|
|
108 |
extern char *setsval(Cell *, const char *);
|
|
|
109 |
extern double getfval(Cell *);
|
|
|
110 |
extern char *getsval(Cell *);
|
|
|
111 |
extern char *getpssval(Cell *); /* for print */
|
|
|
112 |
extern char *tostring(const char *);
|
|
|
113 |
extern char *qstring(const char *, int);
|
|
|
114 |
|
|
|
115 |
extern void recinit(unsigned int);
|
|
|
116 |
extern void initgetrec(void);
|
|
|
117 |
extern void makefields(int, int);
|
|
|
118 |
extern void growfldtab(int n);
|
|
|
119 |
extern int getrec(char **, int *, int);
|
|
|
120 |
extern void nextfile(void);
|
|
|
121 |
extern int readrec(char **buf, int *bufsize, FILE *inf);
|
|
|
122 |
extern char *getargv(int);
|
|
|
123 |
extern void setclvar(char *);
|
|
|
124 |
extern void fldbld(void);
|
|
|
125 |
extern void cleanfld(int, int);
|
|
|
126 |
extern void newfld(int);
|
|
|
127 |
extern void setlastfld(int);
|
|
|
128 |
extern int refldbld(const char *, const char *);
|
|
|
129 |
extern void recbld(void);
|
|
|
130 |
extern Cell *fieldadr(int);
|
|
|
131 |
extern void yyerror(const char *);
|
|
|
132 |
extern void fpecatch(int);
|
|
|
133 |
extern void bracecheck(void);
|
|
|
134 |
extern void bcheck2(int, int, int);
|
|
|
135 |
extern void SYNTAX(const char *, ...);
|
|
|
136 |
extern void FATAL(const char *, ...);
|
|
|
137 |
extern void WARNING(const char *, ...);
|
|
|
138 |
extern void error(void);
|
|
|
139 |
extern void eprint(void);
|
|
|
140 |
extern void bclass(int);
|
|
|
141 |
extern double errcheck(double, const char *);
|
|
|
142 |
extern int isclvar(const char *);
|
|
|
143 |
extern int is_number(const char *);
|
|
|
144 |
|
|
|
145 |
extern int adjbuf(char **pb, int *sz, int min, int q, char **pbp, const char *what);
|
|
|
146 |
extern void run(Node *);
|
|
|
147 |
extern Cell *execute(Node *);
|
|
|
148 |
extern Cell *program(Node **, int);
|
|
|
149 |
extern Cell *call(Node **, int);
|
|
|
150 |
extern Cell *copycell(Cell *);
|
|
|
151 |
extern Cell *arg(Node **, int);
|
|
|
152 |
extern Cell *jump(Node **, int);
|
|
|
153 |
extern Cell *awkgetline(Node **, int);
|
|
|
154 |
extern Cell *getnf(Node **, int);
|
|
|
155 |
extern Cell *array(Node **, int);
|
|
|
156 |
extern Cell *awkdelete(Node **, int);
|
|
|
157 |
extern Cell *intest(Node **, int);
|
|
|
158 |
extern Cell *matchop(Node **, int);
|
|
|
159 |
extern Cell *boolop(Node **, int);
|
|
|
160 |
extern Cell *relop(Node **, int);
|
|
|
161 |
extern void tfree(Cell *);
|
|
|
162 |
extern Cell *gettemp(void);
|
|
|
163 |
extern Cell *field(Node **, int);
|
|
|
164 |
extern Cell *indirect(Node **, int);
|
|
|
165 |
extern Cell *substr(Node **, int);
|
|
|
166 |
extern Cell *sindex(Node **, int);
|
|
|
167 |
extern int format(char **, int *, const char *, Node *);
|
|
|
168 |
extern Cell *awksprintf(Node **, int);
|
|
|
169 |
extern Cell *awkprintf(Node **, int);
|
|
|
170 |
extern Cell *arith(Node **, int);
|
|
|
171 |
extern double ipow(double, int);
|
|
|
172 |
extern Cell *incrdecr(Node **, int);
|
|
|
173 |
extern Cell *assign(Node **, int);
|
|
|
174 |
extern Cell *cat(Node **, int);
|
|
|
175 |
extern Cell *pastat(Node **, int);
|
|
|
176 |
extern Cell *dopa2(Node **, int);
|
|
|
177 |
extern Cell *split(Node **, int);
|
|
|
178 |
extern Cell *condexpr(Node **, int);
|
|
|
179 |
extern Cell *ifstat(Node **, int);
|
|
|
180 |
extern Cell *whilestat(Node **, int);
|
|
|
181 |
extern Cell *dostat(Node **, int);
|
|
|
182 |
extern Cell *forstat(Node **, int);
|
|
|
183 |
extern Cell *instat(Node **, int);
|
|
|
184 |
extern Cell *bltin(Node **, int);
|
|
|
185 |
extern Cell *printstat(Node **, int);
|
|
|
186 |
extern Cell *nullproc(Node **, int);
|
|
|
187 |
extern FILE *redirect(int, Node *);
|
|
|
188 |
extern FILE *openfile(int, const char *);
|
|
|
189 |
extern const char *filename(FILE *);
|
|
|
190 |
extern Cell *closefile(Node **, int);
|
|
|
191 |
extern void closeall(void);
|
|
|
192 |
extern Cell *sub(Node **, int);
|
|
|
193 |
extern Cell *gsub(Node **, int);
|
|
|
194 |
|
|
|
195 |
extern FILE *popen(const char *, const char *);
|
|
|
196 |
extern int pclose(FILE *);
|
|
|
197 |
|
|
|
198 |
extern const char *flags2str(int flags);
|