/*  -*- mode:     C -*- --------------------------------------------------
* File:         rules/avm.h
* Description:  An AVM for a phonetic segment feature bundle description.
* Author:       Brett Kessler
* Created:      Tue Apr 14 17:19:40 1992
* Modified:     Sun May  3 16:08:30 1992 (Brett Kessler)
* Language:     C
******************************************************************************
*/

#if !defined(AVM_H)
#define AVM_H

#include "feature.h"
#include "list.h"
#include <stdio.h>

/*
 * AVM
 *
 * An AVM is a list of Features.  This has nothing to do with the
 * similarly-named structure in feattures/.
 * The order of the features is irrelevant, but will be the same as the 
 * order they are listed in the rule declaration.
 */
typedef struct avm {
  List /* of Feature */ features;
}* AVM;

/*
 * AVM_Create
 *
 * Creates an AVM from a list of features.
 */
extern AVM
AVM_Create(List features);

/*
 * AVM_Print
 *
 * Prints on rules.c the C code for rebuilding this structure in "derive".
 */
extern void
AVM_Print(AVM avm, FILE* file);

#endif  /* end of code */

/*
******************************************************************************
*                                End of file
******************************************************************************
*/
