Kutolewa kwa jenereta ya kichanganuzi cha kimsamiati cha re2c 1.2
ilifanyika kutolewa re2c, jenereta isiyolipishwa ya uchanganuzi wa kileksika kwa lugha za C na C++. Kumbuka kwamba re2c iliandikwa mnamo 1993 na Peter Bambulis kama jenereta ya majaribio ya vichanganuzi vya haraka vya kileksika, tofauti na jenereta zingine kwa kasi ya nambari iliyotengenezwa na kiolesura cha mtumiaji kinachobadilika isivyo kawaida ambacho huruhusu vichanganuzi kuunganishwa kwa urahisi na kwa ufanisi katika msimbo uliopo. msingi. Tangu wakati huo, mradi umeendelezwa na jamii na unaendelea kuwa jukwaa la majaribio na utafiti katika uwanja wa sarufi rasmi na mashine za hali ya mwisho.
Maandalizi ya kutolewa yalichukua karibu mwaka mzima. Wakati mwingi, kama kawaida, ilitumika kuunda mfumo wa kinadharia na uandishi
makala"Uchimbaji Bora wa Submatch ya POSIX kwenye NFA".
Kanuni zilizofafanuliwa katika makala zinatekelezwa katika maktaba ya majaribio libre2c
(kujenga maktaba na majaribio ya utendaji kumezimwa kwa chaguo-msingi na kuwezeshwa na chaguo la kusanidi "-enable-libs"). Maktaba haikusudiwa kuwa mshindani wa miradi iliyopo kama RE2, lakini kama jukwaa la utafiti la ukuzaji mpya.
algorithms (ambayo inaweza kutumika katika re2c au katika miradi mingine). Pia ni rahisi kutoka kwa mtazamo wa kupima, kupima utendaji na kuunda vifungo kwa lugha nyingine.
Ubunifu kuu katika toleo la re2c 1.2:
Imeongeza mbinu mpya iliyorahisishwa ya kuangalia mwisho wa data ya ingizo ("sheria ya EOF"). Kwa hili, usanidi wa "re2c:eof" umeongezwa,
hukuruhusu kuchagua herufi ya terminal,
na kanuni maalum "$", ambayo inasababishwa ikiwa lexer
ilifanikiwa kufikia mwisho wa data ya ingizo.
Kihistoria, re2c hutoa chaguo la mbinu kadhaa za uthibitishaji kwa
mwisho wa pembejeo zinazotofautiana katika ukomo, ufanisi na urahisi
maombi. Njia mpya imeundwa ili kurahisisha msimbo wa uandishi, wakati
huku ikibaki kuwa na ufanisi na inatumika sana. Njia za zamani
bado inafanya kazi na inaweza kupendekezwa katika hali zingine.
Imeongeza uwezo wa kujumuisha faili za nje kwa kutumia maagizo
"/*! ni pamoja na:re2c "file.re" */", ambapo "file.re" ni jina la faili litakalojumuishwa. Re2c hutafuta faili kwenye saraka ya faili inayojumuisha,
na vile vile katika orodha ya njia zilizoainishwa kwa kutumia chaguo la "-I".
Faili zilizojumuishwa zinaweza kujumuisha faili zingine.
Re2c hutoa faili "za kawaida" kwenye saraka ya "pamoja na/".
mradi - inatarajiwa kwamba ufafanuzi muhimu utajilimbikiza hapo
maneno ya kawaida, kitu kama maktaba ya kawaida.
Hadi sasa, kwa ombi la wafanyakazi, faili moja yenye ufafanuzi wa makundi ya Unicode imeongezwa.
Imeongeza uwezo wa kutengeneza faili za kichwa bila mpangilio
yaliyomo kwa kutumia chaguzi za "-t --type-header" (au inafaa
usanidi) na maagizo mapya "/*!header:re2c:on*/" na
"/*!kichwa:re2c:off*/". Hii inaweza kuwa na manufaa katika hali ambapo
wakati re2c inahitaji kutoa ufafanuzi wa anuwai, miundo na macros,
kutumika katika vitengo vingine vya tafsiri.
Re2c sasa inaelewa herufi halisi za UTF8 na madarasa ya wahusika katika misemo ya kawaida.
Kwa chaguo-msingi, re2c huchanganua misemo kama "βx βy" kama
mlolongo wa herufi 1-bit ASCII βe2 88 80 78 20 e2 88 83 79β
(nambari za hex), na watumiaji wanapaswa kutoroka herufi za Unicode kwa mikono:
"\\u2200x \\u2203y." Hili ni jambo lisilofaa na lisilotarajiwa kwa wengi
watumiaji (kama inavyothibitishwa na ripoti za mara kwa mara za hitilafu). Hivyo sasa
re2c hutoa chaguo "--input-encoding {ascii | utf8}",
ambayo hukuruhusu kubadilisha tabia na kuchanganua "βx βy" kama
"2200 78 20 2203 79."
Re2c sasa inaruhusu vizuizi vya kawaida vya re2c kutumika katika hali ya "-r --reuse".
Hii ni rahisi ikiwa faili ya pembejeo ina vizuizi vingi na ni baadhi yao tu
inahitaji kutumika tena.
Sasa unaweza kuweka umbizo la maonyo na ujumbe wa makosa
kwa kutumia chaguo jipya "--location-format {gnu | msvc}". Umbizo la GNU linaonyeshwa
kama "filename:line:column:", na umbizo la MSVC kama "filename(line,column)".
Kipengele hiki kinaweza kuwa muhimu kwa wapenzi wa IDE.
Chaguo la "--verbose" pia limeongezwa, ambalo linaonyesha ujumbe mfupi wa ushindi ikiwa umefaulu.
Hali ya "utangamano" na flex imeboreshwa - baadhi ya hitilafu za uchanganuzi zimerekebishwa na
utangulizi usio sahihi wa waendeshaji katika matukio machache.
Kihistoria, chaguo la "-F --flex-support" lilikuruhusu kuandika msimbo
iliyochanganywa kwa mtindo wa kunyumbulika na mtindo wa re2c, ambao hufanya uchanganuzi kuwa mgumu kidogo.
Njia ya utangamano ya Flex haitumiki sana katika nambari mpya,
lakini re2c inaendelea kuiunga mkono kwa utangamano wa nyuma.
Opereta ya kutoa ya darasa la wahusika "/" sasa inatumika
kabla ya kupanua usimbuaji, ambayo inaruhusu kutumika katika idadi kubwa ya kesi,
ikiwa usimbaji wa urefu wa herufi tofauti unatumika (kwa mfano UTF8).
Faili ya pato sasa imeundwa kwa atomi: re2c huunda faili ya muda kwanza
na huandika matokeo ndani yake, na kisha kubadilisha faili ya muda kwa pato
operesheni moja.
Kwa mtazamo wa wasanidi programu, re2c imepata mfumo mdogo kamili zaidi
utatuzi Msimbo wa utatuzi sasa umezimwa katika miundo ya toleo na
inaweza kuwezeshwa kwa kutumia chaguo la kusanidi "--enable-debug".