re2c 1.2

Ing dina Jumuah, 2 Agustus, re2c, generator penganalisis leksikal gratis kanggo basa C lan C ++, dirilis. Minangka pangeling, re2c ditulis ing taun 1993 dening Peter Bamboulis minangka generator eksperimen saka penganalisa leksikal sing cepet banget, dibedakake saka generator liyane kanthi kecepatan kode sing digawe lan antarmuka pangguna sing fleksibel sing luar biasa sing ngidini analisa gampang lan efisien dipasang ing basis kode ana. 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.

Inovasi utama ing versi 1.2:

  • Nambahake cara anyar (disederhanakake) kanggo mriksa pungkasan data input
    (Inggris "EOF rule").
    Kanggo iki, konfigurasi re2c:eof wis ditambahake,
    ngidini sampeyan milih karakter terminal,
    lan khusus $ aturan sing murub 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
    iki jeneng file kalebu. 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 ,
    sing ngijini sampeyan kanggo ngganti prilaku lan parse "βˆ€x βˆƒy" minangka
    2200 78 20 2203 79.

  • Re2c saiki ngidini panggunaan blok re2c biasa 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 --location-format anyar . 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 prints pesen singkat kamenangan yen sukses.

  • Mode "kompatibilitas" karo lentur wis apik - sawetara kasalahan parsing wis didandani lan
    precedence operator salah ing kasus langka.
    Secara historis, opsi -F --flex-support 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 babagan ngisi buffer
    ΠΈ babagan cara kanggo mriksa pungkasan data input.
    Dokumentasi anyar diklumpukake ing formulir
    manual 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.

Rilis iki njupuk wektu suwe - meh setaun.
Umume wektu, kaya biasane, digunakake kanggo ngembangake kerangka teoretis lan nulis
artikel "Efisiensi Ekstraksi Submatch POSIX ing NFA".
Algoritma sing diterangake ing artikel kasebut ditindakake ing perpustakaan eksperimen libre2c
(bangunan perpustakaan lan pathokan dipateni kanthi gawan lan diaktifake kanthi opsi konfigurasi
--enable-libs). Perpustakaan ora dianggep minangka pesaing sing ana
proyek kaya RE2, nanging minangka platform riset kanggo pangembangan anyar
algoritma (sing banjur bisa digunakake ing re2c utawa ing proyek liyane).
Iku uga trep saka sudut pandang testing, benchmarks lan nggawe bindings kanggo basa liyane.

Matur nuwun saka pangembang re2c kanggo kabeh wong sing mbantu rilis iki kedadeyan,
lan kanggo masyarakat umume kanggo gagasan, laporan bug, patch, moral, etc. ;]

Source: linux.org.ru

Add a comment