%{
(* 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.