%{
(* identyfikatory.l
Program rozpoznaje identyfikatory, liczby calkowite i liczby rzeczywiste
oraz wypisuje na wyjscie informacje,
w ktorej linii pliku wejsciowego sie znajduje *)
uses LexLib;
var
linia : integer;
%}
DIGIT [0-9]
ID [a-zA-Z][a-z0-9]*
NUMBER {DIGIT}+
REAL {NUMBER}\.{NUMBER}
%%
{ID} writeln('Identyfikator w linii', linia);
{NUMBER} writeln('Liczbe calkowita w linii ', linia);
{REAL} writeln('Liczba rzeczywista w linii ', linia);
\n begin
linia:=linia+1;
end;
. ;
%%
begin
linia:=1;
yylex;
writeln('----> Przeczytano ',linia,' linii');
end.