/*
* alphabet.h
* Alphabet structures and prototypes for 2Iota.
* $Id: alphabet.h 518 2010-04-28 17:48:38Z cpressey $
*/
#ifndef __ALPHABET_H
#define __ALPHABET_H
#include "symbol.h"
#include "symstr.h"
struct alphabet {
struct alpha_entry *head;
struct alpha_entry *tail;
};
struct alpha_entry {
struct symbol *sym;
struct alpha_entry *next;
struct alpha_entry *prev;
};
struct alphabet *alphabet_new(void);
void alphabet_append(struct alphabet *, struct symbol *);
void alphabet_free(struct alphabet *);
struct alpha_entry *alphabet_lookup(struct alphabet *, struct symbol *);
struct symbol *alphabet_first(struct alphabet *);
struct symbol *alphabet_last(struct alphabet *);
#endif /* !__ALPHABET_H */