|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T t
Length: 3576 (0xdf8) Types: TextFile Names: »turk_hyf.c«
└─⟦060c9c824⟧ Bits:30007080 DKUUG TeX 2/12/89 └─⟦this⟧ »./babel/turkish/hyphen/turk_hyf.c« └─⟦52210d11f⟧ Bits:30007239 EUUGD2: TeX 3 1992-12 └─⟦23cd347d5⟧ »unix3.0/babel.tar.Z« └─⟦2fb9f645a⟧ └─⟦this⟧ »babel/turkish/hyphen/turk_hyf.c«
/**************************************************************************** * * * turk_hyf.c -- a program to produce PatGen-like hyphenation * * patterns for the Turkish Language. * * * * Copyright 1987, by Pierre A. MacKay. * * This program and the resulting pattern file may be used * * freely by non-profit institutions. Commercial users intending * * sale of any product incorporating this file should communicate * * with the author at the Humanities and Arts Computing Center * * Mail-Stop DW-10 * * University of Washington * * Seattle, Washington 98105 * * * ****************************************************************************/ #include <strings.h> static char *tk_vowel[]= {"a", "a=", "e", "i", "i=", "i:", "o", "o=", "o:", "u", "u:"}; static char *tk_cons[]= {"@", "#", "b", "c", "c:", "d", "d!", "d=", "f", "g", "g=", "g:", "h", "h!", "h=", "j", "k", "k!", "l", "m", "n", "n=", "p", "r", "s", "s!", "s=", "s:", "t", "t!", "t=", "v", "y", "z", "z!", "z=", "z:"}; int i,j; main() { printf("%% A mechanically generated Turkish Hyphenation table for TeX,\n"); printf("%% using the University of Washington diacritical coding\n"); printf("%% developed by P. A. MacKay for the Ottoman Texts Project.\n"); /* make # a letter for now */ printf("\\catcode`\\#=11\n"); /* prohibit hyphen before pseudo-letters and allow it after */ printf("\\patterns{%\n8!1\n8=1\n8:1\n"); /* prohibit hyphen before vowels, allow after */ for (i=0; i<(sizeof tk_vowel / sizeof &tk_vowel[0]); i++ ) if (strlen(tk_vowel[i])==1) printf("2%s1\n",tk_vowel[i]); /* allow hyphen either side of simple consonants */ for (i=0; i<(sizeof tk_cons / sizeof &tk_cons[0]); i++ ) if (strlen(tk_cons[i])==1) printf("1%s1\n",tk_cons[i]); /* prohibit hyphen before disguised two-letter fragments */ for (i=0; i<(sizeof tk_cons / sizeof &tk_cons[0]); i++ ) for (j=0; j<(sizeof tk_vowel / sizeof &tk_cons[0]); j++ ) if ((strlen(tk_cons[i]) + strlen(tk_vowel[j]))>2) printf("2%s%s.\n",tk_cons[i], tk_vowel[j]); /* prevent e-cek at end of word */ printf("2e2cek.\n"); /* prohibit hyphen before pair of consonants---many pairs generated here are impossible anyway */ for (i=0; i<(sizeof tk_cons / sizeof &tk_cons[0]); i++ ) for (j=0; j<(sizeof tk_cons / sizeof &tk_cons[0]); j++ ) printf("2%s%s\n",tk_cons[i], tk_cons[j]); /* allow hyphen between vowels, but not after second vowel of pair---several phonetically impossible pairs here */ for (i=0; i<(sizeof tk_vowel / sizeof &tk_cons[0]); i++ ) for (j=0; j<(sizeof tk_vowel / sizeof &tk_cons[0]); j++ ) printf("%s3%s2\n",tk_vowel[i], tk_vowel[j]); /* prohibit hyphen after disguised single vowels at start of word */ for (i=0; i<(sizeof tk_vowel / sizeof &tk_vowel[0]); i++ ) if (strlen(tk_vowel[i])>1) printf(".%s2\n",tk_vowel[i]); /* a couple of consonant-clusters */ printf("tu4r4k\nm1t4rak\n"); /* terminate the patterns. */ printf("}\n"); /* restore # as parameter symbol */ printf("\\catcode`\\#=6"); }