%%%%%%%%%%%%%%%%%%%%%%%%%%% hescan.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % yiddish.sty % experimental scanner for Yiddish ASCII files % to activate it, say "\setcode {yiddish} % 14.06.2000 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (c) Klaus Lagally % Institut fuer Informatik % Universitaet Stuttgart %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifx \yidatcode \undefined \else \xpa \endinput \fi \chardef \yidatcode = \catcode`\@ \catcode`\@ = 11 \a@ident {yiddish.sty} {3.10 scanner for YIVO Yiddish encoding} {14.06.2000} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % dynamic definitions for Hebrew {\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \gdef \setyid@codes {\seta@codes % activate and change some codes \globaldefs=1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def \sc@a {Q"a} \def \sc@b {b} \def \sc@c {@} \def \sc@d {d} \def \sc@e {P} \def \sc@f {f\n@xp\a@Zo} \def \sc@g {g} \def \sc@h {h} \def \sc@i {y} \def \sc@j {@} \def \sc@k {q} \def \sc@l {l} \def \sc@m {m} \def \sc@n {n} \def \sc@o {Q"A}\def \sc@p {\n@xp\a@f} \def \sc@q {@} \def \sc@r {r} \def \sc@s {s} \def \sc@t {t} \def \sc@u {w} \def \sc@v {\n@xp\a@w} \def \sc@w {w} \def \sc@x {@} \def \sc@y {y} \def \sc@z {z} % \xpa \def \csname sc@`\endcsname {Q} \a@digits = {0123456789} \a@paren = {()[]} \a@first = {} \globaldefs=0 } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% }% end of dynamic definitions for Hebrew: oldcode and pccode %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def \yid@scan #1>{% modified scanner call: token sequence -> \a@tokens \iftest@scan \tracingmacros = 1 \ifshow \else \lowercase {\a@verb #1>}\fi\fi \global\def \a@rest {}\global\a@tokens = {}\@ssimfalse \novocalize \lowercase {\sc@beg #1\@ \@@ }% transform \iftest@scan \tracingmacros = 0 \xpa \a@verb \xpa (\the\a@tokens )>\fi } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \gdef \yid@beg #1{% start \ArabTeX scanner \def \next {\yid@word #1}% \case #1\of {iu {\def \sc@char {Q}\sc@put }% a {\def \next {\y@d@a}}% e {\def \next {\y@d@e}}% o {\def \next {\y@d@o}}% \default{\def \sc@char {@}}% }\endcase \next } \def \yid@word #1{% transform input into internal notation % \def \next {\yid@word }% \ifx #1\@ \def \next {\sc@endscan }\else \ifcat \nxp #1\relax \def \next {\yid@cs #1}\else % control sequence \apply \yid@next \tocase #1\of { a{\yid@a }% e{\yid@e }% y{\yid@y }% o{\yid@o }% k{\yid@k }% t{\yid@t }% s{\yid@s }% z{\yid@z }% -{\yid@B }% \default {\yid@@word #1}% }\endcase \fi\fi \next } \def \yid@next #1{\def \next {#1}} \def \yid@@word #1{% transform input into internal notation \case #1\of { `{\def \sc@char {Q}}% "{\def \sc@char {\a@dq}}% \default {\ifcat \noexpand #1a\edef \sc@char {\csname sc@#1\endcsname }% \else \def \sc@char {#1}\fi}% }\endcase \sc@put \yid@word }% \def \y@d@cs #1#2{% test word end \def \sc@char {#1}\sc@put \ifx #2\@ \def \next {\sc@endscan #2}\else \ifcat -\nxp #2 \def \next {\yid@word #2}\else \def \next {\sc@back #2}\fi \fi \next } \def \yid@cs #1#2{% control sequence within a word; push back? \xpa \ifx #1\closegeresh \def \next {\y@d@cs {\nxp \lq }#2}\else \xpa \ifx #1\closequote \def \next {\y@d@cs {`}#2}\else \def \next {\sc@back #1#2}% \fi\fi \next } \def \yid@endscan \@@ {\global\let \a@scan \yid@scan } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def \y@d@a #1{% `ay ? \ifx #1y\def \sc@char {Q"\nxp\a@ZA}\def \next {\yid@word }\else \def \sc@char {Q"a}\def \next {\yid@word #1}% \fi \sc@put \next } \def \y@d@e #1{% `ey ? \ifx #1y\def \sc@char {Q"\nxp\a@ZE}\def \next {\yid@word }\else \def \sc@char {P}\def \next {\yid@word #1}% \fi \sc@put \next } \def \y@d@o #1{% `oy ? \ifx #1y\def \sc@char {Q"\nxp\a@ZO}\def \next {\yid@word }\else \def \sc@char {Q"A}\def \next {\yid@word #1}% \fi \sc@put \next } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def \yid@a #1{% ay ? \ifx #1y\def \sc@char {"\nxp\a@ZA}\def \next {\yid@word }\else \def \sc@char {Q"a}\def \next {\yid@word #1}% \fi \sc@put \next } \def \yid@e #1{% ey ? \ifx #1y\def \sc@char {"\nxp\a@ZE}\def \next {\yid@word }\else \def \sc@char {P}\def \next {\yid@word #1}% \fi \sc@put \next } \def \yid@y #1{% yi ? \ifx #1i\def \sc@char {yy"i}\def \next {\yid@word }\else \def \sc@char {y}\def \next {\yid@word #1}% \fi \sc@put \next } \def \yid@o #1{% oy ? \ifx #1y\def \sc@char {"\nxp\a@ZO}\def \next {\yid@word }\else \def \sc@char {Q"A}\def \next {\yid@word #1}% \fi \sc@put \next } \def \yid@k #1{% kh ? \ifx #1h\def \sc@char {k}\def \next {\yid@word }\else \def \sc@char {q}\def \next {\yid@word #1}% \fi \sc@put \next } \def \yid@t #1{% ts ? \ifx #1s\def \sc@char {S}\def \next {\yid@word }\else \def \sc@char {C}\def \next {\yid@word #1}% \fi \sc@put \next } \def \yid@s #1{% sh ? \ifx #1h\def \sc@char {\nxp\a@S}\def \next {\yid@word }\else \def \sc@char {s}\def \next {\yid@word #1}% \fi \sc@put \next } \def \yid@z #1{% zh ? \ifx #1h\def \sc@char {z\nxp\a@S}\def \next {\yid@word }\else \def \sc@char {z}\def \next {\yid@word #1}% \fi \sc@put \next } \def \yid@B #1{% -- ? \ifx #1-\def \sc@char {\a@end}\def \next {\yid@word }\else \def \sc@char {B}\def \next {\yid@word #1}% \fi \sc@put \next } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def \yid@select {% select the new scanner \heb@catcodes % inside hebtex.sty; to make sure \let \sc@beg \yid@beg \let \sc@word \yid@word \let \sc@back \sc@@back \let \sc@endscan \yid@endscan \setyid@codes \global\let \a@scan \yid@scan \a@message {input encoding set to YIVO Yiddish conventions}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \xpa \def \xpa \sc@table \xpa {\sc@table % add the Hebrew encodings yiddish\yid@select } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \a@message {scanner for YIVO Yiddish installed.} \catcode `\@ = \yidatcode \endinput %%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%