re2c 1.2

Vandredi 2 Out, yo te pibliye re2c, yon jeneratè gratis analizeur leksikal pou lang C ak C++. Re2c te ekri an 1993 pa Peter Bamboulis kòm yon dèlko eksperimantal nan analizeur leksik trè vit, distenge ak lòt dèlko pa vitès la nan kòd la pwodwi ak yon koòdone itilizatè ki pa nòmal ki fleksib ki pèmèt analizè yo dwe fasil epi efikasman entegre nan yon baz kòd ki deja egziste. Depi lè sa a, pwojè a te devlope pa kominote a epi li kontinye ap yon platfòm pou eksperyans ak rechèch nan jaden an nan gramè fòmèl ak machin eta fini.

Inovasyon prensipal yo nan vèsyon 1.2:

  • Te ajoute yon nouvo fason (senplifye) pou tcheke pou fen done yo antre
    (Anglè "EOF règ").
    Pou sa, yo te ajoute re2c:eof konfigirasyon an,
    pèmèt ou chwazi karaktè tèminal la,
    ak yon règ $ espesyal ki tire si lexer la
    avèk siksè rive nan fen done yo antre.
    Istorikman, re2c bay yon chwa nan plizyè metòd verifikasyon pou
    fen nan entrain varye nan limit, efikasite ak senplisite
    aplikasyon yo. Nouvo metòd la fèt pou senplifye ekri kòd, pandan
    pandan y ap rete efikas ak lajman aplikab. Ansyen fason
    toujou travay epi yo ka pi pito nan kèk ka.

  • Te ajoute kapasite pou mete fichye ekstèn lè l sèvi avèk yon direktiv
    /*!include:re2c "file.re" */ kote file.re
    sa a se non dosye enkli a. Re2c chèche fichye ki nan anyè dosye ki gen ladan yo,
    osi byen ke nan lis la nan chemen espesifye lè l sèvi avèk opsyon nan -I.
    Fichye ki enkli yo ka genyen lòt dosye.
    Re2c bay dosye "estanda" nan anyè include/
    pwojè - li espere ke definisyon itil pral akimile la
    ekspresyon regilye, yon bagay tankou bibliyotèk estanda a.
    Jiskaprezan, sou demann travayè yo, yo te ajoute yon dosye ki gen definisyon kategori Unicode.

  • Te ajoute kapasite nan jenere dosye header ak abitrè
    kontni lè l sèvi avèk opsyon yo -t --type-header (oswa apwopriye
    konfigirasyon) ak nouvo direktiv /*!header:re2c:on*/ ak
    /*!header:re2c:off*/. Sa a ka itil nan ka kote
    lè re2c bezwen jenere definisyon varyab, estrikti ak makro,
    itilize nan lòt inite tradiksyon.

  • Re2c kounye a konprann literal UTF8 ak klas karaktè nan ekspresyon regilye.
    Pa default, re2c analize ekspresyon tankou "∀x ∃y" kòm.
    sekans karaktè ASCII 1-bit e2 88 80 78 20 e2 88 83 79
    (kod hex), ak itilizatè yo oblije chape karaktè Unicode manyèlman:
    "u2200x u2203y". Sa a se trè konvenyan ak inatandi pou anpil moun
    itilizatè yo (jan sa evidan pa rapò ensèk konstan). Se konsa, kounye a
    re2c bay yon opsyon --input-encoding ,
    ki pèmèt ou chanje konpòtman an epi analize "∀x ∃y" kòm
    2200 78 20 2203 79.

  • Re2c kounye a pèmèt itilizasyon blòk re2c regilye nan -r --reuse mòd.
    Sa a se pratik si dosye a opinyon gen anpil blòk ak sèlman kèk nan yo
    bezwen réutilisation.

  • Koulye a, ou ka mete fòma avètisman ak mesaj erè
    lè l sèvi avèk nouvo opsyon --location-format la . Fòma GNU parèt
    kòm non fichye:liy:kolòn:, ak fòma MSVC kòm non fichye (liy,kolòn).
    Karakteristik sa a ka itil pou rayisab IDE.
    Yon opsyon --verbose te ajoute tou, ki enprime yon mesaj viktwa kout si yo reyisi.

  • Mòd "konpatibilite" a ak flex te amelyore - kèk erè par te fikse Et
    move priyorite operatè nan ka ki ra.
    Istorikman, opsyon -F --flex-support la pèmèt ou ekri kòd
    melanje nan style flex ak style re2c, ki fè analiz yon ti kras difisil.
    Mòd konpatibilite Flex raman itilize nan nouvo kòd,
    men re2c kontinye sipòte li pou konpatibilite bak.

  • Operatè soustraksyon klas karaktè / kounye a aplike
    anvan agrandi kodaj la, ki pèmèt li yo dwe itilize nan yon pi gwo kantite ka,
    si yo itilize yon kodaj longè karaktè varyab (pa egzanp UTF8).

  • Se fichye pwodiksyon an kounye a kreye atomik: re2c kreye yon dosye tanporè an premye
    epi ekri rezilta a nan li, ak Lè sa a, chanje non dosye tanporè a nan pwodiksyon an
    yon sèl operasyon.

  • Yo te ranpli dokiman an epi reekri; an patikilye, yo te ajoute nouvo
    chapit sou ranpli tanpon an
    и sou fason yo tcheke pou fen done antre.
    Nouvo dokiman an kolekte sou fòm lan
    yon manyèl konplè yon paj
    ak egzanp (menm sous yo rann nan paj man ak nan dokiman an sou entènèt).
    Yo te fè tantativ pòv pou amelyore lizibilite sit la sou telefòn yo.

  • Soti nan pwen de vi devlopè yo, re2c te akeri yon subsystem pi konplè
    debogaj Kòd debogaj kounye a enfim nan lage bati ak
    ka aktive lè l sèvi avèk opsyon nan konfigirasyon --enable-debug.

Liberasyon sa a te pran yon bon bout tan - prèske yon ane antye.
Pifò nan tan an, kòm toujou, te pase sou devlope yon fondasyon teyorik ak ekri
atik "Efikas POSIX Submatch Ekstraksyon sou NFA".
Algoritm yo dekri nan atik la aplike nan bibliyotèk eksperimantal libre2c
(Konstriksyon bibliyotèk la ak referans yo enfim pa default epi li pèmèt opsyon konfigirasyon an
--enable-libs). Bibliyotèk la pa vin ansent kòm yon konkiran ki egziste deja
pwojè tankou RE2, men kòm yon platfòm rechèch pou devlopman nouvo
algoritm (ki ka Lè sa a, itilize nan re2c oswa nan lòt pwojè).
Li se tou pratik nan pwen de vi nan tès, referans ak kreye obligatwa nan lòt lang.

Mèsi devlopè re2c yo bay tout moun ki te ede lage sa a rive,
ak kominote a an jeneral pou lide, rapò ensèk, plak, moral, elatriye. ;]

Sous: linux.org.ru

Add nouvo kòmantè