У понедељак, 20. јула, објављено је издање ре2ц, брзог генератора лексичког анализатора.
Главне промене:

  • Додата подршка за Го језик
    (омогућено или са --ланг го опцијом за ре2ц, или као самостални ре2го програм).
    Документација за Ц и Го је генерисана из истог текста, али са различитим
    примери кода. Подсистем за генерисање кода у ре2ц је потпуно редизајниран, што
    требало би да олакша подршку за нове језике у будућности.

  • Додат је алтернативни систем изградње на ЦМаке (хвала лигфк!).
    Покушаји да се ре2ц преведе у ЦМаке су прављени дуго времена, али пре лигфк-а нико
    понудио комплетно решење.
    Стари систем изградње на Аутотоолс-у наставља да се подржава и користи,
    а у догледној будућности не планира се напуштање (делимично да се не ствара
    проблеми за програмере дистрибуције, делом због старог система изградње
    стабилнији и сажетији од новог).
    Оба система се подједнако континуирано тестирају коришћењем Травис ЦИ.

  • Додата могућност подешавања кода интерфејса у конфигурацијама када се користи
    генерички АПИ (генерички АПИ). Раније је већина АПИ-ја морала бити наведена у обрасцу
    функције или макрои функције. Сада се могу поставити у облику произвољног
    стрингови са именованим параметрима шаблона у облику @@{наме} или само @@ (ако
    постоји само један параметар и нема двосмислености). АПИ стил је подесив
    ре2ц:апи:стиле (вредност функције специфицира функционални стил, док је вредност слободног облика произвољна).

  • Побољшан рад опције -ц, --старт-цондитионс, која вам омогућава да комбинујете неколико
    међусобно повезани лексери у једном ре2ц блоку. Сада можете користити
    обичне блокове у рангу са условним и поставити неколико неповезаних условних
    блокова у једној датотеци.
    Побољшане опције -р, --реусе (поновна употреба кода из једног блока
    у другим блоковима) у комбинацији са опцијама -ц, --старт-цондитионс и -ф, --сторабле-стате
    (лексер са стањем који се може прекинути на произвољној локацији
    а извршење наставити касније).

  • Исправљена је грешка у новододатом алгоритму за руковање крајем улазних података
    (ЕОФ правило), што је у ретким случајевима довело до нетачне обраде
    правила преклапања.

  • Поједностављени процес покретања. Раније је систем изградње покушавао да динамички пронађе
    изграђен ре2ц који би могао да се користи за реконструкцију самог себе.
    То је довело до погрешних зависности (јер се показао граф зависности
    динамичан, што већина система изградње не воли).
    Сада, да би се поново изградили лексери, то је потребно експлицитно
    конфигуришите систем изградње и поставите променљиву РЕ2Ц_ФОР_БУИЛД.

Хвала свима који су допринели овом издању!

Извор: линук.орг.ру

Додај коментар