/*
File: saarray.h
Author: Andrew Moore
Purpose: Arrays of String Arrays
*/

#ifndef SAARRAY_H
#define SAARRAY_H

#include "standard.h"
#include "ambs.h"
#include "am_string_array.h"

typedef struct sa_array
{
  int size;
  int array_size;
  string_array **array;
} sa_array;

sa_array *mk_empty_sa_array(void);
sa_array *mk_sa_array( int size);

void add_to_sa_array(sa_array *sa_arr,string_array *sa);
int sa_array_size(sa_array *sa_arr);
string_array *sa_array_ref(sa_array *sa_arr,int idx);
void sa_array_set( sa_array *saa, int idx, string_array *sa);
void fprintf_sa_array(FILE *s,char *m1,sa_array *sa_arr,char *m2);
void psa_array(sa_array *saarr);
void free_sa_array(sa_array *sa_arr);
sa_array *mk_copy_sa_array(sa_array *sa_arr);

/* Returns an sa_array of length size in which each element is
   an string_array of length zero. */
sa_array *mk_array_of_zero_length_string_arrays(int size);

#endif /* SAARRAY_H */
