-
1.
+3 -1Merhaba panpalarım,
Daha önce AVR için bytecode interpreted bir dil yazdığımdan bahsetmiştim, Assembler'ın kodunda ufak bir sıkıntı yaşadım.
Bahsettiğim kod şu:
https://hastebin.com/umucubebaj.cpp
Ne işe yaradığına gelirsek:
Bu fonksiyonu komutları işlerken çağıracağım, örneğin MOVE BYTE 0 #10 komutunu işlerken çağırdığımda "0"ı TYPE_IMM olarak, "#10"u TYPE_MEM olarak döndürmesini istiyorum.
Yani sırasıyla get_type("0") ve get_type("#10") olarak iki çağrı yapıldığında fonksiyon sırasıyla TYPE_IMM ve TYPE_MEM olarak değer döndürmeli.
Kısacası sayının başında # veya $ varsa TYPE_MEM, yoksa TYPE_IMM döndürmesini istiyorum.
Buraya kadar sorun yok, mesele hata kontrolünde. Eğer MOVE BYTE 0 $iNCi ya da MOVE BYTE SERKAN #0 yazarsam ne olacak?
Bunun için anlayacağınız üzere stringi sayılar harici bir şey bulması için taratıyorum fakat aynı kodu iki kere kullanmak güzel görünmüyor.
Fonksiyonun yaptığı basit, eğer ilk karakter harici karakterlerin tamamı rakamsa ve ilk karakter # veya $ ise TYPE_MEM döndürüyor, bu koşul sağlanmazsa ve karakterlerin tamamı rakamsa TYPE_IMM döndürüyor, bu koşul da sağlanmazsa derleme hatası veriyor.
Fakat taramayı iki defa yapmam gibi sebeplerden bir türlü hoşuma gitmedi. Bunu nasıl daha güzel ve düzgün görünecek şekilde yazarım? -
2.
+2(vid: )
-
-
1.
0Panpa editlemeden önce yazdığın çözüm çok mantıklıydı, daha iyisini bulana kadar bu işime yarar şuku.
-
-
1.
0xd xd xd
-
1.
-
1.
-
3.
0Takma kafana geçer be kız mı yok sana olum
-
4.
0anasini gibtigimin yeri kafasina gore kesip biciyo yazdiklarimizi. suraya attim https://pastebin.com/aYSaZfBG std yi import etmeyi de unutma.
-
-
1.
+1Panpa güzel ama regex yanlış gibi. Dahası sadece ilk karakterde değil tüm karakterlerde kontrol ediyor yani buna göre 0#1 legal oluyor.
-
-
1.
0dogru basina ^ gelecek ^($|#)|$[0-9]+
-
1.
-
1.
-
5.
0siz biliyonuz bu işleri
başlık yok! burası bom boş!