Дүйшөмбү күнү, 20-июлда, тез лексикалык анализатор генератору re2c чыгарылды.
Негизги өзгөрүүлөр:

  • Go тили үчүн кошумча колдоо
    (re2c үчүн --lang go опциясы менен же өз алдынча re2go программасы катары иштетилген).
    C жана Go үчүн документтер бир эле тексттен түзүлгөн, бирок ар башка
    код мисалдары. re2c кодду түзүү подсистемасы толугу менен кайра иштелип чыккан, бул
    келечекте жаңы тилдерди колдоону жеңилдетүү керек.

  • CMakeге альтернативдүү куруу системасы кошулду (рахмат ligfx!).
    Re2cти CMakeге которуу аракеттери көптөн бери жасалган, бирок ligfxге чейин эч ким жок.
    толук чечууну сунуш кылды.
    Autotools боюнча эски куруу системасы колдоого алынууда жана колдонулууда,
    жана жакынкы келечекте андан баш тартуу пландары жок (жарым-жартылай түзбөө үчүн
    бөлүштүрүү иштеп чыгуучулар үчүн көйгөйлөр, жарым-жартылай эски куруу системасы, анткени
    жаңысына караганда туруктуу жана кыска).
    Эки система тең бирдей үзгүлтүксүз Travis CI аркылуу текшерилет.

  • Колдонуу учурунда конфигурацияларда интерфейстин кодун коюу мүмкүнчүлүгү кошулду
    жалпы API (генерикалык API). Мурда көпчүлүк API'лер формада көрсөтүлүшү керек болчу
    функциялар же функция макростору. Эми алар ыктыярдуу түрдө коюлушу мүмкүн
    @@{name} формасындагы же жөн гана @@ (эгерде
    бир гана параметр бар жана эч кандай түшүнүксүз). API стили конфигурацияланат
    re2c:api:style (функциялардын мааниси функционалдык стилди аныктайт, ал эми эркин формадагы маани ыктыярдуу).

  • Бир нече айкалыштырууга мүмкүндүк берген -c, --start-conditions опциясынын жакшыртылган иштеши
    бир re2c блогунда бири-бири менен байланышкан лексиктер. Эми сиз колдоно аласыз
    кадимки блокторду шарттуу блоктор менен бирдейлештирип, бир нече байланышы жок шарттууларды белгилейт
    блоктор бир файлда.
    Жакшыртылган -r, --reuse варианттары (бир блоктон кодду кайра колдонуу
    башка блоктордо) -c, --старт-шарттары жана -f, --сакталуучу абал параметрлери менен бирге
    (каалаган жерден үзгүлтүккө учурашы мүмкүн болгон мамлекеттик лексер
    жана кийинчерээк аткарууну улантыңыз).

  • Киргизилген маалыматтардын аягында иштөө үчүн жаңы кошулган алгоритмдеги мүчүлүштүк оңдолду
    (EOF эрежеси), бул сейрек учурларда туура эмес иштетүүгө алып келген
    кайталануучу эрежелер.

  • Жөнөкөйлөтүлгөн жүктөө процесси. Буга чейин куруу системасы динамикалык түрдө табууга аракет кылган
    өзүн кайра куруу үчүн колдонулушу мүмкүн курулган re2c.
    Бул туура эмес көз карандылыкка алып келди (анткени көз карандылык графиги чыкты
    динамикалык, көпчүлүк куруу системалары жактырбайт).
    Эми, лекселерди кайра куруу үчүн, бул ачыктан-ачык талап кылынат
    куруу системасын конфигурациялаңыз жана RE2C_FOR_BUILD өзгөрмөсүн орнотуңуз.

Бул чыгарууга салым кошкондордун баарына рахмат!

Source: linux.org.ru

Комментарий кошуу