^"
>#001p#"<>:#,_@#1-8*3:-1*57+55-1*79*57:-1:*77**278\-1:*57$p:1: error: declaration expected
Çevrimiçi deneyin !: Befunge-93 , C
Dosya adının çalışması için eşleşen tırnak işareti gerektirdiğini belirten randomdude999'a teşekkürler.
Yeni satırın ^"\n>#001p#"<>:#,_@#1-8*3:-1*57+55-1*79*57:-1:*77**278\-1:*57$p
bulunduğu dosya adının altına kaydedilmelidir \n
. Bu nedenle, TIO for C tam olarak tasarlandığı gibi çalışmaz. Lubuntu üzerinde çalıştığı test edildi.
Açıklama (C):
Program derlenemez ve tcc, hata iletisinin bir parçası olarak dosyanın adını mutlu bir şekilde çıkarır. Kodun başlangıcına bağlı olarak alabileceğiniz birden çok derleme hatası vardır. ^
başlangıçta bize declaration expected
kısa olan ve sorunlu karakterler içermeyen bir a verir "
. Öte yandan, gcc ve clang geliştiricileri çok kötümser ve bir kerede birden fazla hata vermeyi seçtiler, bu çok hoş değil, bu yüzden derleyicilerini kullanmıyoruz.
Açıklama (Befunge-93):
Befunge, "
dize modunu değiştiren komut sayesinde kodunun karakter verisi olarak da kullanılabileceği için sorgular için uygundur . Başlangıçta, bazı yararsız yığın işlemleri gerçekleştiririz, sonra p
(0, 1) 'e bir NUL karakteri yerleştiren bir (put komutu) veririz . Ardından talimat işaretçisini sola yansıtırız ve her şeyi bir dize olarak okumaya başlarız. Bu, yığının LIFO doğası nedeniyle solda yapılmalıdır. Sarılıp "
tekrar karaktere ulaştıktan sonra dize biter. NUL karakterinin,$
karakter, dizenin ortasında bir sınırlayıcı oluşturma. Daha sonra 3 numarayı yığının üzerine itiyoruz ve NUL'un üzerine atlıyoruz (çünkü talimat olarak çalıştırıldığında maalesef yorumlayıcıyı asıyor). Hata mesajının statik kısmı burada yürütülmelidir. Karakterlerinin çoğu op-op değildir, ancak p
komut üç argüman tüketir (bu nedenle neden 3 sayı ittik, aksi takdirde dizenin bir kısmı burada yenir) ve :
& 1
karakterler, yığına karşı koyduğumuz toplam 4 değeri iter a p
ve a $
(pop and at) komutuyla. Daha sonra, ASCII kodlarını itmek için bazı aritmetik yapılır ^"\n>#001p#"
ve son olarak bir döngü, bir NUL karakteri bulana ve sona erene kadar yığındaki tüm değerleri karakter olarak yazdırır.