Rilis generator re2c lexer 1.2

dumadi ngeculake re2c, generator penganalisis leksikal gratis kanggo basa C lan C++. Elinga yen re2c ditulis ing taun 1993 dening Peter Bambulis minangka generator eksperimen saka penganalisis leksikal sing cepet banget, beda karo generator liyane ing kacepetan kode sing digawe lan antarmuka panganggo sing luar biasa fleksibel sing ngidini analisa bisa diintegrasi kanthi gampang lan efisien menyang kode sing wis ana. dhasar. Wiwit kuwi, proyek kasebut wis dikembangake dening masyarakat lan terus dadi platform kanggo eksperimen lan riset ing bidang grammar formal lan mesin negara sing winates.

Preparation kanggo release njupuk meh kabèh taun. Umume wektu, kaya biasane, digunakake kanggo ngembangake kerangka teoretis lan nulis
artikel"Ekstraksi Submatch POSIX sing efisien ing NFA".
Algoritma sing diterangake ing artikel kasebut ditindakake ing perpustakaan eksperimen libre2c
(bangunan perpustakaan lan tes kinerja dipateni kanthi gawan lan diaktifake kanthi pilihan konfigurasi "-enable-libs"). Perpustakaan kasebut ora dimaksudake minangka pesaing kanggo proyek sing wis ana kayata RE2, nanging minangka platform riset kanggo pangembangan sing anyar.
algoritma (sing banjur bisa digunakake ing re2c utawa ing proyek liyane). Iku uga trep saka sudut pandang testing, ngukur kinerja lan nggawe bindings kanggo basa liyane.

Inovasi utama ing versi re2c 1.2:

  • Nambahake cara anyar sing disederhanakake kanggo mriksa pungkasan data input ("aturan EOF"). Kanggo iki, konfigurasi "re2c:eof" wis ditambahake,
    ngidini sampeyan milih karakter terminal,
    lan aturan khusus "$", kang micu yen lexer
    kasil tekan mburi data input.
    Secara historis, re2c nyedhiyakake pilihan saka sawetara cara verifikasi kanggo
    pungkasan input beda-beda ing watesan, efficiency lan gamblang
    aplikasi. Cara anyar dirancang kanggo menakake kode nulis, nalika
    nalika tetep efektif lan ditrapake sacara wiyar. Cara lawas
    isih bisa digunakake lan bisa uga disenengi ing sawetara kasus.

  • Nambahake kemampuan kanggo nyakup file eksternal nggunakake arahan
    "/*!include:re2c "file.re" */", ngendi "file.re" iku jeneng berkas sing arep dilebokake. Re2c nggoleki file ing direktori file kalebu,
    uga ing dhaptar dalan sing ditemtokake nggunakake pilihan "-I".
    File sing kalebu bisa uga kalebu file liyane.
    Re2c nyedhiyakake file "standar" ing direktori "kalebu /".
    project - samesthine definisi migunani bakal nglumpukake ana
    ekspresi biasa, kaya perpustakaan standar.
    Nganti saiki, kanthi panyuwunan para pekerja, siji file kanthi definisi kategori Unicode wis ditambahake.

  • Nambahake kemampuan kanggo ngasilake file header kanthi sewenang-wenang
    isi nggunakake opsi "-t --type-header" (utawa cocok
    konfigurasi) lan arahan anyar "/*!header:re2c:on*/"lan
    "/*!header:re2c:off*/". Iki bisa uga migunani ing kasus ngendi
    nalika re2c kudu ngasilake definisi variabel, struktur lan makro,
    digunakake ing unit terjemahan liyane.

  • Re2c saiki ngerti literal UTF8 lan kelas karakter ing ekspresi reguler.
    Kanthi gawan, re2c parses ekspresi kaya "βˆ€x βˆƒy" minangka
    urutan karakter ASCII 1-bit "e2 88 80 78 20 e2 88 83 79"
    (kode hex), lan pangguna kudu uwal saka karakter Unicode kanthi manual:
    "\\u2200x\\u2203y". Iki banget ora trep lan ora dikarepke kanggo akeh
    pangguna (minangka bukti saka laporan bug pancet). Dadi saiki
    re2c nyedhiyakake opsi "--input-encoding {ascii | utf8}",
    sing ngijini sampeyan kanggo ngganti prilaku lan parse "βˆ€x βˆƒy" minangka
    "2200 78 20 2203 79."

  • Re2c saiki ngidini pamblokiran re2c biasa digunakake ing mode "-r --reuse".
    Iki trep yen file input ngemot akeh blok lan mung sawetara
    kudu dienggo maneh.

  • Saiki sampeyan bisa nyetel format bebaya lan pesen kesalahan
    nggunakake opsi anyar "--location-format {gnu | msvc}". Format GNU ditampilake
    minangka "jeneng berkas: baris: kolom:", lan format MSVC minangka "jeneng berkas (baris, kolom)".
    Fitur iki bisa migunani kanggo penyayang IDE.
    A "--verbose" pilihan uga wis ditambahake, kang nampilake pesen singkat kamenangan yen sukses.

  • Mode "kompatibilitas" kanthi lentur wis apik - sawetara kesalahan parsing wis didandani lan
    precedence operator salah ing kasus langka.
    Secara historis, opsi "-F --flex-suppor" ngidini sampeyan nulis kode
    dicampur ing gaya lentur lan gaya re2c, kang ndadekake parsing sethitik angel.
    Mode kompatibilitas fleksibel jarang digunakake ing kode anyar,
    nanging re2c terus ndhukung kanggo kompatibilitas mundur.

  • Operator pengurangan kelas karakter "/" saiki ditrapake
    sadurunge nggedhekake enkoding, sing ngidini supaya bisa digunakake ing kasus sing luwih akeh,
    yen enkoding dawa karakter variabel digunakake (contone UTF8).

  • File output saiki digawe kanthi atom: re2c nggawe file sementara dhisik
    lan nulis asil menyang, lan banjur ngganti jeneng file sauntara kanggo output
    siji operasi.

  • Dokumentasi wis rampung lan ditulis maneh; utamanΓ©, anyar padha ditambahake
    bab bab http://re2c.org/manual/manual.html#buffer-refilling Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡƒΡ„Π΅Ρ€Π°
    ΠΈ babagan cara kanggo mriksa pungkasan data input.
    Dokumentasi anyar diklumpukake ing formulir
    guide siji-kaca lengkap
    kanthi conto (sumber sing padha ditampilake ing kaca manual lan ing dokumentasi online).
    Upaya sing ora apik wis ditindakake kanggo nambah keterbacaan situs ing telpon.

  • Saka sudut pandang pangembang, re2c wis entuk subsistem sing luwih lengkap
    debugging Kode debugging saiki dipatèni ing release mbangun lan
    bisa diaktifake nggunakake opsi konfigurasi "--enable-debug".

Source: opennet.ru

Add a comment