re2c 2.0

Pada hari Senin, 20 Juli, re2c, generator penganalisis leksikal cepat, dirilis.
Perubahan besar:

  • Menambahkan dukungan bahasa Go
    (diaktifkan dengan opsi --lang go untuk re2c, atau sebagai program re2go terpisah).
    Dokumentasi untuk C dan Go dihasilkan dari teks yang sama, tetapi dengan teks yang berbeda
    contoh kode. Subsistem pembuatan kode di re2c telah didesain ulang sepenuhnya
    harus mempermudah dukungan bahasa baru di masa depan.

  • Menambahkan sistem build alternatif untuk CMake (terima kasih ligfx).!
    Upaya untuk menerjemahkan re2c ke CMake telah dilakukan sejak lama, tetapi sebelum ligfx tidak ada seorang pun
    menawarkan solusi lengkap.
    Sistem build lama di Autotools terus didukung dan digunakan,
    dan di masa mendatang tidak ada rencana untuk meninggalkannya (sebagian agar tidak menciptakannya
    masalah bagi pengembang distribusi, sebagian karena sistem build yang lama
    lebih stabil dan lebih ringkas daripada yang baru).
    Kedua sistem terus diuji menggunakan Travis CI.

  • Menambahkan kemampuan untuk mengatur kode antarmuka dalam konfigurasi saat menggunakan
    API generik. Sebelumnya, sebagian besar API harus ditentukan dalam formulir
    fungsi atau makro fungsi. Sekarang mereka dapat ditentukan dalam bentuk sewenang-wenang
    baris dengan parameter template bernama seperti @@{name} atau hanya @@ (jika
    hanya ada satu parameter dan tidak ada ambiguitas). Gaya API ditentukan oleh konfigurasi
    re2c:api:style (nilai fungsi menentukan gaya fungsional, dan bentuk bebas menentukan gaya arbitrer).

  • Pengoperasian opsi -c, --start-conditions telah ditingkatkan, memungkinkan Anda untuk menggabungkan beberapa
    lexer yang saling berhubungan dalam satu blok re2c. Sekarang Anda dapat menggunakan
    blok reguler bersama dengan blok bersyarat dan tentukan beberapa blok bersyarat yang tidak terkait
    blok dalam satu file.
    Peningkatan pengoperasian opsi -r, --reuse (penggunaan kembali kode dari satu blok
    di blok lain) dikombinasikan dengan opsi -c, --start-conditions dan -f, --storable-state
    (lexer stateful yang dapat diinterupsi kapan saja
    dan lanjutkan eksekusi nanti).

  • Memperbaiki bug pada algoritma input akhir yang baru ditambahkan
    (Aturan EOF), yang dalam kasus yang jarang menyebabkan pemrosesan yang salah
    aturan yang tumpang tindih.

  • Proses bootstrap telah disederhanakan. Sebelumnya, sistem build sudah mencoba menemukan secara dinamis
    build re2c yang dapat digunakan untuk membangun kembali dirinya sendiri.
    Hal ini mengakibatkan ketergantungan yang salah (karena grafik ketergantungannya adalah
    dinamis, yang tidak disukai sebagian besar sistem pembangunan).
    Sekarang, untuk membangun kembali lexers, Anda perlu melakukannya secara eksplisit
    konfigurasikan sistem build dan atur variabel RE2C_FOR_BUILD.

Terima kasih kepada semua orang yang berpartisipasi dalam persiapan rilis ini!

Sumber: linux.org.ru

Tambah komentar