Bazı mantıklı (gizlenmemiş) Perl kaynak dosyam var ve bunları jetonlara bölen ve her birinin belirteç türünü döndüren bir belirteçlere ihtiyacım var, örn. komut dosyası içinPerl kaynak kodu nasıl belirlenir?
print "Hello, World!\n";
böyle bir şey döndürür:
- kelime 5 bayt
- boşluk 1 bayt
- çift tırnaklı-string 17 byte
- noktalı virgül 1 bayt
- beyaz boşluk 1 bayt
Bunun için en iyi kütüphane hangisidir (tercihen Perl dilinde yazılmıştır)? Makul bir şekilde doğru olması gerekir, yani qq{{\}}}
gibi sözdizimsel yapıları ayrışabilmelidir, ancak Lingua::Romana::Perligata gibi özel ayrıştırıcılar hakkında bilgi sahibi olmak zorunda değildir. Perl'i ayrıştırmanın Turing-complete olduğunu biliyorum ve sadece Perl'in kendisi doğru yapabilir, ama mutlak doğruluğa ihtiyacım yok: tokenizer başarısız olabilir ya da bazı çok nadir köşe durumlarda bazı varsayılanlar alabilir, ama işe yarayabilir çoğu zaman doğru. Ortalama bir metin editöründe bulunan sözdizimi vurgulamadan daha iyi olmalı. Evet
print length(<<"END"); print "\n";
String
END
+1 komik cevap – Dacav