view anagram/agcore/tsd.h @ 0:13d2b8934445

Import AnaGram (near-)release tree into Mercurial.
author David A. Holland
date Sat, 22 Dec 2007 17:52:45 -0500
parents
children
line wrap: on
line source

/*
 * AnaGram, A System for Syntax Directed Programming
 * Copyright 1993-2002 Parsifal Software. All Rights Reserved.
 * See the file COPYING for license and usage terms.
 *
 * tsd.h - tuple set dictionary
 */

#ifndef TSD_H
#define TSD_H

#define check_tsd(t) assert(!invalid_tsd(t))

struct tsd {
  int *sb;
  unsigned nt;
  unsigned tw;
  unsigned na;
};

void   at(tsd *t, ...);
tsd   *copy_tuple_set(tsd *t);
tsd   *delete_tsd(tsd *ts);
tsd   *init_tsd(unsigned n);
int    invalid_tsd(tsd *t);
void   purge_tsd(tsd *r, tsd *k);
void   p1_tsd(tsd *r, int rc, tsd *k, int kc);
void   reset_tsd(tsd *ts);
tsd   *resize_tsd(tsd *ts, unsigned n);
int    sit(tsd *t, ...);
tsd   *spec_tsd(unsigned size, unsigned n);
void   xtx(tsd *t, unsigned x, ...);
void   xtxf(tsd *t, unsigned x, ...);


#endif /* TSD_H */