Merge from vendor branch LIBSTDC++:
[dragonfly.git] / contrib / one-true-awk / 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(char *);
37 extern  int     yylook(void);
38 extern  int     yyback(int *, int);
39 extern  int     yyinput(void);
40
41 extern  fa      *makedfa(char *, int);
42 extern  fa      *mkdfa(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(char *);
49 extern  void    overflo(char *);
50 extern  void    cfoll(fa *, Node *);
51 extern  int     first(Node *);
52 extern  void    follow(Node *);
53 extern  int     member(int, char *);
54 extern  int     match(fa *, char *);
55 extern  int     pmatch(fa *, char *);
56 extern  int     nematch(fa *, char *);
57 extern  Node    *reparse(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(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 *, char *);
102 extern  Cell    *setsymtab(char *, char *, double, unsigned int, Array *);
103 extern  int     hash(char *, int);
104 extern  void    rehash(Array *);
105 extern  Cell    *lookup(char *, Array *);
106 extern  double  setfval(Cell *, double);
107 extern  void    funnyvar(Cell *, char *);
108 extern  char    *setsval(Cell *, char *);
109 extern  double  getfval(Cell *);
110 extern  char    *getsval(Cell *);
111 extern  char    *tostring(char *);
112 extern  char    *qstring(char *, int);
113
114 extern  void    recinit(unsigned int);
115 extern  void    initgetrec(void);
116 extern  void    makefields(int, int);
117 extern  void    growfldtab(int n);
118 extern  int     getrec(char **, int *, int);
119 extern  void    nextfile(void);
120 extern  int     readrec(char **buf, int *bufsize, FILE *inf);
121 extern  char    *getargv(int);
122 extern  void    setclvar(char *);
123 extern  void    fldbld(void);
124 extern  void    cleanfld(int, int);
125 extern  void    newfld(int);
126 extern  int     refldbld(char *, char *);
127 extern  void    recbld(void);
128 extern  Cell    *fieldadr(int);
129 extern  void    yyerror(char *);
130 extern  void    fpecatch(int);
131 extern  void    bracecheck(void);
132 extern  void    bcheck2(int, int, int);
133 extern  void    SYNTAX(char *, ...);
134 extern  void    FATAL(char *, ...);
135 extern  void    WARNING(char *, ...);
136 extern  void    error(void);
137 extern  void    eprint(void);
138 extern  void    bclass(int);
139 extern  double  errcheck(double, char *);
140 extern  int     isclvar(char *);
141 extern  int     is_number(char *);
142
143 extern  int     adjbuf(char **pb, int *sz, int min, int q, char **pbp, char *what);
144 extern  void    run(Node *);
145 extern  Cell    *execute(Node *);
146 extern  Cell    *program(Node **, int);
147 extern  Cell    *call(Node **, int);
148 extern  Cell    *copycell(Cell *);
149 extern  Cell    *arg(Node **, int);
150 extern  Cell    *jump(Node **, int);
151 extern  Cell    *getline(Node **, int);
152 extern  Cell    *getnf(Node **, int);
153 extern  Cell    *array(Node **, int);
154 extern  Cell    *awkdelete(Node **, int);
155 extern  Cell    *intest(Node **, int);
156 extern  Cell    *matchop(Node **, int);
157 extern  Cell    *boolop(Node **, int);
158 extern  Cell    *relop(Node **, int);
159 extern  void    tfree(Cell *);
160 extern  Cell    *gettemp(void);
161 extern  Cell    *field(Node **, int);
162 extern  Cell    *indirect(Node **, int);
163 extern  Cell    *substr(Node **, int);
164 extern  Cell    *sindex(Node **, int);
165 extern  int     format(char **, int *, char *, Node *);
166 extern  Cell    *awksprintf(Node **, int);
167 extern  Cell    *awkprintf(Node **, int);
168 extern  Cell    *arith(Node **, int);
169 extern  double  ipow(double, int);
170 extern  Cell    *incrdecr(Node **, int);
171 extern  Cell    *assign(Node **, int);
172 extern  Cell    *cat(Node **, int);
173 extern  Cell    *pastat(Node **, int);
174 extern  Cell    *dopa2(Node **, int);
175 extern  Cell    *split(Node **, int);
176 extern  Cell    *condexpr(Node **, int);
177 extern  Cell    *ifstat(Node **, int);
178 extern  Cell    *whilestat(Node **, int);
179 extern  Cell    *dostat(Node **, int);
180 extern  Cell    *forstat(Node **, int);
181 extern  Cell    *instat(Node **, int);
182 extern  Cell    *bltin(Node **, int);
183 extern  Cell    *printstat(Node **, int);
184 extern  Cell    *nullproc(Node **, int);
185 extern  FILE    *redirect(int, Node *);
186 extern  FILE    *openfile(int, char *);
187 extern  char    *filename(FILE *);
188 extern  Cell    *closefile(Node **, int);
189 extern  void    closeall(void);
190 extern  Cell    *sub(Node **, int);
191 extern  Cell    *gsub(Node **, int);
192
193 extern  FILE    *popen(const char *, const char *);
194 extern  int     pclose(FILE *);