[BACK]Return to proto.h CVS log [TXT][DIR] Up to [local] / src / usr.bin / awk

Annotation of src/usr.bin/awk/proto.h, Revision 1.23

1.23    ! millert     1: /*     $OpenBSD: proto.h,v 1.22 2023/09/17 14:49:44 millert Exp $      */
1.1       tholo       2: /****************************************************************
1.3       kstailey    3: Copyright (C) Lucent Technologies 1997
1.1       tholo       4: All Rights Reserved
                      5:
                      6: Permission to use, copy, modify, and distribute this software and
                      7: its documentation for any purpose and without fee is hereby
                      8: granted, provided that the above copyright notice appear in all
                      9: copies and that both that the copyright notice and this
                     10: permission notice and warranty disclaimer appear in supporting
1.3       kstailey   11: documentation, and that the name Lucent Technologies or any of
                     12: its entities not be used in advertising or publicity pertaining
                     13: to distribution of the software without specific, written prior
                     14: permission.
                     15:
                     16: LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
                     17: INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
                     18: IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY
                     19: SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                     20: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
                     21: IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
                     22: ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
                     23: THIS SOFTWARE.
1.1       tholo      24: ****************************************************************/
                     25:
1.2       millert    26: extern int     yywrap(void);
1.1       tholo      27: extern void    setfname(Cell *);
                     28: extern int     constnode(Node *);
                     29: extern char    *strnode(Node *);
                     30: extern Node    *notnull(Node *);
                     31: extern int     yyparse(void);
                     32:
                     33: extern int     yylex(void);
                     34: extern void    startreg(void);
1.2       millert    35: extern int     input(void);
                     36: extern void    unput(int);
1.7       millert    37: extern void    unputstr(const char *);
1.2       millert    38: extern int     yylook(void);
                     39: extern int     yyback(int *, int);
                     40: extern int     yyinput(void);
1.1       tholo      41:
1.16      millert    42: extern fa      *makedfa(const char *, bool);
                     43: extern fa      *mkdfa(const char *, bool);
                     44: extern int     makeinit(fa *, bool);
1.1       tholo      45: extern void    penter(Node *);
                     46: extern void    freetr(Node *);
1.15      millert    47: extern int     quoted(const uschar **);
1.22      millert    48: extern int     *cclenter(const char *);
1.18      millert    49: extern noreturn void   overflo(const char *);
1.1       tholo      50: extern void    cfoll(fa *, Node *);
                     51: extern int     first(Node *);
                     52: extern void    follow(Node *);
1.22      millert    53: extern int     member(int, int *);
1.7       millert    54: extern int     match(fa *, const char *);
                     55: extern int     pmatch(fa *, const char *);
                     56: extern int     nematch(fa *, const char *);
1.16      millert    57: extern bool    fnematch(fa *, FILE *, char **, int *, int);
1.7       millert    58: extern Node    *reparse(const char *);
1.1       tholo      59: extern Node    *regexp(void);
                     60: extern Node    *primary(void);
                     61: extern Node    *concat(Node *);
                     62: extern Node    *alt(Node *);
                     63: extern Node    *unary(Node *);
                     64: extern int     relex(void);
                     65: extern int     cgoto(fa *, int, int);
                     66: extern void    freefa(fa *);
                     67:
                     68: extern int     pgetc(void);
1.5       millert    69: extern char    *cursource(void);
1.1       tholo      70:
1.21      millert    71: extern Node    *nodealloc(size_t);
1.1       tholo      72: extern Node    *exptostat(Node *);
                     73: extern Node    *node1(int, Node *);
                     74: extern Node    *node2(int, Node *, Node *);
                     75: extern Node    *node3(int, Node *, Node *, Node *);
                     76: extern Node    *node4(int, Node *, Node *, Node *, Node *);
1.19      millert    77: extern Node    *node5(int, Node *, Node *, Node *, Node *, Node *);
1.1       tholo      78: extern Node    *stat3(int, Node *, Node *, Node *);
                     79: extern Node    *op2(int, Node *, Node *);
                     80: extern Node    *op1(int, Node *);
                     81: extern Node    *stat1(int, Node *);
                     82: extern Node    *op3(int, Node *, Node *, Node *);
                     83: extern Node    *op4(int, Node *, Node *, Node *, Node *);
1.19      millert    84: extern Node    *op5(int, Node *, Node *, Node *, Node *, Node *);
1.1       tholo      85: extern Node    *stat2(int, Node *, Node *);
                     86: extern Node    *stat4(int, Node *, Node *, Node *, Node *);
1.3       kstailey   87: extern Node    *celltonode(Cell *, int);
1.1       tholo      88: extern Node    *rectonode(void);
                     89: extern Node    *makearr(Node *);
                     90: extern Node    *pa2stat(Node *, Node *, Node *);
                     91: extern Node    *linkum(Node *, Node *);
                     92: extern void    defn(Cell *, Node *, Node *);
1.7       millert    93: extern int     isarg(const char *);
1.15      millert    94: extern const char *tokname(int);
1.5       millert    95: extern Cell    *(*proctab[])(Node **, int);
                     96: extern int     ptoi(void *);
                     97: extern Node    *itonp(int);
1.1       tholo      98:
                     99: extern void    syminit(void);
                    100: extern void    arginit(int, char **);
                    101: extern void    envinit(char **);
                    102: extern Array   *makesymtab(int);
                    103: extern void    freesymtab(Cell *);
1.7       millert   104: extern void    freeelem(Cell *, const char *);
                    105: extern Cell    *setsymtab(const char *, const char *, double, unsigned int, Array *);
                    106: extern int     hash(const char *, int);
1.1       tholo     107: extern void    rehash(Array *);
1.7       millert   108: extern Cell    *lookup(const char *, Array *);
1.1       tholo     109: extern double  setfval(Cell *, double);
1.7       millert   110: extern void    funnyvar(Cell *, const char *);
                    111: extern char    *setsval(Cell *, const char *);
1.1       tholo     112: extern double  getfval(Cell *);
                    113: extern char    *getsval(Cell *);
1.7       millert   114: extern char    *getpssval(Cell *);     /* for print */
                    115: extern char    *tostring(const char *);
1.17      millert   116: extern char    *tostringN(const char *, size_t);
1.7       millert   117: extern char    *qstring(const char *, int);
1.13      millert   118: extern Cell    *catstr(Cell *, Cell *);
1.1       tholo     119:
                    120: extern void    recinit(unsigned int);
                    121: extern void    initgetrec(void);
1.3       kstailey  122: extern void    makefields(int, int);
                    123: extern void    growfldtab(int n);
1.13      millert   124: extern void    savefs(void);
1.16      millert   125: extern int     getrec(char **, int *, bool);
1.1       tholo     126: extern void    nextfile(void);
1.17      millert   127: extern int     readrec(char **buf, int *bufsize, FILE *inf, bool isnew);
1.1       tholo     128: extern char    *getargv(int);
                    129: extern void    setclvar(char *);
                    130: extern void    fldbld(void);
                    131: extern void    cleanfld(int, int);
                    132: extern void    newfld(int);
1.12      millert   133: extern void    setlastfld(int);
1.7       millert   134: extern int     refldbld(const char *, const char *);
1.1       tholo     135: extern void    recbld(void);
                    136: extern Cell    *fieldadr(int);
1.7       millert   137: extern void    yyerror(const char *);
1.1       tholo     138: extern void    bracecheck(void);
                    139: extern void    bcheck2(int, int, int);
1.17      millert   140: extern void    SYNTAX(const char *, ...)
                    141:     __attribute__((__format__(__printf__, 1, 2)));
1.18      millert   142: extern noreturn void   FATAL(const char *, ...)
                    143:     __attribute__((__format__(__printf__, 1, 2)));
1.17      millert   144: extern void    WARNING(const char *, ...)
                    145:     __attribute__((__format__(__printf__, 1, 2)));
1.6       millert   146: extern void    error(void);
1.1       tholo     147: extern void    eprint(void);
                    148: extern void    bclass(int);
1.7       millert   149: extern double  errcheck(double, const char *);
                    150: extern int     isclvar(const char *);
1.20      millert   151: extern bool    is_valid_number(const char *s, bool trailing_stuff_ok,
                    152:                                bool *no_trailing, double *result);
                    153: #define is_number(s, val)      is_valid_number(s, false, NULL, val)
1.1       tholo     154:
1.7       millert   155: extern int     adjbuf(char **pb, int *sz, int min, int q, char **pbp, const char *what);
1.1       tholo     156: extern void    run(Node *);
                    157: extern Cell    *execute(Node *);
                    158: extern Cell    *program(Node **, int);
                    159: extern Cell    *call(Node **, int);
                    160: extern Cell    *copycell(Cell *);
                    161: extern Cell    *arg(Node **, int);
                    162: extern Cell    *jump(Node **, int);
1.8       millert   163: extern Cell    *awkgetline(Node **, int);
1.1       tholo     164: extern Cell    *getnf(Node **, int);
                    165: extern Cell    *array(Node **, int);
1.4       millert   166: extern Cell    *awkdelete(Node **, int);
1.1       tholo     167: extern Cell    *intest(Node **, int);
                    168: extern Cell    *matchop(Node **, int);
                    169: extern Cell    *boolop(Node **, int);
                    170: extern Cell    *relop(Node **, int);
                    171: extern void    tfree(Cell *);
                    172: extern Cell    *gettemp(void);
                    173: extern Cell    *field(Node **, int);
                    174: extern Cell    *indirect(Node **, int);
                    175: extern Cell    *substr(Node **, int);
                    176: extern Cell    *sindex(Node **, int);
1.7       millert   177: extern int     format(char **, int *, const char *, Node *);
1.1       tholo     178: extern Cell    *awksprintf(Node **, int);
                    179: extern Cell    *awkprintf(Node **, int);
                    180: extern Cell    *arith(Node **, int);
                    181: extern double  ipow(double, int);
                    182: extern Cell    *incrdecr(Node **, int);
                    183: extern Cell    *assign(Node **, int);
                    184: extern Cell    *cat(Node **, int);
                    185: extern Cell    *pastat(Node **, int);
                    186: extern Cell    *dopa2(Node **, int);
                    187: extern Cell    *split(Node **, int);
                    188: extern Cell    *condexpr(Node **, int);
                    189: extern Cell    *ifstat(Node **, int);
                    190: extern Cell    *whilestat(Node **, int);
                    191: extern Cell    *dostat(Node **, int);
                    192: extern Cell    *forstat(Node **, int);
                    193: extern Cell    *instat(Node **, int);
                    194: extern Cell    *bltin(Node **, int);
                    195: extern Cell    *printstat(Node **, int);
                    196: extern Cell    *nullproc(Node **, int);
                    197: extern FILE    *redirect(int, Node *);
1.17      millert   198: extern FILE    *openfile(int, const char *, bool *);
1.7       millert   199: extern const char      *filename(FILE *);
1.1       tholo     200: extern Cell    *closefile(Node **, int);
                    201: extern void    closeall(void);
1.23    ! millert   202: extern Cell    *dosub(Node **, int);
1.19      millert   203: extern Cell    *gensub(Node **, int);
1.1       tholo     204:
                    205: extern FILE    *popen(const char *, const char *);
                    206: extern int     pclose(FILE *);
1.12      millert   207:
                    208: extern  const char     *flags2str(int flags);