re2c 1.2

Roja Înê, 2ê Tebaxê, serbestberdana re2c, jeneratorek belaş a analîzkerên ferhengî ji bo zimanên C û C++, hat berdan. Re2c di sala 1993-an de ji hêla Peter Bamboulis ve wekî jeneratorek ceribandinek analîzkerên ferhengî yên pir bilez hate nivîsandin, ku ji hêla leza koda hatî hilberandin û navbeynkarek bikarhênerek neasayî ya maqûl ve ji jeneratorên din tê cûda kirin ku destûrê dide analîzkeran ku bi hêsanî û bikêrhatî di nav bingehek kodê ya heyî de bêne bicîh kirin. Ji hingê ve, proje ji hêla civakê ve hatî pêşve xistin û berdewam dike ku bibe platformek ji bo ceribandin û lêkolînan di warê rêzimanên fermî û makîneyên dewleta dawî de.

Di guhertoya 1.2 de nûbûnên sereke:

  • Ji bo kontrolkirina dawiya daneya têketinê rêyek nû (hêsankirî) zêde kir
    (Îngilîzî "Rêza EOF").
    Ji bo vê yekê, veavakirina re2c:eof hate zêdekirin,
    dihêle hûn karaktera termînalê hilbijêrin,
    û hukmê $ taybet ku agir eger lexer
    bi serfirazî gihîştiye dawiya daneya têketinê.
    Ji hêla dîrokî ve, re2c ji bo gelek awayên verastkirinê vebijarkek peyda dike
    dawiya inputan di sînorkirin, karîgerî û sadebûnê de cihêreng in
    sepanên. Rêbaza nû ji bo hêsankirina koda nivîsandinê hatî çêkirin, dema
    di heman demê de bi bandor û bi berfirehî tê sepandin. Rêyên kevn
    hîn jî dixebitin û dibe ku di hin rewşan de bêne tercîh kirin.

  • Kapasîteya tevlêkirina pelên derveyî bi karanîna rêwerzek zêde kir
    /*!include:re2c "file.re" */ ku file.re
    ev navê dosyaya navborî ye. Re2c li pelan di nav pelrêça pelê de digere,
    û her weha di navnîşa rêyên ku bi karanîna vebijarka -I ve hatî destnîşan kirin.
    Dibe ku pelên tê de pelên din jî hebin.
    Re2c pelên "standard" di nav pelrêça / pelrêça peyda dike
    proje - tê payîn ku pênaseyên kêrhatî li wir kom bibin
    îfadeyên bi rêkûpêk, tiştek mîna pirtûkxaneya standard.
    Heya nuha, li ser daxwaza karkeran, pelek bi pênaseyên kategoriyên Unicode hatî zêdekirin.

  • Kapasîteya çêkirina pelên sernavê bi kêfî zêde kir
    naverok bi karanîna vebijarkên -t --type-header (an guncan
    veavakirin) û rêwerzên nû /*!header:re2c:on*/ û
    /*!header:re2c:off*/. Ev dibe ku di rewşên ku tê de kêrhatî be
    dema ku re2c hewce dike ku pênaseyên guhêrbar, avahî û makroyan biafirîne,
    di yekeyên din ên wergerê de tê bikaranîn.

  • Re2c naha peyvên UTF8 û dersên karakteran di bêjeyên birêkûpêk de fam dike.
    Ji hêla xwerû ve, re2c îfadeyên mîna "∀x ∃y" wekî parsek dike.
    rêza tîpên ASCII 1-bit e2 88 80 78 20 e2 88 83 79
    (kodên hex), û bikarhêner neçar in ku bi destan ji karakterên Unicode birevin:
    "u2200x u2203y". Ev ji bo gelek kesan pir nerehet û nediyar e
    bikarhêneran (wekî ku ji hêla raporên xeletiyên domdar ve têne xuyang kirin). Îcar niha
    re2c vebijarkek --input-encoding peyda dike ,
    ku dihêle hûn tevgerê biguherînin û "∀x ∃y" wekî parsek bikin
    2200 78 20 2203 79.

  • Re2c naha destûrê dide karanîna blokên re2c yên birêkûpêk di moda -r --reuse de.
    Ger pelê têketinê gelek blokan û tenê hin ji wan dihewîne ev hêsan e
    pêdivî ye ku ji nû ve were bikar anîn.

  • Naha hûn dikarin formata hişyarî û peyamên xeletiyê bicîh bikin
    vebijarka nû ya --location-format bikar tîne . Forma GNU tê nîşandan
    wekî navê pelê: xet: stûn:, û forma MSVC wekî navê pelê (xêz, stûn).
    Dibe ku ev taybetmendî ji bo hezkirên IDE bikêr be.
    Vebijarkek --verbose jî hat zêdekirin, ku heke serketî peyamek serketinê ya kurt çap dike.

  • Moda "lihevhatî" ya bi flex re çêtir bûye - hin xeletiyên parskirinê hatine rastkirin û
    di rewşên hindik de pêşengiya operatorê çewt.
    Di dîrokê de, vebijarka -F --flex-support hişt ku hûn kodê binivîsin
    di şêwaza flex û şêwaza re2c de tevlihev dibe, ku parskirinê hinekî dijwar dike.
    Di koda nû de moda lihevhatina Flex kêm kêm tê bikar anîn,
    lê re2c ji bo lihevhatina paşverû piştgirîya wê didomîne.

  • Operatorê jêbirina çîna karakterê / naha derbas dibe
    berî berfirehkirina şîfrekirinê, ku dihêle ku ew di hejmareke mezintir de were bikar anîn,
    ger kodkirina dirêjahiya karaktera guhêrbar were bikar anîn (mînak UTF8).

  • Pelê derketinê naha bi atomî tê afirandin: re2c pêşî pelek demkî diafirîne
    û encamê tê de dinivîse, û dûv re navê pelê demkî vediguhêze encam
    yek operasyon.

  • Belgekirin hat temamkirin û ji nû ve hat nivîsandin; bi taybetî jî yên nû hatin zêdekirin
    beş li ser dagirtina tamponê
    и li ser awayên kontrolkirina dawiya daneya têketinê.
    Belgeyên nû di formê de têne berhev kirin
    pirtûkek yek-rûpelî ya berfireh
    bi mînakan (heman çavkanî di manpage û di belgeyên serhêl de têne pêşkêş kirin).
    Hewldanên nebaş ji bo baştirkirina xwendina malperê li ser têlefonan hatine kirin.

  • Ji hêla pêşdebiran ve, re2c binepergalek bêkêmasî bi dest xistiye
    debugging Naha koda xeletkirinê di avahîyên berdanê de neçalak e
    dikare bi karanîna vebijarka mîhengê --enable-debug were çalak kirin.

Vê berdanê demek dirêj girt - hema hema salek.
Piranîya demê, wek her carê, ji bo pêşxistina çarçoveyek teorîk û nivîsandinê derbas dibû
gotar "Derxistina POSIX Submatchê ya bi bandor li ser NFA".
Algorîtmayên ku di gotarê de têne vegotin di pirtûkxaneya ezmûnî libre2c de têne bicîh kirin
(avakirina pirtûkxane û pîvanan ji hêla xwerû ve neçalak e û ji hêla vebijarka veavakirinê ve tê çalak kirin
--çalak-libs). Pirtûkxane wekî hevrikê heyî nayê fikirîn
projeyên mîna RE2, lê wekî platformek lêkolînê ji bo pêşkeftina nû
algorîtmayan (ku wê hingê di re2c an di projeyên din de têne bikar anîn).
Di heman demê de ji hêla ceribandin, pîvan û çêkirina girêdanên bi zimanên din ve jî hêsan e.

Spas ji pêşdebirên re2c ji her kesê ku alîkariya vê berdanê kir,
û ji civatê re bi gelemperî ji bo raman, raporên xeletiyan, patch, moral, hwd. ;]

Source: linux.org.ru

Add a comment