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