home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Utilities / Programming / EnterAct 3.5 / hAWK project / AWK Headers / AWK.PROTO < prev    next >
Encoding:
Text File  |  1991-05-30  |  5.8 KB  |  153 lines  |  [TEXT/KEEN]

  1. /* complete list of (real) AWK function prototypes */
  2. /*MAIN.c*/
  3. extern  int AWKmain(int argc, char **argv);main
  4. static void usage(void);
  5. extern  struct re_pattern_buffer *
  6.     make_regexp(NODE *s, int ignorecase);
  7. extern  struct re_pattern_buffer *
  8.     mk_re_parse(char *s, int ignorecase);
  9. static void copyleft(void);
  10. static void set_fs(char *str);
  11. static void init_args(int argc0, int argc, char *argv0, char **argv);
  12. static void init_vars(void);
  13. static NODE *spc_var(char *name, NODE *value);
  14. static void pre_assign(char *v);
  15. extern  SIGTYPE catchsig(int sig, int code);
  16. /*ALLOCA.C*/
  17. extern  void *alloca (unsigned int size);
  18. pointer xmalloc(unsigned int n);
  19. /*ARRAY.C*/
  20. NODE *concat_exp(NODE *tree);
  21. void assoc_clear(NODE *symbol);
  22. static int hash_calc(NODE *subs);
  23. static NODE *assoc_find(NODE *symbol, NODE *subs, int hash1);
  24. int in_array(NODE *symbol, NODE *subs);
  25. NODE **assoc_lookup(NODE *symbol, NODE *subs);
  26. void do_delete(NODE *symbol, NODE *tree);
  27. struct search *assoc_scan(NODE *symbol);
  28. struct search *assoc_next(struct search *lookat);
  29. /*AWKTAB.C*/
  30. int yyparse(void);
  31. static void yyerror();
  32. int parse_escape(char **string_ptr);
  33. static int yylex(void);
  34. static FILE *pathopen(char *file);
  35. static NODE *node_common(NODETYPE op);
  36. NODE *node(NODE *left, NODETYPE op, NODE *right);
  37. static NODE *snode(NODE *subn, NODETYPE op, NODE *(*procp) ());
  38. static NODE *mkrangenode(NODE *cpair);
  39. static NODE *make_for_loop(NODE *init, NODE *cond, NODE *incr);
  40. NODE *install(NODE **table, char *name, NODE *value);
  41. NODE *lookup(NODE **table, char *name);
  42. static int hashf(register char *name, register int len, int hashsize);
  43. static NODE *append_right(NODE *list, NODE *new);
  44.  
  45. static void func_install(NODE *params, NODE *def);
  46. static void pop_var(NODE *np, int freeit);
  47. static void pop_params(NODE *params);
  48. static NODE *make_param(char *name);
  49. NODE *variable(char *name);
  50. /*BUILTIN.C*/
  51. NODE *do_exp(NODE *tree);
  52. NODE *do_index(NODE *tree);
  53. NODE *do_int(NODE *tree);
  54. NODE *do_length(NODE *tree);
  55. NODE *do_log(NODE *tree);
  56. NODE *do_sprintf(NODE *tree);
  57. void do_printf(NODE *tree);
  58. NODE *do_sqrt(NODE *tree);
  59. NODE *do_substr(NODE *tree);
  60. NODE *do_system(NODE *tree);
  61. void do_print(register NODE *tree);
  62. NODE *do_tolower(NODE *tree);
  63. NODE *do_toupper(NODE *tree);
  64. static void get_one(NODE *tree, NODE **res);
  65. static void get_two(NODE *tree, NODE **res1, NODE **res2);
  66. static int get_three(NODE *tree, NODE **res1, NODE **res2, NODE **res3);
  67. int a_get_three(NODE *tree, NODE **res1, NODE **res2, NODE **res3);
  68. void print_simple(NODE *tree, FILE *fp);
  69. NODE *do_atan2(NODE *tree);
  70. NODE *do_sin(NODE *tree);
  71. NODE *do_cos(NODE *tree);
  72. NODE *do_rand(NODE *tree);
  73. NODE *do_srand(NODE *tree);
  74. NODE *do_match(NODE *tree);
  75. static NODE *sub_common(NODE *tree, int global);
  76. NODE *do_gsub(NODE *tree);
  77. NODE *do_sub(NODE *tree);
  78. /*EVAL.C*/
  79. int interpret(NODE *tree);
  80. NODE *r_tree_eval(NODE *tree);
  81. void assign_number(NODE **ptr, AWKNUM value);
  82. static int eval_condition(NODE *tree);
  83. int cmp_nodes(NODE *t1, NODE *t2);
  84. static NODE *op_assign(NODE *tree);
  85. static NODE *func_call(NODE *name, NODE *arg_list);
  86. NODE **get_lhs(NODE *ptr, int assign);
  87. static NODE *match_op(NODE *tree);
  88. /*FIELD.C*/
  89. void init_fields(void);
  90. static void set_field(int num, char *str, int len, NODE *dummy);
  91. static void rebuild_record(void);
  92. void set_record(char *buf, int cnt);
  93. NODE **get_field(int num, int assign);
  94. static int parse_fields(int up_to, char **buf, int len, 
  95.     register char *fs, void (*set) (), NODE *n);
  96. static int re_split(char *buf, int len, char *fs, 
  97.     struct re_registers *reregsp);
  98. NODE *do_split(NODE *tree);
  99. static char *get_fs(void);
  100. static void set_element(int num, char *s, int len, NODE *n);
  101. /*GETOPT.C*/
  102. int getopt(int argc, char **argv, char *opts);
  103. /*IO.C*/
  104. static IOBUF *nextfile(void);
  105. static IOBUF *iop_alloc(int fd);
  106. void do_input(void);
  107. static int iop_close(IOBUF *iop);
  108. static int inrec(IOBUF *iop);
  109. static void do_file(IOBUF *iop);
  110. int get_rs(void);
  111. struct redirect *redirect(NODE *tree, int errflg);
  112. static void close_one(void);
  113. NODE *do_close(NODE *tree);
  114. static int close_redir(register struct redirect *rp);
  115. int flush_io (void);
  116. int close_io (void);
  117. int devopen (char *name, char *mode);
  118. static IOBUF *gawk_popen(char *cmd, struct redirect *rp);
  119. static int gawk_pclose(struct redirect *rp);
  120. static int get_a_record(char **res, IOBUF *iop);
  121. NODE *do_getline(NODE *tree);
  122. /*MISSING.C*/
  123. /*MSG.C*/
  124. static void err(char *s, char *msg, va_list *argp);
  125. void msg();
  126. void warning();
  127. void fatal();
  128. /*NODE.C*/
  129. AWKNUM r_force_number(NODE *n);
  130. NODE *r_force_string(NODE *s);
  131. NODE *dupnode(NODE *n);
  132. NODE *make_number(AWKNUM x);
  133. NODE *tmp_number(AWKNUM x);
  134. NODE *make_str_node(char *s, int len, int scan);
  135. NODE *tmp_string(char *s, int len);
  136. NODE *newnode(NODETYPE ty);
  137. void freenode(NODE *it);
  138. void do_deref(void);
  139. /*REGEX.C*/
  140. static  void init_syntax_once(void );
  141. extern  int re_set_syntax(int syntax);
  142. extern  char *re_compile_pattern(char *pattern,int size,struct re_pattern_buffer *bufp);
  143. static  int store_jump(char *from,char opcode,char *to);
  144. static  int insert_jump(char op,char *from,char *to,char *current_end);
  145. extern  void re_compile_fastmap(struct re_pattern_buffer *bufp);
  146. extern  int re_search(struct re_pattern_buffer *pbufp,char *string,int size,int startpos,int range,struct re_registers *regs);
  147. extern  int re_search_2(struct re_pattern_buffer *pbufp,char *string1,int size1,char *string2,int size2,int startpos,int range,struct re_registers *regs,int mstop);
  148. extern  int re_match(struct re_pattern_buffer *pbufp,char *string,int size,int pos,struct re_registers *regs);
  149. extern  int re_match_2(struct re_pattern_buffer *pbufp,unsigned char *string1,int size1,unsigned char *string2,int size2,int pos,struct re_registers *regs,int mstop);
  150. static  int bcmp_translate(unsigned char *s1,unsigned char *s2,int len,unsigned char *translate);
  151. extern  char *re_comp(char *s);
  152. extern  int re_exec(char *s);
  153. /*VERSION.C*/