Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 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(char *);
37
extern	int	yylook(void);
38
extern	int	yyback(int *, int);
39
extern	int	yyinput(void);
40
 
41
extern	void	*compre(char *);
42
extern	int	hexstr(char **);
43
extern	void	quoted(char **, char **, char *);
44
extern	int	match(void *, char *, char *);
45
extern	int	pmatch(void *, char *, char *);
46
extern	int	nematch(void *, char *, char *);
47
extern	int	countposn(char *, int);
48
extern	void	overflow(void);
49
 
50
extern	int	pgetc(void);
51
extern	char	*cursource(void);
52
 
53
extern	Node	*nodealloc(int);
54
extern	Node	*exptostat(Node *);
55
extern	Node	*node1(int, Node *);
56
extern	Node	*node2(int, Node *, Node *);
57
extern	Node	*node3(int, Node *, Node *, Node *);
58
extern	Node	*node4(int, Node *, Node *, Node *, Node *);
59
extern	Node	*stat3(int, Node *, Node *, Node *);
60
extern	Node	*op2(int, Node *, Node *);
61
extern	Node	*op1(int, Node *);
62
extern	Node	*stat1(int, Node *);
63
extern	Node	*op3(int, Node *, Node *, Node *);
64
extern	Node	*op4(int, Node *, Node *, Node *, Node *);
65
extern	Node	*stat2(int, Node *, Node *);
66
extern	Node	*stat4(int, Node *, Node *, Node *, Node *);
67
extern	Node	*celltonode(Cell *, int);
68
extern	Node	*rectonode(void);
69
extern	Node	*makearr(Node *);
70
extern	Node	*pa2stat(Node *, Node *, Node *);
71
extern	Node	*linkum(Node *, Node *);
72
extern	void	defn(Cell *, Node *, Node *);
73
extern	int	isarg(char *);
74
extern	char	*tokname(int);
75
extern	Cell	*(*proctab[])(Node **, int);
76
extern	int	ptoi(void *);
77
extern	Node	*itonp(int);
78
 
79
extern	void	syminit(void);
80
extern	void	arginit(int, char **);
81
extern	void	envinit(char **);
82
extern	Array	*makesymtab(int);
83
extern	void	freesymtab(Cell *);
84
extern	void	freeelem(Cell *, char *);
85
extern	Cell	*setsymtab(char *, char *, double, unsigned int, Array *);
86
extern	int	hash(char *, int);
87
extern	void	rehash(Array *);
88
extern	Cell	*lookup(char *, Array *);
89
extern	double	setfval(Cell *, double);
90
extern	void	funnyvar(Cell *, char *);
91
extern	char	*setsval(Cell *, char *);
92
extern	double	getfval(Cell *);
93
extern	char	*getsval(Cell *);
94
extern	char	*tostring(char *);
95
extern	char	*qstring(char *, int);
96
 
97
extern	void	recinit(unsigned int);
98
extern	void	initgetrec(void);
99
extern	void	makefields(int, int);
100
extern	void	growfldtab(int n);
101
extern	int	getrec(char **, int *, int);
102
extern	void	nextfile(void);
103
extern	int	readrec(char **buf, int *bufsize, FILE *inf);
104
extern	char	*getargv(int);
105
extern	void	setclvar(char *);
106
extern	void	fldbld(void);
107
extern	void	cleanfld(int, int);
108
extern	void	newfld(int);
109
extern	int	refldbld(char *, char *);
110
extern	void	recbld(void);
111
extern	Cell	*fieldadr(int);
112
extern	void	yyerror(char *);
113
extern	void	fpecatch(int);
114
extern	void	bracecheck(void);
115
extern	void	bcheck2(int, int, int);
116
extern	void	SYNTAX(char *, ...);
117
extern	void	FATAL(char *, ...);
118
extern	void	WARNING(char *, ...);
119
extern	void	error(void);
120
extern	void	eprint(void);
121
extern	void	bclass(int);
122
extern	double	errcheck(double, char *);
123
extern	int	isclvar(char *);
124
extern	int	is_number(char *);
125
 
126
extern	int	adjbuf(char **pb, int *sz, int min, int q, char **pbp, char *what);
127
extern	void	run(Node *);
128
extern	Cell	*execute(Node *);
129
extern	Cell	*program(Node **, int);
130
extern	Cell	*call(Node **, int);
131
extern	Cell	*copycell(Cell *);
132
extern	Cell	*arg(Node **, int);
133
extern	Cell	*jump(Node **, int);
134
extern	Cell	*getline(Node **, int);
135
extern	Cell	*getnf(Node **, int);
136
extern	Cell	*array(Node **, int);
137
extern	Cell	*awkdelete(Node **, int);
138
extern	Cell	*intest(Node **, int);
139
extern	Cell	*matchop(Node **, int);
140
extern	Cell	*boolop(Node **, int);
141
extern	Cell	*relop(Node **, int);
142
extern	void	tfree(Cell *);
143
extern	Cell	*gettemp(void);
144
extern	Cell	*field(Node **, int);
145
extern	Cell	*indirect(Node **, int);
146
extern	Cell	*substr(Node **, int);
147
extern	Cell	*sindex(Node **, int);
148
extern	int	format(char **, int *, char *, Node *);
149
extern	Cell	*awksprintf(Node **, int);
150
extern	Cell	*awkprintf(Node **, int);
151
extern	Cell	*arith(Node **, int);
152
extern	double	ipow(double, int);
153
extern	Cell	*incrdecr(Node **, int);
154
extern	Cell	*assign(Node **, int);
155
extern	Cell	*cat(Node **, int);
156
extern	Cell	*pastat(Node **, int);
157
extern	Cell	*dopa2(Node **, int);
158
extern	Cell	*split(Node **, int);
159
extern	Cell	*condexpr(Node **, int);
160
extern	Cell	*ifstat(Node **, int);
161
extern	Cell	*whilestat(Node **, int);
162
extern	Cell	*dostat(Node **, int);
163
extern	Cell	*forstat(Node **, int);
164
extern	Cell	*instat(Node **, int);
165
extern	Cell	*bltin(Node **, int);
166
extern	Cell	*printstat(Node **, int);
167
extern	Cell	*nullproc(Node **, int);
168
extern	FILE	*redirect(int, Node *);
169
extern	FILE	*openfile(int, char *);
170
extern	char	*filename(FILE *);
171
extern	Cell	*closefile(Node **, int);
172
extern	void	closeall(void);
173
extern	Cell	*sub(Node **, int);
174
extern	Cell	*gsub(Node **, int);
175
 
176
extern	FILE	*popen(const char *, const char *);
177
extern	int	pclose(FILE *);