git @ Cat's Eye Technologies beta-Juliet / master src / alphabet.h
master

Tree @master (Download .tar.gz)

alphabet.h @masterraw · history · blame

/*
 * 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 */