-typedef struct {
- unsigned char *ary;
- int max_length;
- int count;
-} nkf_ary;
-
-static nkf_ary *
-nkf_ary_new(int length)
-{
- nkf_ary *ary = nkf_xmalloc(sizeof(nkf_ary));
- ary->ary = nkf_xmalloc(length);
- ary->max_length = length;
- ary->count = 0;
- return ary;
-}
-
-static void
-nkf_ary_dispose(nkf_ary *ary)
-{
- nkf_xfree(ary->ary);
- nkf_xfree(ary);
-}
-
-#define nkf_ary_length(ary) ((ary)->count)
-#define nkf_ary_empty_p(ary) ((ary)->count == 0)
-
-static unsigned char
-nkf_ary_at(nkf_ary *ary, int index)
-{
- assert(index <= ary->count);
- return ary->ary[index];
-}
-
-static void
-nkf_ary_clear(nkf_ary *ary)
-{
- ary->count = 0;
-}
-
-static unsigned char
-nkf_ary_push(nkf_ary *ary, nkf_char c)
-{
- assert(ary->max_length > ary->count);
- ary->ary[ary->count++] = c;
- return ary->count;
-}
-
-static unsigned char
-nkf_ary_pop(nkf_ary *ary)
-{
- assert(0 < ary->count);
- return ary->ary[--ary->count];
-}
-
-/* Normalization Form C */