20 Temmuz Pazartesi günü, hızlı bir sözcük analiz oluşturucu olan re2c piyasaya sürüldü.
Ana değişiklikler:
-
Go dili için destek eklendi
(re2c için --lang go seçeneğiyle veya bağımsız bir re2go programı olarak etkinleştirilir).
C ve Go belgeleri aynı metinden, ancak farklı
kod örnekleri. re2c'deki kod oluşturma alt sistemi tamamen yeniden tasarlandı.
gelecekte yeni dilleri desteklemeyi kolaylaştırmalıdır. -
CMake'de alternatif oluşturma sistemi eklendi (teşekkürler ligfx!).
Re2c'yi CMake'e çevirme girişimleri uzun süredir yapılıyordu, ancak ligfx'ten önce kimse yoktu.
eksiksiz bir çözüm sundu.
Autotools'daki eski yapı sistemi desteklenmeye ve kullanılmaya devam ediyor,
ve öngörülebilir gelecekte onu terk etme planları yoktur (kısmen yaratmamak için
kısmen eski yapı sistemi nedeniyle dağıtım geliştiricileri için sorunlar
yenisinden daha kararlı ve özlü).
Her iki sistem de Travis CI kullanılarak eşit şekilde sürekli olarak test edilir. -
Kullanırken yapılandırmalarda arayüz kodunu ayarlama yeteneği eklendi
genel API (genel API). Önceden, çoğu API'nin şu şekilde belirtilmesi gerekiyordu:
fonksiyonlar veya fonksiyon makroları. Şimdi keyfi biçimde ayarlanabilirler
@@{name} veya yalnızca @@ (eğer
sadece bir parametre vardır ve belirsizlik yoktur). API stili yapılandırılabilir
re2c:api:style (işlevlerin değeri işlevsel stili belirtirken, serbest biçimli değer keyfidir). -
Birkaç şeyi birleştirmenize izin veren -c, --start-conditions seçeneğinin iyileştirilmiş çalışması
bir re2c bloğunda birbirine bağlı sözlükçüler. Şimdi kullanabilirsiniz
koşullu olanlarla eşit olan sıradan bloklar ve ilgisiz birkaç koşullu ayar
tek bir dosyada bloklar.
Geliştirilmiş -r, --reuse seçenekleri (bir bloktan gelen kodun yeniden kullanımı)
diğer bloklarda) -c, --start-conditions ve -f, --storable-state seçenekleriyle birlikte
(rastgele bir konumda kesilebilen durum bilgisi olan bir lexer
ve daha sonra yürütmeye devam edin). -
Giriş verilerinin sonunu işlemek için yeni eklenen algoritmadaki bir hata düzeltildi
Nadir durumlarda yanlış işlemeye yol açan (EOF kuralı)
örtüşen kurallar -
Basitleştirilmiş önyükleme işlemi. Daha önce, yapı sistemi zaten dinamik olarak bulmaya çalıştı
kendini yeniden inşa etmek için kullanılabilecek inşa edilmiş re2c.
Bu, yanlış bağımlılıklara yol açtı (çünkü bağımlılık grafiği ortaya çıktı)
çoğu yapı sisteminin sevmediği dinamik).
Şimdi, lexers'ı yeniden inşa etmek için açıkça gereklidir
derleme sistemini yapılandırın ve RE2C_FOR_BUILD değişkenini ayarlayın.
Bu yayına katkıda bulunan herkese teşekkürler!
Kaynak: linux.org.ru