1%%%%%%%%%%%%%%%%%%%%%%%%%%% hescan.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2% yiddish.sty 3% experimental scanner for Yiddish ASCII files 4% to activate it, say "\setcode {yiddish} 5% 14.06.2000 6%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 7% (c) Klaus Lagally 8% Institut fuer Informatik 9% Universitaet Stuttgart 10%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 11 12\ifx \yidatcode \undefined \else \xpa \endinput \fi 13 14\chardef \yidatcode = \catcode`\@ \catcode`\@ = 11 15 16\a@ident {yiddish.sty} 17{3.10 scanner for YIVO Yiddish encoding} {14.06.2000} 18 19%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 20% dynamic definitions for Hebrew 21{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 22%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 23\gdef \setyid@codes {\seta@codes % activate and change some codes 24\globaldefs=1 25%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 26\def \sc@a {Q"a} \def \sc@b {b} 27\def \sc@c {@} \def \sc@d {d} 28\def \sc@e {P} \def \sc@f {f\n@xp\a@Zo} 29\def \sc@g {g} \def \sc@h {h} 30\def \sc@i {y} \def \sc@j {@} 31\def \sc@k {q} \def \sc@l {l} 32\def \sc@m {m} \def \sc@n {n} 33\def \sc@o {Q"A}\def \sc@p {\n@xp\a@f} 34\def \sc@q {@} \def \sc@r {r} 35\def \sc@s {s} \def \sc@t {t} 36\def \sc@u {w} \def \sc@v {\n@xp\a@w} 37\def \sc@w {w} \def \sc@x {@} 38\def \sc@y {y} \def \sc@z {z} 39% 40\xpa \def \csname sc@`\endcsname {Q} 41\a@digits = {0123456789} \a@paren = {()[]} \a@first = {} 42\globaldefs=0 43} 44%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 45}% end of dynamic definitions for Hebrew: oldcode and pccode 46%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 47 48\def \yid@scan #1>{% modified scanner call: token sequence -> \a@tokens 49\iftest@scan \tracingmacros = 1 50\ifshow \else \lowercase {\a@verb #1>}\fi\fi 51\global\def \a@rest {}\global\a@tokens = {}\@ssimfalse 52\novocalize \lowercase {\sc@beg #1\@ \@@ }% transform 53\iftest@scan \tracingmacros = 0 \xpa \a@verb \xpa (\the\a@tokens )>\fi } 54 55%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 56 57\gdef \yid@beg #1{% start \ArabTeX scanner 58 \def \next {\yid@word #1}% 59\case #1\of 60{iu {\def \sc@char {Q}\sc@put }% 61a {\def \next {\y@d@a}}% 62e {\def \next {\y@d@e}}% 63o {\def \next {\y@d@o}}% 64\default{\def \sc@char {@}}% 65}\endcase \next } 66 67\def \yid@word #1{% transform input into internal notation 68% \def \next {\yid@word }% 69\ifx #1\@ \def \next {\sc@endscan }\else 70\ifcat \nxp #1\relax \def \next {\yid@cs #1}\else % control sequence 71\apply \yid@next \tocase #1\of 72{ a{\yid@a }% 73 e{\yid@e }% 74 y{\yid@y }% 75 o{\yid@o }% 76 k{\yid@k }% 77 t{\yid@t }% 78 s{\yid@s }% 79 z{\yid@z }% 80 -{\yid@B }% 81\default {\yid@@word #1}% 82}\endcase 83\fi\fi \next } 84 85\def \yid@next #1{\def \next {#1}} 86 87\def \yid@@word #1{% transform input into internal notation 88\case #1\of 89{ `{\def \sc@char {Q}}% 90 "{\def \sc@char {\a@dq}}% 91\default {\ifcat \noexpand #1a\edef \sc@char {\csname sc@#1\endcsname }% 92 \else \def \sc@char {#1}\fi}% 93}\endcase 94\sc@put \yid@word }% 95 96\def \y@d@cs #1#2{% test word end 97\def \sc@char {#1}\sc@put 98\ifx #2\@ \def \next {\sc@endscan #2}\else 99\ifcat -\nxp #2 \def \next {\yid@word #2}\else 100\def \next {\sc@back #2}\fi \fi \next } 101 102\def \yid@cs #1#2{% control sequence within a word; push back? 103\xpa \ifx #1\closegeresh \def \next {\y@d@cs {\nxp \lq }#2}\else 104\xpa \ifx #1\closequote \def \next {\y@d@cs {`}#2}\else 105 \def \next {\sc@back #1#2}% 106\fi\fi \next } 107 108\def \yid@endscan \@@ {\global\let \a@scan \yid@scan } 109 110%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 111 112\def \y@d@a #1{% `ay ? 113\ifx #1y\def \sc@char {Q"\nxp\a@ZA}\def \next {\yid@word }\else 114\def \sc@char {Q"a}\def \next {\yid@word #1}% 115\fi \sc@put \next } 116 117\def \y@d@e #1{% `ey ? 118\ifx #1y\def \sc@char {Q"\nxp\a@ZE}\def \next {\yid@word }\else 119\def \sc@char {P}\def \next {\yid@word #1}% 120\fi \sc@put \next } 121 122\def \y@d@o #1{% `oy ? 123\ifx #1y\def \sc@char {Q"\nxp\a@ZO}\def \next {\yid@word }\else 124\def \sc@char {Q"A}\def \next {\yid@word #1}% 125\fi \sc@put \next } 126 127%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 128 129\def \yid@a #1{% ay ? 130\ifx #1y\def \sc@char {"\nxp\a@ZA}\def \next {\yid@word }\else 131\def \sc@char {Q"a}\def \next {\yid@word #1}% 132\fi \sc@put \next } 133 134\def \yid@e #1{% ey ? 135\ifx #1y\def \sc@char {"\nxp\a@ZE}\def \next {\yid@word }\else 136\def \sc@char {P}\def \next {\yid@word #1}% 137\fi \sc@put \next } 138 139\def \yid@y #1{% yi ? 140\ifx #1i\def \sc@char {yy"i}\def \next {\yid@word }\else 141\def \sc@char {y}\def \next {\yid@word #1}% 142\fi \sc@put \next } 143 144\def \yid@o #1{% oy ? 145\ifx #1y\def \sc@char {"\nxp\a@ZO}\def \next {\yid@word }\else 146\def \sc@char {Q"A}\def \next {\yid@word #1}% 147\fi \sc@put \next } 148 149\def \yid@k #1{% kh ? 150\ifx #1h\def \sc@char {k}\def \next {\yid@word }\else 151\def \sc@char {q}\def \next {\yid@word #1}% 152\fi \sc@put \next } 153 154\def \yid@t #1{% ts ? 155\ifx #1s\def \sc@char {S}\def \next {\yid@word }\else 156\def \sc@char {C}\def \next {\yid@word #1}% 157\fi \sc@put \next } 158 159\def \yid@s #1{% sh ? 160\ifx #1h\def \sc@char {\nxp\a@S}\def \next {\yid@word }\else 161\def \sc@char {s}\def \next {\yid@word #1}% 162\fi \sc@put \next } 163 164\def \yid@z #1{% zh ? 165\ifx #1h\def \sc@char {z\nxp\a@S}\def \next {\yid@word }\else 166\def \sc@char {z}\def \next {\yid@word #1}% 167\fi \sc@put \next } 168 169\def \yid@B #1{% -- ? 170\ifx #1-\def \sc@char {\a@end}\def \next {\yid@word }\else 171\def \sc@char {B}\def \next {\yid@word #1}% 172\fi \sc@put \next } 173 174%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 175 176\def \yid@select {% select the new scanner 177\heb@catcodes % inside hebtex.sty; to make sure 178\let \sc@beg \yid@beg \let \sc@word \yid@word 179\let \sc@back \sc@@back \let \sc@endscan \yid@endscan 180\setyid@codes \global\let \a@scan \yid@scan 181\a@message {input encoding set to YIVO Yiddish conventions}} 182 183%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 184 185\xpa \def \xpa \sc@table \xpa {\sc@table % add the Hebrew encodings 186yiddish\yid@select } 187 188%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 189 190\a@message {scanner for YIVO Yiddish installed.} 191 192\catcode `\@ = \yidatcode 193\endinput 194%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 195 196