home *** CD-ROM | disk | FTP | other *** search
/ Acorn User 11 / AUCD11B.iso / LANGUAGES / WraithSet / AwkStuff / MawkSrc / h / array next >
Encoding:
Text File  |  1996-09-17  |  1.3 KB  |  52 lines

  1. /*
  2. array.h 
  3. copyright 1991-96, Michael D. Brennan
  4.  
  5. This is a source file for mawk, an implementation of
  6. the AWK programming language.
  7.  
  8. Mawk is distributed without warranty under the terms of
  9. the GNU General Public License, version 2, 1991.
  10. */
  11.  
  12. /*
  13. This file was generated with the command
  14.  
  15.    notangle -R'"array.h"' array.w > array.h
  16.  
  17. Notangle is part of Norman Ramsey's noweb literate programming package
  18. available from CTAN(ftp.shsu.edu).
  19.  
  20. It's easiest to read or modify this file by working with array.w.
  21. */
  22.  
  23. #ifndef ARRAY_H
  24. #define ARRAY_H 1
  25. typedef struct array {
  26.    PTR ptr ;  /* What this points to depends on the type */
  27.    unsigned size ; /* number of elts in the table */
  28.    unsigned limit ; /* Meaning depends on type */
  29.    unsigned hmask ; /* bitwise and with hash value to get table index */
  30.    short type ;  /* values in AY_NULL .. AY_SPLIT */
  31. } *ARRAY ;
  32.  
  33. #define AY_NULL         0
  34. #define AY_INT          1
  35. #define AY_STR          2
  36. #define AY_SPLIT        4
  37.  
  38. #define NO_CREATE  0
  39. #define CREATE     1
  40.  
  41. #define new_ARRAY()  ((ARRAY)memset(ZMALLOC(struct array),0,sizeof(struct array)))
  42.  
  43. CELL* PROTO(array_find, (ARRAY,CELL*,int)) ;
  44. void  PROTO(array_delete, (ARRAY,CELL*)) ;
  45. void  PROTO(array_load, (ARRAY,int)) ;
  46. void  PROTO(array_clear, (ARRAY)) ;
  47. STRING** PROTO(array_loop_vector, (ARRAY,unsigned*)) ;
  48. CELL* PROTO(array_cat, (CELL*,int)) ;
  49.  
  50. #endif /* ARRAY_H */
  51.  
  52.