Import of awk version 20100523
[dragonfly.git] / contrib / awk20040207 / proto.h
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(char **);
47 extern  int     quoted(char **);
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  int     refldbld(const char *, const char *);
128 extern  void    recbld(void);
129 extern  Cell    *fieldadr(int);
130 extern  void    yyerror(const char *);
131 extern  void    fpecatch(int);
132 extern  void    bracecheck(void);
133 extern  void    bcheck2(int, int, int);
134 extern  void    SYNTAX(const char *, ...);
135 extern  void    FATAL(const char *, ...);
136 extern  void    WARNING(const char *, ...);
137 extern  void    error(void);
138 extern  void    eprint(void);
139 extern  void    bclass(int);
140 extern  double  errcheck(double, const char *);
141 extern  int     isclvar(const char *);
142 extern  int     is_number(const char *);
143
144 extern  int     adjbuf(char **pb, int *sz, int min, int q, char **pbp, const char *what);
145 extern  void    run(Node *);
146 extern  Cell    *execute(Node *);
147 extern  Cell    *program(Node **, int);
148 extern  Cell    *call(Node **, int);
149 extern  Cell    *copycell(Cell *);
150 extern  Cell    *arg(Node **, int);
151 extern  Cell    *jump(Node **, int);
152 extern  Cell    *getline(Node **, int);
153 extern  Cell    *getnf(Node **, int);
154 extern  Cell    *array(Node **, int);
155 extern  Cell    *awkdelete(Node **, int);
156 extern  Cell    *intest(Node **, int);
157 extern  Cell    *matchop(Node **, int);
158 extern  Cell    *boolop(Node **, int);
159 extern  Cell    *relop(Node **, int);
160 extern  void    tfree(Cell *);
161 extern  Cell    *gettemp(void);
162 extern  Cell    *field(Node **, int);
163 extern  Cell    *indirect(Node **, int);
164 extern  Cell    *substr(Node **, int);
165 extern  Cell    *sindex(Node **, int);
166 extern  int     format(char **, int *, const char *, Node *);
167 extern  Cell    *awksprintf(Node **, int);
168 extern  Cell    *awkprintf(Node **, int);
169 extern  Cell    *arith(Node **, int);
170 extern  double  ipow(double, int);
171 extern  Cell    *incrdecr(Node **, int);
172 extern  Cell    *assign(Node **, int);
173 extern  Cell    *cat(Node **, int);
174 extern  Cell    *pastat(Node **, int);
175 extern  Cell    *dopa2(Node **, int);
176 extern  Cell    *split(Node **, int);
177 extern  Cell    *condexpr(Node **, int);
178 extern  Cell    *ifstat(Node **, int);
179 extern  Cell    *whilestat(Node **, int);
180 extern  Cell    *dostat(Node **, int);
181 extern  Cell    *forstat(Node **, int);
182 extern  Cell    *instat(Node **, int);
183 extern  Cell    *bltin(Node **, int);
184 extern  Cell    *printstat(Node **, int);
185 extern  Cell    *nullproc(Node **, int);
186 extern  FILE    *redirect(int, Node *);
187 extern  FILE    *openfile(int, const char *);
188 extern  const char      *filename(FILE *);
189 extern  Cell    *closefile(Node **, int);
190 extern  void    closeall(void);
191 extern  Cell    *sub(Node **, int);
192 extern  Cell    *gsub(Node **, int);
193
194 extern  FILE    *popen(const char *, const char *);
195 extern  int     pclose(FILE *);