1 
 2 /* ******** include file digram_structure.incl.pl1 ******* */
 3 
 4 dcl  digrams$digrams external;
 5 dcl  digrams$n_units fixed bin external;
 6 dcl  digrams$letters external;
 7 dcl  digrams$rules external;
 8 
 9 /* This array contains information about all possible pairs of units */
10 
11 dcl 1 digrams (n_units, n_units) based (addr (digrams$digrams)),
12     2 begin bit (1),                                        /* on if this pair must begin syllable */
13     2 not_begin bit (1),                                    /* on if this pair must not begin */
14     2 end bit (1),                                          /* on if this pair must end syllable */
15     2 not_end bit (1),                                      /* on if this pair must not end */
16     2 break bit (1),                                        /* on if this pair is a break pair */
17     2 prefix bit (1),                                       /* on if vowel must precede this pair in same syllable */
18     2 suffix bit (1),                                       /* on if vowel must follow this pair in same syllable */
19     2 illegal_pair bit (1),                                 /* on if this pair may not appear */
20     2 pad bit (1);                                          /* this makes 9 bits/entry */
21 
22 /* This array contains left justified 1 or 2-letter pairs representing each unit */
23 
24 dcl  letters (0:n_units) char (2) aligned based (addr (digrams$letters));
25 
26 /* This is the same as letters, but allows reference to individual characters */
27 
28 dcl 1 letters_split (0:n_units) based (addr (digrams$letters)),
29     2 first char (1),
30     2 second char (1),
31     2 pad char (2);
32 
33 /* This array has rules for each unit */
34 
35 dcl 1 rules (n_units) aligned based (addr (digrams$rules)),
36     2 no_final_split bit (1),                               /* can't be the only vowel in last syllable */
37     2 not_begin_syllable bit (1),                           /* can't begin a syllable */
38     2 vowel bit (1),                                        /* this is a vowel */
39     2 alternate_vowel bit (1);                              /* this is an alternate vowel, (i.e., "y") */
40 
41 dcl  n_units defined digrams$n_units fixed bin;
42 
43 /* ******** end include file digram_structure.incl.pl1 *********** */