re2c 2.0

Mnamo Jumatatu, Julai 20, kutolewa kwa re2c, jenereta ya uchanganuzi wa kileksia haraka, ilitolewa.
Mabadiliko kuu:

  • Usaidizi umeongezwa kwa lugha ya Go
    (imewezeshwa na --lang go chaguo la re2c, au kama mpango wa re2go pekee).
    Hati za C na Go hutolewa kutoka kwa maandishi sawa, lakini kwa tofauti
    mifano ya kanuni. Mfumo mdogo wa kizazi cha msimbo katika re2c umeundwa upya kabisa, ambayo
    inapaswa kurahisisha kutumia lugha mpya katika siku zijazo.

  • Imeongeza mfumo mbadala wa ujenzi kwenye CMake (asante ligfx!).
    Majaribio ya kutafsiri re2c hadi CMake yamefanywa kwa muda mrefu, lakini kabla ya ligfx hakuna mtu.
    ilitoa suluhisho kamili.
    Mfumo wa zamani wa kujenga kwenye Autotools unaendelea kuungwa mkono na kutumika,
    na katika siku zijazo zinazoonekana hakuna mipango ya kuiacha (kwa sehemu ili sio kuunda
    matatizo kwa watengenezaji wa usambazaji, kwa sehemu kwa sababu mfumo wa zamani wa kujenga
    imara zaidi na mafupi kuliko mpya).
    Mifumo yote miwili inajaribiwa kwa usawa kwa kutumia Travis CI.

  • Imeongeza uwezo wa kuweka msimbo wa kiolesura katika usanidi wakati wa kutumia
    API ya jumla (API ya jumla). Hapo awali, API nyingi zilipaswa kubainishwa katika fomu
    kazi au makros ya kazi. Sasa wanaweza kuweka kwa namna ya kiholela
    mifuatano iliyo na vigezo vya kiolezo vilivyotajwa vya fomu @@{name} au @@ tu (ikiwa
    kuna parameta moja tu na hakuna utata). Mtindo wa API unaweza kusanidiwa
    re2c:api:style (thamani ya utendakazi inabainisha mtindo wa utendaji, ilhali thamani ya umbo huria ni ya kiholela).

  • Uendeshaji ulioboreshwa wa chaguo -c, --start-conditions, ambayo inakuwezesha kuchanganya kadhaa
    lexers zilizounganishwa katika block moja ya re2c. Sasa unaweza kutumia
    vitalu vya kawaida kwa usawa na vile vya masharti na kuweka masharti kadhaa ambayo hayahusiani
    huzuia katika faili moja.
    Chaguzi zilizoboreshwa -r, --reuse (utumiaji tena wa nambari kutoka kwa kizuizi kimoja
    katika vizuizi vingine) pamoja na -c, --start-conditions na -f, --storable-state chaguzi
    (mchanganyiko wa hali ya juu ambao unaweza kuingiliwa katika eneo kiholela
    na kuendelea na utekelezaji baadaye).

  • Imerekebisha hitilafu katika kanuni mpya iliyoongezwa ya kushughulikia mwisho wa data ya ingizo
    (Sheria ya EOF), ambayo katika hali nadra ilisababisha usindikaji usio sahihi
    sheria zinazoingiliana.

  • Mchakato wa bootstrap uliorahisishwa. Hapo awali, mfumo wa kujenga ulijaribu kupata tayari
    ilijengwa re2c ambayo inaweza kutumika kujijenga upya.
    Hii ilisababisha utegemezi usio sahihi (kwani grafu ya utegemezi ilijitokeza
    dynamic, ambayo wengi hujenga mifumo haipendi).
    Sasa, ili kujenga upya lexers, inahitajika kwa uwazi
    sanidi mfumo wa ujenzi na weka utofauti wa RE2C_FOR_BUILD.

Asante kwa kila mtu aliyechangia toleo hili!

Chanzo: linux.org.ru

Kuongeza maoni