re2c 2.0

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

Yorum ekle