DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T i

⟦0bded4599⟧ TextFile

    Length: 1402 (0x57a)
    Types: TextFile
    Names: »indexlex.l«

Derivation

└─⟦52210d11f⟧ Bits:30007239 EUUGD2: TeX 3 1992-12
    └─⟦c319c2751⟧ »unix3.0/TeX3.0.tar.Z« 
        └─⟦036c765ac⟧ 
            └─⟦this⟧ »TeX3.0/LaTeX/LaTeXindex/indexlex.l« 
└─⟦060c9c824⟧ Bits:30007080 DKUUG TeX 2/12/89
    └─⟦this⟧ »./tex82/LaTeX/LaTeXindex/indexlex.l« 
└─⟦52210d11f⟧ Bits:30007239 EUUGD2: TeX 3 1992-12
    └─⟦63303ae94⟧ »unix3.14/TeX3.14.tar.Z« 
        └─⟦c58930e5c⟧ 
            └─⟦this⟧ »TeX3.14/LaTeX/LaTeXindex/indexlex.l« 

TextFile

/* $Header: indexlex.l,v 1.3 87/08/25 13:45:14 control Exp $ */
/* Lex Lexical Analyzer for LaTeX index processor */
/* Roman numeral code written by John Renner (adobe!renner@decwrl.dec.com) */
%{
#undef input
#define input()	(((yytchar=yysptr>yysbuf?U(*--yysptr):getc(InputFile)) \
    ==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar)
%}
letter		[A-Za-z]
integer		-?[0-9]{1,9}
roman		[mdclxvi]+
whitespace	[ \t\n]
%%
\\indexentry		{
			    LineNo = EndLineNo;
			    return(INDEXENTRY);
			}
{roman}			{			
			    LineNo = EndLineNo;
			    strcpy(yylval.value, yytext);
			    return(ROMAN);
			}
\\{letter}+		{	/* Control word */
			    LineNo = EndLineNo;
			    strcpy(yylval.value, yytext);
			    return(CONTROLSEQUENCE);
			}
\\[^{letter}]		{	/* Control symbol */
			    LineNo = EndLineNo;
			    strcpy(yylval.value, yytext);
			    return(CONTROLSEQUENCE);
			}
{integer}		{
			    LineNo = EndLineNo;
			    strcpy(yylval.value, yytext);
			    return(INTEGER);
			}
\{ |
\} |
\,			{
			    LineNo = EndLineNo;
			    return(yytext[0]);
			}
{whitespace}+		{
			    char	*p;	/* Utility variable */

			    LineNo = EndLineNo;
			    for (p = yytext; *p; p++)
				if (*p == '\n')
				    EndLineNo++;
			    strcpy(yylval.value, yytext);
			    return(WHITESPACE);
			}
[^\\\{\}\, \t\n0-9]+	{
			    LineNo = EndLineNo;
			    strcpy(yylval.value, yytext);
			    return(STRING);
			}
%%