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