home *** CD-ROM | disk | FTP | other *** search
/ Acorn User 11 / AUCD11B.iso / LANGUAGES / WraithSet / AwkStuff / 1TSRC / h / proto < prev    next >
Text File  |  2000-01-23  |  7KB  |  198 lines

  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. /* GCW Jan 2000 */
  26. #define getline _getline
  27.  
  28. extern    int    yywrap(void);
  29. extern    void    setfname(Cell *);
  30. extern    int    constnode(Node *);
  31. extern    char    *strnode(Node *);
  32. extern    Node    *notnull(Node *);
  33. extern    int    yyparse(void);
  34.  
  35. extern    int    yylex(void);
  36. extern    void    startreg(void);
  37. extern    int    input(void);
  38. extern    void    unput(int);
  39. extern    void    unputstr(char *);
  40. extern    int    yylook(void);
  41. extern    int    yyback(int *, int);
  42. extern    int    yyinput(void);
  43.  
  44. extern    fa    *makedfa(char *, int);
  45. extern    fa    *mkdfa(char *, int);
  46. extern    int    makeinit(fa *, int);
  47. extern    void    penter(Node *);
  48. extern    void    freetr(Node *);
  49. extern    int    hexstr(char **);
  50. extern    int    quoted(char **);
  51. extern    char    *cclenter(char *);
  52. extern    void    overflo(char *);
  53. extern    void    cfoll(fa *, Node *);
  54. extern    int    first(Node *);
  55. extern    void    follow(Node *);
  56. extern    int    member(int, char *);
  57. extern    int    match(fa *, char *);
  58. extern    int    pmatch(fa *, char *);
  59. extern    int    nematch(fa *, char *);
  60. extern    Node    *reparse(char *);
  61. extern    Node    *regexp(void);
  62. extern    Node    *primary(void);
  63. extern    Node    *concat(Node *);
  64. extern    Node    *alt(Node *);
  65. extern    Node    *unary(Node *);
  66. extern    int    relex(void);
  67. extern    int    cgoto(fa *, int, int);
  68. extern    void    freefa(fa *);
  69.  
  70. extern    int    pgetc(void);
  71. extern    char    *cursource(void);
  72.  
  73. extern    Node    *nodealloc(int);
  74. extern    Node    *exptostat(Node *);
  75. extern    Node    *node1(int, Node *);
  76. extern    Node    *node2(int, Node *, Node *);
  77. extern    Node    *node3(int, Node *, Node *, Node *);
  78. extern    Node    *node4(int, Node *, Node *, Node *, Node *);
  79. extern    Node    *stat3(int, Node *, Node *, Node *);
  80. extern    Node    *op2(int, Node *, Node *);
  81. extern    Node    *op1(int, Node *);
  82. extern    Node    *stat1(int, Node *);
  83. extern    Node    *op3(int, Node *, Node *, Node *);
  84. extern    Node    *op4(int, Node *, Node *, Node *, Node *);
  85. extern    Node    *stat2(int, Node *, Node *);
  86. extern    Node    *stat4(int, Node *, Node *, Node *, Node *);
  87. extern    Node    *celltonode(Cell *, int);
  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 *);
  93. extern    int    isarg(char *);
  94. extern    char    *tokname(int);
  95. extern    Cell    *(*proctab[])(Node **, int);
  96. extern    int    ptoi(void *);
  97. extern    Node    *itonp(int);
  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 *);
  104. extern    void    freeelem(Cell *, char *);
  105. extern    Cell    *setsymtab(char *, char *, double, unsigned int, Array *);
  106. extern    int    hash(char *, int);
  107. extern    void    rehash(Array *);
  108. extern    Cell    *lookup(char *, Array *);
  109. extern    double    setfval(Cell *, double);
  110. extern    void    funnyvar(Cell *, char *);
  111. extern    char    *setsval(Cell *, char *);
  112. extern    double    getfval(Cell *);
  113. extern    char    *getsval(Cell *);
  114. extern    char    *tostring(char *);
  115. extern    char    *qstring(char *, int);
  116.  
  117. extern    void    recinit(unsigned int);
  118. extern    void    initgetrec(void);
  119. extern    void    makefields(int, int);
  120. extern    void    growfldtab(int n);
  121. extern    int    getrec(char **, int *, int);
  122. extern    void    nextfile(void);
  123. extern    int    readrec(char **buf, int *bufsize, FILE *inf);
  124. extern    char    *getargv(int);
  125. extern    void    setclvar(char *);
  126. extern    void    fldbld(void);
  127. extern    void    cleanfld(int, int);
  128. extern    void    newfld(int);
  129. extern    int    refldbld(char *, char *);
  130. extern    void    recbld(void);
  131. extern    Cell    *fieldadr(int);
  132. extern    void    yyerror(char *);
  133. extern    void    fpecatch(int);
  134. extern    void    bracecheck(void);
  135. extern    void    bcheck2(int, int, int);
  136. extern    void    SYNTAX(char *, ...);
  137. extern    void    FATAL(char *, ...);
  138. extern    void    WARNING(char *, ...);
  139. extern    void    error(void);
  140. extern    void    eprint(void);
  141. extern    void    bclass(int);
  142. extern    double    errcheck(double, char *);
  143. extern    int    isclvar(char *);
  144. extern    int    is_number(char *);
  145.  
  146. extern    int    adjbuf(char **pb, int *sz, int min, int q, char **pbp, char *what);
  147. extern    void    run(Node *);
  148. extern    Cell    *execute(Node *);
  149. extern    Cell    *program(Node **, int);
  150. extern    Cell    *call(Node **, int);
  151. extern    Cell    *copycell(Cell *);
  152. extern    Cell    *arg(Node **, int);
  153. extern    Cell    *jump(Node **, int);
  154. extern    Cell    *getline(Node **, int);
  155. extern    Cell    *getnf(Node **, int);
  156. extern    Cell    *array(Node **, int);
  157. extern    Cell    *awkdelete(Node **, int);
  158. extern    Cell    *intest(Node **, int);
  159. extern    Cell    *matchop(Node **, int);
  160. extern    Cell    *boolop(Node **, int);
  161. extern    Cell    *relop(Node **, int);
  162. extern    void    tfree(Cell *);
  163. extern    Cell    *gettemp(void);
  164. extern    Cell    *field(Node **, int);
  165. extern    Cell    *indirect(Node **, int);
  166. extern    Cell    *substr(Node **, int);
  167. extern    Cell    *sindex(Node **, int);
  168. extern    int    format(char **, int *, char *, Node *);
  169. extern    Cell    *awksprintf(Node **, int);
  170. extern    Cell    *awkprintf(Node **, int);
  171. extern    Cell    *arith(Node **, int);
  172. extern    double    ipow(double, int);
  173. extern    Cell    *incrdecr(Node **, int);
  174. extern    Cell    *assign(Node **, int);
  175. extern    Cell    *cat(Node **, int);
  176. extern    Cell    *pastat(Node **, int);
  177. extern    Cell    *dopa2(Node **, int);
  178. extern    Cell    *split(Node **, int);
  179. extern    Cell    *condexpr(Node **, int);
  180. extern    Cell    *ifstat(Node **, int);
  181. extern    Cell    *whilestat(Node **, int);
  182. extern    Cell    *dostat(Node **, int);
  183. extern    Cell    *forstat(Node **, int);
  184. extern    Cell    *instat(Node **, int);
  185. extern    Cell    *bltin(Node **, int);
  186. extern    Cell    *printstat(Node **, int);
  187. extern    Cell    *nullproc(Node **, int);
  188. extern    FILE    *redirect(int, Node *);
  189. extern    FILE    *openfile(int, char *);
  190. extern    char    *filename(FILE *);
  191. extern    Cell    *closefile(Node **, int);
  192. extern    void    closeall(void);
  193. extern    Cell    *sub(Node **, int);
  194. extern    Cell    *gsub(Node **, int);
  195.  
  196. extern    FILE    *popen(const char *, const char *);
  197. extern    int    pclose(FILE *);
  198.