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