home *** CD-ROM | disk | FTP | other *** search
Lex Description | 1995-06-12 | 1.9 KB | 115 lines |
- %{
- /*************************************************
-
- lex/flex Spezifikation der Umwandlung
- von TeX nach NeXTSTEP Encoding
-
- Harald Schlangmann 1992
-
- *************************************************/
-
- %}
-
- %%
-
- %{
- /*************************************************
-
- Bei den Umlauten werden jeweils die
- folgenden Schreibweisen erkannt, einige
- davon (die letzten) sind ungebraeuchlich
- aber legal... Bsp., Umlaut ue:
-
- \"u
- "u
- \"u{}
- \"{u}
- {\"u}
-
- Das Eszet verhaelt sich anders, erlaubt
- sind die folgenden Schreibweisen:
-
- \ss[ \t\n]+ \ss inklusive der folgenden Leerzeichen
- \ss/[^a-zA-Z] will heissen \ss wenn keine Buchstaben folgen
- \ss{}
- {\ss}
- "s
-
- \3 wird nicht umgewandelt, da nicht eindeutig
- dem Eszet zuzuordnen...
-
- *************************************************/
-
- %}
-
- \\\"a |
- \"a |
- \\\"a\{\} |
- \\\"\{a\} |
- \{\\\"a\} /* ae */ putchar('\331');
-
- \\\"o |
- \"o |
- \\\"o\{\} |
- \\\"\{o\} |
- \{\\\"o\} /* oe */ putchar('\360');
-
- \\\"u |
- \"u |
- \\\"u\{\} |
- \\\"\{u\} |
- \{\\\"u\} /* ue */ putchar('\366');
-
- \\\"A |
- \"A |
- \\\"A\{\} |
- \\\"\{A\} |
- \{\\\"A\} /* Ae */ putchar('\205');
-
- \\\"O |
- \"O |
- \\\"O\{\} |
- \\\"\{O\} |
- \{\\\"O\} /* Oe */ putchar('\226');
-
- \\\"U |
- \"U |
- \\\"U\{\} |
- \\\"\{U\} |
- \{\\\"U\} /* Ue */ putchar('\232');
-
- \\ss[ \t\n]+ |
- \"s |
- \\ss\{\} |
- \{\\ss\} /* ss */ putchar('\373');
-
- %{
- /*************************************************
-
- Die folgende Regel arbeitet effizienter
- als der Lookahead mittels '/' und ver-
- meidet die Warnung 'variable trailing
- context' von flex.
-
- *************************************************/
-
- %}
-
- \\ss[^a-zA-Z] /* ss */ yyless(3); putchar('\373');
-
- %%
-
- main(int argc,char **argv) {
-
- ++argv, --argc; /* skip over program name */
- if( argc > 0 )
- yyin = fopen( argv[0], "r" );
- else
- yyin = stdin;
-
- yylex();
- }
-
-
-
-