re2c 2.0

Рӯзи душанбе, 20 июл, re2c, як генератори тези анализатори лексикӣ бароварда шуд.
Тағйироти асосӣ:

  • Дастгирии забони Go илова карда шуд
    (ё бо опсияи --lang go барои re2c ё ҳамчун барномаи алоҳидаи re2go фаъол карда шудааст).
    Ҳуҷҷатҳо барои C ва Go аз як матн таҳия карда мешаванд, аммо бо гуногун
    мисолҳои код. Зерсистемаи тавлиди код дар re2c комилан аз нав тарҳрезӣ шудааст, ки он
    бояд дастгирии забонҳои навро дар оянда осонтар кунад.

  • Системаи алтернативии сохтани CMake илова карда шуд (ташаккур ligfx!)
    Кӯшишҳои тарҷумаи re2c ба CMake муддати тӯлонӣ сурат гирифта буданд, аммо пеш аз ligfx ҳеҷ кас
    халли комил пешниход кард.
    Системаи кӯҳнаи сохтмон дар Autotools дастгирӣ ва истифода мешавад,
    ва дар ояндаи наздик нақшаи даст кашидан аз он (қисман ба хотири эҷод накардан
    мушкилот барои таҳиягарони тақсимот, қисман аз сабаби системаи кӯҳнаи сохтмон
    нисбат ба нав) устувортар ва мухтасартар аст.
    Ҳарду система пайваста бо истифода аз Travis CI озмоиш карда мешаванд.

  • Қобилияти муқаррар кардани рамзи интерфейс дар конфигуратсияҳо ҳангоми истифода илова карда шуд
    API умумӣ. Пештар, аксари API-ҳо бояд дар форма нишон дода мешуданд
    функсияҳо ё макросҳои функсия. Акнун онҳоро метавон дар шакли худсарона муайян кард
    сатрҳо бо параметрҳои қолаби номдор ба монанди @@{name} ё танҳо @@ (агар
    танҳо як параметр вуҷуд дорад ва ҳеҷ гуна номуайянӣ вуҷуд надорад). Услуби API аз ҷониби конфигуратсия муайян карда мешавад
    re2c:api:style (қимати функсияҳо услуби функсионалӣ ва шакли озод услуби ихтиёриро муайян мекунад).

  • Фаъолияти опсияи -c, --start-conditions такмил дода шуд, ки ба шумо имкон медиҳад, ки якчанд шартҳоро якҷоя кунед.
    лексерҳои ба ҳам алоқаманд дар як блоки re2c. Акнун шумо метавонед истифода баред
    блокҳои муқаррарӣ дар баробари блокҳои шартӣ ва якчанд шартҳои ба ҳам алоқамандро муайян кунед
    блокҳо дар як файл.
    Фаъолияти беҳтаршудаи опсияи -r, --reuse (истифодаи такрории код аз як блок
    дар блокҳои дигар) дар якҷоягӣ бо имконоти -c, --start-conditions ва -f, --storable-state
    (Лексери давлатӣ, ки метавонад дар ҳар лаҳза қатъ карда шавад
    ва иҷрои баъдтар идома диҳед).

  • Хатогиро дар алгоритми охирини вуруди ба наздикӣ иловашуда ислоҳ кард
    (Қоидаи EOF), ки дар ҳолатҳои нодир боиси коркарди нодуруст мегардад
    қоидаҳои такроршаванда.

  • Раванди боркунӣ содда карда шудааст. Пештар, системаи сохтмон кӯшиш мекард, ки аллакай ба таври динамикӣ пайдо кунад
    сохтани re2c, ки метавонад барои аз нав сохтани худ истифода шавад.
    Ин боиси вобастагии нодуруст гардид (зеро графики вобастагӣ
    динамикӣ, ки аксари системаҳои сохтмонӣ ба он маъқул нестанд).
    Акнун, барои аз нав сохтани лексикон, шумо бояд ба таври возеҳ
    системаи сохтаниро танзим кунед ва тағирёбандаи RE2C_FOR_BUILD -ро танзим кунед.

Ташаккур ба ҳамаи онҳое, ки дар омодасозии ин нашрия ширкат кардаанд!

Манбаъ: linux.org.ru

Илова Эзоҳ