/* $Header: array.h,v 3.0.1.1 89/11/17 15:03:42 lwall Locked $
 *
 *    Copyright (c) 1989, Larry Wall
 *
 *    You may distribute under the terms of the GNU General Public License
 *    as specified in the README file that comes with the perl 3.0 kit.
 *
 * $Log:	array.h,v $
 * Revision 3.0.1.1  89/11/17  15:03:42  lwall
 * patch5: nested foreach on same array didn't work
 * 
 * Revision 3.0  89/10/18  15:08:41  lwall
 * 3.0 baseline
 * 
 */

struct atbl {
    STR	**ary_array;
    STR **ary_alloc;
    STR *ary_magic;
    int ary_max;
    int ary_fill;
    char ary_flags;
};

#define ARF_REAL 1	/* free old entries */

extern void afill PROTO((ARRAY *, int));
extern STR *afetch PROTO((ARRAY *, int, int));
extern bool astore PROTO((ARRAY *, int, STR *));
extern STR *apop PROTO((ARRAY *));
extern STR *ashift PROTO((ARRAY *));
extern void aunshift PROTO((ARRAY *, int));
extern void afree PROTO((ARRAY *));
extern void aclear PROTO((ARRAY *));
extern bool apush PROTO((ARRAY *, STR *));
extern int alen PROTO((ARRAY *));
extern ARRAY *anew PROTO((STAB *));
extern ARRAY *afake PROTO((STAB *, int, STR **));
