1. Fedora Live masaüstüne gelince terminal açılır.
2. Terminalde sırasıyla aşağıdaki komutları çalıştırılmalıdır.
3. Admin olarak başlatılıp, tüm paketleri yüklenmelidir.
3. Admin olarak başlatılıp, tüm paketleri yüklenmelidir.
[liveuser@localhost ~]$ su – [root@localhost ~]# dnf install gcc flex flex static bison nano -y
which
ile yüklü paketlerin yolunu görülebilir.
/bin/gcc
[root@localhost ~]# which gcc
/bin/flex
[root@localhost ~]# which flex
/bin/bison
[root@localhost ~]# which bison
%{
//ornek.lex
#include
int satirSayisi=1;
float temp_kucuk=FLT_MAX; //En kucuk sayiyi max sayiyla
float temp_buyuk=-FLT_MAX; //En buyuk sayiyi max negatif sayiyla
int satir_kucuk; // En kucuk satir sayisi
int satir_buyuk; // En buyuk satir sayisi
int pozNegSayisi=0;
%}
%%
. ;
[\n]* {
satirSayisi++;
}
[+-]?[0-9]*(\.)?[0-9]*[\.] {
pozNegSayisi++;
if(atof(yytext)<temp_kucuk) //Kucukse temp e at..
{
temp_kucuk=atof(yytext);
satir_kucuk=satirSayisi;
}
if(atof(yytext)>temp_buyuk) //Buyukse temp e at..
{
temp_buyuk=atof(yytext);
satir_buyuk=satirSayisi;
}
}
%%
void main(int argc, char **argv)
{
yylex();
printf("En Kucuk: %f Satir Sayisi: %d\n",temp_kucuk,satir_kucuk);
printf("En Buyuk: %f Satir Sayisi: %d\n",temp_buyuk,satir_buyuk);
printf("Pozitif ve Negatif Sayisi: %d\n",pozNegSayisi);
}
[liveuser@localhost ~]$ ls
Home
listesinde dosyalar arasında lex.yy.c isimli bir dosya olmayacak.
[liveuser@localhost ~]$ flex ornek.lex [liveuser@localhost ~]$ ls
Home
listesinde dosyalar arasında lex.yy.c isimli bir dosya olacak.
[liveuser@localhost ~]$ cat lex.yy.c
lex.yy.c
dosyasının
içeriği terminale yansıyacak.
[liveuser@localhost ~]$ gcc –o ornek.x lex.yy.c –lfl [liveuser@localhost ~]$ ls
Home
listesinde dosyalar arasında ornek.x isimli bir dosya olacak.
[liveuser@localhost ~]$ ./ornek.x
lex kodunu çalıştırmak için kullanılacak.
[liveuser@localhost ~]$ ./ornek.x < data.txt
lex kodunu bir dosyadan okuyarak çalıştırmak için
kullanılacak.
Bir sonraki yazımda görüşmek üzere...
![]() |
| Linux Bash komut çalıştırma simülasyonu |
Bir sonraki yazımda görüşmek üzere...

