/* file alstr_int_prot.h */

#ifndef ALSTR_INT_PROT_HEADER
#define ALSTR_INT_PROT_HEADER

 typedef struct
   {/* a basic alignment object using protected integer strings */
    PROTECTED_CHR_STR *id; /* identification */
    boolean aligned; /* are the symbols aligned, or not?  */
    int d; /* alignment distance, if they are aligned */
    PROTECTED_INT_STR *nsa; /* "a" string */
    PROTECTED_INT_STR *nsb; /* "b" string */
/* NB: with int strings, s[0] holds the number of elements in the string */
    pcodeset *pcset; /* the pcode defining the symbols */
/* for future context-sensitive work: */
    int ia;  /* ia and jb point out a particular symbol-symbol match */
    int jb;  /* ia indexes into nsa->str[], jb into nsb->str[].  */
/* definition of auxiliary symbols, composed of several pcset symbols: */
/* (auxtab[i] defines aux symbol i as an int string of pcset codes) */
    PROTECTED_INT_STR **auxtab; /* 1-based, dynamically allocated */
    int naux;    /* number of entries currently in auxtab[] */
    int max_aux; /* number of entries allocated for auxtab[] */
   } ALIGNMENT_INT_PROT;

#endif
