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 #includeint 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...