dnl Diese Datei gibt den fuchischen Text lautumschrieben aus. define(`exclparen', `512') define(`parenexcl', `513') define(`colonparen', `514') define(`parencolon', `515') define(`asterparen', `516') define(`parenaster', `517') define(`questparen', `518') define(`parenquest', `519') define(`dashparen', `520') define(`parendash', `521') define(`exclbracket',`522') define(`bracketexcl',`523') define(`nixparen', `524') define(`parennix', `525') define(`nixbracket', `526') define(`bracketnix', `527') define(`endl', `13') define(`replacethis',`-1') define(`WANF2', `597') define(`WANF', `598') define(`WEND', `599') define(`nsilb', `600') define(`msilb', `601') define(`Nsilb', `602') define(`Nback', `603') define(`nj', `604') define(`chi', `605') define(`kj', `606') define(`esh', `607') define(`zhe', `608') define(`wa', `609') define(`schwa', `610') define(`vokalu', `611') define(`vokali', `612') define(`jot', `613') define(`gj', `614') define(`vll', `615') define(`vlr', `616') define(`vln', `617') define(`vlm', `618') define(`vlN', `619') define(`DTai', `620') define(`DTau', `621') define(`DTei', `622') define(`DToi', `623') define(`DTou', `624') define(`DTyi', `625') define(`GLOT', `626') dnl Die folgenden werden für die Berechnung der Betonung benutzt: define(`STRESS_LLE', `627') dnl Läufer links even define(`STRESS_LLO', `628') dnl Läufer links odd define(`STRESS_LR', `629') dnl Läufer rechts define(`STRESS_MS', `630') dnl main stress (bleibt stehen) define(`STRESS_LS', `631') dnl last syllable define(`STRESS_SS', `632') dnl subsid. stress (bleibt stehen) define(`STRESS_LLOH',`633') dnl llo-help define(`STRESS_LLEH',`634') dnl lle-help define(`STRESS_MSH', `635') dnl ms-help dnl Affrikaten: define(`AFts', `636') define(`AFtz', `637') define(`AFtesh', `638') define(`AFkx', `639') define(`AFqX', `640') define(`AFkj', `641') define(`AFgj', `642') dnl Mehr: define(`capL', `643') define(`vlcapL', `644') define(`capLsilb', `645') define(`lsilb', `646') define(`rsilb', `647') dnl Mehr Affrikaten: define(`AFpf', `648') define(`std', `15 -100 -100 -100 -100 -100 -100') fuchon "\fuch" end fuchoff "\nofuch" end wbox "\wordbox{"replacethis"} " end dnl WEND wird als Wortendeindikator benutzt. translate WEND becomes "" . end translate WANF becomes "" . end translate WANF2 becomes "" . end dnl Die folgende Anweisung deklariert Buchstaben als Variablen. var -512 -256 dnl Kategorien: define(`VOWEL1', `-256') define(`VOICED', `-257') define(`VOICELESS', `-258') define(`VAR1', `-259') define(`VOWEL2', `-260') define(`VOWEL3', `-261') define(`NASAL1', `-262') define(`NOVOWEL', `-263') define(`NOVOWEL2', `-264') define(`PLOSIVWOKJ',`-265') define(`VPLOSIVWOGJ',`-266') define(`FRIKAT', `-267') define(`VLLVLR', `-268') define(`NOSTRESS', `-269') define(`STRESS1', `-271') define(`STRESS2', `-272') define(`ALLSTRESS', `-273') define(`NOSTRESSLR', `-274') define(`FRIKAT2', `-275') constraint STRESS1 (or STRESS_LLO STRESS_LLE STRESS_LLEH STRESS_LR STRESS_LLOH STRESS_LS ) constraint STRESS2 STRESS1 constraint ALLSTRESS (or STRESS1 STRESS_MS STRESS_SS) constraint NOSTRESSLR (not STRESS_LR) constraint VOWEL1 (or \a \e vokali \o vokalu \y WANF WANF2 schwa) constraint VOWEL2 VOWEL1 constraint VOWEL3 VOWEL1 constraint NASAL1 (or \n \m \N Nback nsilb msilb Nsilb nj vln vlm vlN) constraint VOICED (or VOWEL1 NASAL1 \l \g \r zhe \d \b \G gj) constraint VOICELESS (or \s \f esh \x \z \k \t \p \q kj WEND vll vlr vln vlm vlN vlcapL ) constraint NOVOWEL (and (not VOWEL1) (not ALLSTRESS)) constraint NOVOWEL2 NOVOWEL constraint PLOSIVWOKJ (or \t \d \k \g \p \b \G \q gj) constraint VPLOSIVWOGJ (and VOICED PLOSIVWOKJ (not gj)) constraint FRIKAT (or \f \s \z esh) constraint FRIKAT2 FRIKAT constraint VLLVLR (or vll vlr vlcapL) constraint NOSTRESS (or nsilb msilb Nsilb lsilb capLsilb rsilb schwa) dnl Eine Sache, die vorher nicht verwendet wurde: Variablen bei replace- dnl Befehlen: Werte zwischen -256 und -512 werden vor dem Parsen auf dnl ,undefiniert' gesetzt und werden beim Parsen mit gelesenen Matches dnl instantiiert. Dadurch kann man z.B., zwei gleiche Buchstaben werden dnl einer' wie folgt schreiben: A A dnl Zunächst die Kurzschreibweisen auflösen (werden wahrscheinlich wieder dnl ganauso zusammengefaßt, aber wer weiß): replace "t" becomes "dd" end replace "k" becomes "gg" end replace "q" becomes "GG" end replace "p" becomes "bb" end replace end replace "°" becomes end replace ")" becomes WEND parennix end replace "]" becomes WEND bracketnix end replace "(" becomes nixparen WANF end replace "[" becomes nixbracket WANF end replace "c" becomes esh end replace "j" becomes zhe end replace end replace "!" nixparen becomes exclparen end replace "!" nixparen becomes exclparen end replace parennix "!" becomes WEND parenexcl end replace ":" nixparen becomes colonparen end replace parennix ":" becomes WEND parencolon end replace "*" nixparen becomes asterparen end replace parennix "*" becomes WEND parenaster end replace "?" nixparen becomes questparen end replace parennix "?" becomes WEND parenquest end replace "-" nixparen becomes dashparen end replace parennix "-" becomes WEND parendash end replace "!" nixbracket becomes exclbracket end replace bracketnix "!" becomes WEND bracketexcl end replace end dnl i -> vokali, jot dnl u -> vokalu, wa replace VOWEL1 "uu" becomes VOWEL1 wa vokalu end replace VOWEL1 "ii" becomes VOWEL1 jot vokali end replace "u" VOWEL1 becomes wa VOWEL1 end replace "i" VOWEL1 becomes jot VOWEL1 end replace "ii" becomes jot vokali end dnl nicht: replace "uu" becomes wa vokalu end replace "i" becomes vokali end replace "u" becomes vokalu end replace end dnl Sonderregel für (KJ), K,J Konsonanten replace WANF NOVOWEL NOVOWEL2 WEND becomes WANF NOVOWEL schwa NOVOWEL2 WEND end replace end replace "g" VOICELESS becomes "k" VOICELESS end replace VOICELESS "g" becomes VOICELESS "k" end replace "gg" becomes "k" end replace "gh" becomes "k" end replace "G" VOICELESS becomes "q" VOICELESS end replace VOICELESS "G" becomes VOICELESS "q" end replace "GG" becomes "q" end replace "Gh" becomes "q" end replace "b" VOICELESS becomes "p" VOICELESS end replace VOICELESS "b" becomes VOICELESS "p" end replace "bb" becomes "p" end replace "bh" becomes "p" end replace "d" VOICELESS becomes "t" VOICELESS end replace VOICELESS "d" becomes VOICELESS "t" end replace "dd" becomes "t" end replace "dh" becomes "t" end replace zhe VOICELESS becomes esh VOICELESS end replace VOICELESS zhe becomes VOICELESS esh end replace jot VOICELESS becomes chi VOICELESS end replace VOICELESS jot becomes VOICELESS chi end replace "xx" becomes chi end replace PLOSIVWOKJ chi becomes kj chi end replace \n kj becomes nj kj end replace \n gj becomes nj gj end replace VPLOSIVWOGJ jot becomes gj jot end replace FRIKAT FRIKAT becomes FRIKAT end replace FRIKAT FRIKAT2 WEND becomes FRIKAT schwa FRIKAT2 WEND end dnl Nasalbehandlung dnl G-Umgebung: replace \N \G becomes Nback \G end replace \G \N becomes \G Nback end replace \l \G becomes capL \G end replace \G \l becomes \G capL end dnl Der letzte gewinnt: replace NASAL1 \n becomes \n end replace NASAL1 \m becomes \m end replace NASAL1 \N becomes \N end replace NASAL1 nj becomes nj end replace NASAL1 Nback becomes Nback end dnl ehemalige Silbisierung, jetzt mit Schwa: replace NOVOWEL \n NOVOWEL2 becomes NOVOWEL schwa \n NOVOWEL2 end replace NOVOWEL \m NOVOWEL2 becomes NOVOWEL schwa \m NOVOWEL2 end replace NOVOWEL \N NOVOWEL2 becomes NOVOWEL schwa \N NOVOWEL2 end replace NOVOWEL nj NOVOWEL2 becomes NOVOWEL schwa nj NOVOWEL2 end replace NOVOWEL Nback NOVOWEL2 becomes NOVOWEL schwa Nback NOVOWEL2 end dnl l und r: replace NOVOWEL \l WEND becomes NOVOWEL schwa \l WEND end replace NOVOWEL \r WEND becomes NOVOWEL schwa \r WEND end replace NOVOWEL capL WEND becomes NOVOWEL schwa capL WEND end replace NOVOWEL \l NOVOWEL2 becomes NOVOWEL vll NOVOWEL2 end replace NOVOWEL \r NOVOWEL2 becomes NOVOWEL vlr NOVOWEL2 end replace NOVOWEL capL NOVOWEL2 becomes NOVOWEL vlcapL NOVOWEL2 end dnl Stimmverlust der Nasale mit l und r: replace "n" VLLVLR becomes vln VLLVLR end replace "m" VLLVLR becomes vlm VLLVLR end replace "N" VLLVLR becomes vlN VLLVLR end dnl h-Behandlung: replace "hh" becomes GLOT end replace NOVOWEL "h" becomes NOVOWEL end replace VAR1 VAR1 becomes VAR1 end replace end dnl 3.) Betonung: replace WANF becomes WANF2 STRESS_LLO end dnl vorne->hinten replace STRESS_LLO NOSTRESS becomes NOSTRESS STRESS_LLO end replace STRESS_LLO VOWEL1 becomes STRESS_MS VOWEL1 STRESS_LLOH end replace STRESS_LLOH VOWEL1 becomes VOWEL1 STRESS_LLOH end replace STRESS_LLOH becomes STRESS_LLE end replace STRESS_LLE NOSTRESS becomes NOSTRESS STRESS_LLE end replace STRESS_LLE VOWEL1 becomes VOWEL1 STRESS_LLEH end replace STRESS_LLEH VOWEL1 becomes VOWEL1 STRESS_LLEH end replace STRESS_LLEH becomes STRESS_LLO end dnl Kommen wir hinten an und warten auf eine betonte Silbe, so ist die dnl davor (die letzte des Wortes) unbetont. Damit ist die Verarbeitung dnl beendet: replace STRESS_LLO WEND becomes end dnl Sonst wieder zurück und die erste Betonung, die wir finden löschen. dnl Es gibt garantiert eine, sonst wäre kein STRESS_LLE-Läufer da. replace STRESS_LLE WEND becomes STRESS_LR end dnl Also zurücklaufen: replace NOSTRESS STRESS_LR becomes NOSTRESS end dnl Sonderregel replace STRESS_MS STRESS_LR becomes end replace WANF2 STRESS_LR becomes WANF2 end replace VAR1 STRESS_LR becomes STRESS_LR VAR1 end dnl Standard: laufen, wiedernameschonsagt replace STRESS_LLO VAR1 becomes VAR1 STRESS_LLO end replace STRESS_LLE VAR1 becomes VAR1 STRESS_LLE end dnl Betonungszeichen laufen bis vor den letzten Konsonanten zurück: dnl funktioniert nicht gut, da er nicht weiß, wo Silben aufhören: dnl manuell: 1. Halbvokale: dnl replace jot STRESS_MS becomes STRESS_MS jot end dnl replace wa STRESS_MS becomes STRESS_MS wa end dnl dnl 2. Affrikaten: dnl replace \t esh STRESS_MS becomes STRESS_MSH \t esh end dnl replace \t \s STRESS_MS becomes STRESS_MSH \t \s end dnl replace \k \s STRESS_MS becomes STRESS_MSH \k \s end dnl replace kj chi STRESS_MS becomes STRESS_MSH kj chi end dnl replace \k \x STRESS_MS becomes STRESS_MSH \k \x end dnl replace \d zhe STRESS_MS becomes STRESS_MSH \d zhe end dnl dnl 2. sonst nur noch einen Schritt: dnl replace NOVOWEL STRESS_MS becomes STRESS_MSH NOVOWEL end replace end dnl wenn sonst nichts geht: dnl------------------------ dnl 1.) Diphthonge: replace "a" vokali becomes DTai end replace "a" vokalu becomes DTau end replace "e" vokali becomes DTei end replace "o" vokali becomes DToi end replace "o" vokalu becomes DTou end replace "y" vokali becomes DTyi end dnl 2.) Affrikaten: replace "ts" becomes AFts end replace "pf" becomes AFpf end replace "tz" becomes AFtz end replace "t" esh becomes AFtesh end replace "kx" becomes AFkx end replace "qx" becomes AFqX end replace kj chi becomes AFkj end replace gj jot becomes AFgj end dnl Wortenden der besonderen Art: replace NOVOWEL "h" WEND becomes NOVOWEL schwa "h" end dnl Default-Regel für Doppeltes: translate nsilb becomes "\ubar{n}" . end translate msilb becomes "\ubar{m}" . end translate Nsilb becomes "\ubar{\eng}" . end translate lsilb becomes "\ubar{l}" . end translate rsilb becomes "\ubar{r}" . end translate capLsilb becomes "\ubar{\scl}" . end translate \N becomes "\eng{}" . end translate \y becomes "\scy{}" . end translate \e becomes "\niepsilon{}" . end translate nj becomes "\n`'j{}" . end translate Nback becomes "\scn{}" . end translate kj becomes "c" . end translate esh becomes "\es`'h{}" . end translate zhe becomes "\yogh{}" . end translate \G becomes "\scg{}" . end translate \g becomes "\scriptg{}" . end translate \o becomes "\openo{}" . end translate \z becomes "\nitheta{}" . end translate wa becomes "w" . end translate chi becomes "\c c" . end translate \f becomes "f\-" . end translate schwa becomes "\schw`'a{}" . end translate vokalu becomes "u" . end translate wa becomes "w" . end translate vokali becomes "\sci{}" . end translate jot becomes "j" . end translate gj becomes "\invf{}" . end translate vll becomes "\uring{l}" . end translate vlr becomes "\uring{r}" . end translate vln becomes "\uring{n}" . end translate vlm becomes "\uring{m}" . end translate vlN becomes "\uring{\eng}" . end translate vlcapL becomes "\uring{\scl}" . end translate capL becomes "\scl{}" . end translate DTai becomes "{\ubow{a\sci}}" . end translate DTau becomes "{\ubow{au}}" . end translate DTei becomes "{\ubow{\niepsilon\sci}}" . end translate DToi becomes "{\ubow{\openo{}\sci}}" . end translate DTou becomes "{\ubow{\openo{}\niupsilon}}" . end translate DTyi becomes "{\ubow{\scy{}\sci}}" . end translate GLOT becomes "\glotstop{}" . end translate AFts becomes "\ubow{ts}" . end translate AFpf becomes "\ubow{pf}" . end translate AFtz becomes "\ubow{\dental{t}\nitheta}" . end translate AFtesh becomes "\ubow{t\kern-0.08em\es`'h}\kern-0.04em{}" . end translate AFkx becomes "\ubow{kx}" . end translate AFqX becomes "\ubow{q\nichi}" . end translate AFkj becomes "\ubow{c\c{c}}" . end translate AFgj becomes "\ubow{\invf\curlyj}" . end changequote(,) translate STRESS_MS becomes "\kern-.08em\stress\kern-.08em" . end changequote(`,') dnl translate STRESS_MSH becomes "\stress{}" . end dnl translate STRESS_SS becomes "\secstress{}" . end dnl translate nixparen becomes . "(" end dnl translate parennix becomes . ")" end dnl translate nixbracket becomes . "[" end dnl translate bracketnix becomes . "]" end dnl translate exclparen becomes . "!(" end dnl translate parenexcl becomes . ")!" end dnl translate colonparen becomes . ":(" end dnl translate parencolon becomes . "):" end dnl translate asterparen becomes . "*(" end dnl translate parenaster becomes . ")*" end dnl translate questparen becomes . "?(" end dnl translate parenquest becomes . ")?" end dnl translate exclbracket becomes . "![" end dnl translate bracketexcl becomes . "]!" end translate nixparen becomes . "" end translate parennix becomes . "" end translate nixbracket becomes . "[" end translate bracketnix becomes . "]" end translate exclparen becomes . "!(" end translate parenexcl becomes . ")!" end translate colonparen becomes . ":" end translate parencolon becomes . ":" end translate asterparen becomes . "*" end translate parenaster becomes . "*" end translate questparen becomes . "?" end translate parenquest becomes . "?" end translate exclbracket becomes . "![" end translate bracketexcl becomes . "]!" end translate "[" becomes "\char91{}" . end translate "]" becomes "\char93{}" . end translate "!" becomes "\char33{}" . end startchar songdigh u nixparen std none none none startchar songdigh2 u exclparen std none none none endchar sandigh u parennix std none none none endchar sandigh2 u parenexcl std none none none startchar flungdigh u nixbracket std none none none startchar flungdigh2 u exclbracket std none none none endchar flungsandigh u bracketnix std none none none endchar flungsandigh2 u bracketexcl std none none none startchar fursandigh u colonparen std none none none endchar furdigh u parencolon std none none none startchar buldigh u dashparen std none none none endchar bulsandigh u parendash std none none none startchar gahdigh u asterparen std none none none endchar gahsandigh u parenaster std none none none startchar reserve\( u questparen std none none none endchar reserve\) u parenquest std none none none