xref: /plan9-contrib/sys/src/cmd/awk/proto.h (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
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