Blame


1 b2ad2ef1 2005-01-04 devnull /* Make this with: lex delatex.lex; cc lex.yy.c -ll -o delatex */
2 b2ad2ef1 2005-01-04 devnull L [A-Za-z]
3 b8e710da 2005-01-30 devnull %Start Display Math Normal Tag VerbPlus Bracket
4 b2ad2ef1 2005-01-04 devnull %%
5 b2ad2ef1 2005-01-04 devnull <Normal>\' {yyleng--; yymore(); /* ignore apostrophes */}
6 b2ad2ef1 2005-01-04 devnull <Normal>{L}+\\- {yyleng-=2; yymore(); /* ignore hyphens */}
7 b8e710da 2005-01-30 devnull <Normal>[a-zA-Z0-9_]+@[a-zA-Z0-9_.]+ ; /* ignore email addresses */
8 b2ad2ef1 2005-01-04 devnull <Normal>[a-z]/[^A-Za-z] ; /* ignore single letter "words" */
9 b2ad2ef1 2005-01-04 devnull <Normal>[A-Z]+ ; /* ignore words all in uppercase */
10 b2ad2ef1 2005-01-04 devnull <Normal>{L}+('{L}*)*{L} {printf("%s\n",yytext); /* any other letter seq is a word */}
11 b2ad2ef1 2005-01-04 devnull <Normal>"%".* ; /* ignore comments */
12 b2ad2ef1 2005-01-04 devnull <Normal>\\{L}+ ; /* ignore other control sequences */
13 b2ad2ef1 2005-01-04 devnull <Normal>"\\begin{" BEGIN Tag; /* ignore this and up to next "}" */
14 b2ad2ef1 2005-01-04 devnull <Normal>"\\bibitem{" BEGIN Tag;
15 b2ad2ef1 2005-01-04 devnull <Normal>"\\bibliography{" BEGIN Tag;
16 b2ad2ef1 2005-01-04 devnull <Normal>"\\bibstyle{" BEGIN Tag;
17 b2ad2ef1 2005-01-04 devnull <Normal>"\\cite{" BEGIN Tag;
18 b2ad2ef1 2005-01-04 devnull <Normal>"\\end{" BEGIN Tag;
19 b2ad2ef1 2005-01-04 devnull <Normal>"\\include{" BEGIN Tag;
20 b2ad2ef1 2005-01-04 devnull <Normal>"\\includeonly{" BEGIN Tag;
21 b2ad2ef1 2005-01-04 devnull <Normal>"\\input{" BEGIN Tag;
22 b2ad2ef1 2005-01-04 devnull <Normal>"\\label{" BEGIN Tag;
23 b2ad2ef1 2005-01-04 devnull <Normal>"\\pageref{" BEGIN Tag;
24 b2ad2ef1 2005-01-04 devnull <Normal>"\\ref{" BEGIN Tag;
25 b8e710da 2005-01-30 devnull <Normal>"\\verb+" BEGIN VerbPlus;
26 b8e710da 2005-01-30 devnull <Normal>"\\documentclass[" BEGIN Bracket;
27 b8e710da 2005-01-30 devnull <Normal>"\\documentclass{" BEGIN Tag;
28 b8e710da 2005-01-30 devnull <Normal>"\\usepackage[" BEGIN Bracket;
29 b8e710da 2005-01-30 devnull <Normal>"\\usepackage{" BEGIN Tag;
30 b8e710da 2005-01-30 devnull <Bracket>[^\]] ;
31 b8e710da 2005-01-30 devnull <Bracket>"][" ;
32 b8e710da 2005-01-30 devnull <Bracket>"]{" BEGIN Tag;
33 b8e710da 2005-01-30 devnull <Bracket>"]" BEGIN Normal;
34 b2ad2ef1 2005-01-04 devnull <Tag>[^}] ; /* ignore things up to next "}" */
35 b2ad2ef1 2005-01-04 devnull <Tag>"}" BEGIN Normal;
36 b8e710da 2005-01-30 devnull <VerbPlus>[^+] ; /* ignore thing up to next "+" */
37 b8e710da 2005-01-30 devnull <VerbPlus>"+" BEGIN Normal;
38 b2ad2ef1 2005-01-04 devnull <Normal>[0-9]+ ; /* ignore numbers */
39 b2ad2ef1 2005-01-04 devnull <Normal>"\\(" BEGIN Math; /* begin latex math mode */
40 b2ad2ef1 2005-01-04 devnull <Math>"\\)" BEGIN Normal; /* end latex math mode */
41 b2ad2ef1 2005-01-04 devnull <Math>.|\\[^)]|\n ; /* ignore anything else in latex math mode */
42 b2ad2ef1 2005-01-04 devnull <Normal>"\\[" BEGIN Display; /* now in Latex display mode */
43 b2ad2ef1 2005-01-04 devnull <Display>[^$]|\\[^\]] ; /* ignore most things in display math mode */
44 b2ad2ef1 2005-01-04 devnull <Display>"\\]" BEGIN Normal; /* get out of Display math mode */
45 b2ad2ef1 2005-01-04 devnull <Normal>\\. ; /* ignore other single character control sequences */
46 b2ad2ef1 2005-01-04 devnull <Normal>\\\n ; /* more of the same */
47 b2ad2ef1 2005-01-04 devnull <Normal>\n|. ; /* ignore anything else, a character at a time */
48 b2ad2ef1 2005-01-04 devnull %%
49 b2ad2ef1 2005-01-04 devnull #include <stdio.h>
50 b2ad2ef1 2005-01-04 devnull #include <stdlib.h>
51 b2ad2ef1 2005-01-04 devnull
52 b2ad2ef1 2005-01-04 devnull int
53 b2ad2ef1 2005-01-04 devnull main(int argc, char **argv)
54 b2ad2ef1 2005-01-04 devnull {
55 b2ad2ef1 2005-01-04 devnull int i;
56 b2ad2ef1 2005-01-04 devnull
57 b2ad2ef1 2005-01-04 devnull if (argc==1) {
58 b2ad2ef1 2005-01-04 devnull yyin = stdin;
59 54dd92be 2008-01-30 rsc BEGIN Normal; /* Starts yylex off in the right state */
60 b2ad2ef1 2005-01-04 devnull yylex();
61 b2ad2ef1 2005-01-04 devnull }
62 b2ad2ef1 2005-01-04 devnull else for (i=1; i<argc; i++) {
63 b2ad2ef1 2005-01-04 devnull yyin = fopen(argv[i],"r");
64 b2ad2ef1 2005-01-04 devnull if (yyin==NULL) {
65 b2ad2ef1 2005-01-04 devnull fprintf(stderr,"can't open %s\n",argv[i]);
66 b2ad2ef1 2005-01-04 devnull exit(1);
67 b2ad2ef1 2005-01-04 devnull }
68 54dd92be 2008-01-30 rsc BEGIN Normal; /* Starts yylex off in the right state */
69 b2ad2ef1 2005-01-04 devnull yylex();
70 b2ad2ef1 2005-01-04 devnull }
71 b2ad2ef1 2005-01-04 devnull exit(0);
72 b2ad2ef1 2005-01-04 devnull }
73 b2ad2ef1 2005-01-04 devnull int
74 b2ad2ef1 2005-01-04 devnull yywrap(void)
75 b2ad2ef1 2005-01-04 devnull {
76 b2ad2ef1 2005-01-04 devnull return 1;
77 b2ad2ef1 2005-01-04 devnull }