Blame


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