www.pudn.com > LexYaccProgs.zip > MAGIC.L
%{
(* Lex demonstration program for the use of start states, taken from the UNIX
manual. This program copies standard input to standard output, and changes
the word `magic' to `first', `second' or `third' on any line that starts
with the letter a, b or c, respectively.
Try it out, e.g., by issuing the command `magic' and typing in the following
lines:
This is a magic word.
a This is a magic word.
b This is a magic word.
c This is a magic word.
The respond should be:
This is a magic word.
a This is a first word.
b This is a second word.
c This is a third word.
To compile this program: lex magic
tpc magic
*)
uses LexLib;
%}
%S AA BB CC
%%
^a begin
echo; start(AA);
end;
^b begin
echo; start(BB);
end;
^c begin
echo; start(CC);
end;
\n begin
echo; start(0);
end;
magic write('first');
magic write('second');
magic write('third');
. echo;
%%
begin
if yylex=0 then ;
end.