Дүйсенбіде, 20 шілдеде, жылдам лексикалық анализатор генераторы re2c шығарылымы шықты.
Негізгі өзгерістер:

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

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

  • Пайдалану кезінде конфигурацияларда интерфейс кодын орнату мүмкіндігі қосылды
    generic API (generic API). Бұрын API интерфейстерінің көпшілігі пішінде көрсетілуі керек еді
    функциялар немесе функция макростары. Енді оларды ерікті түрде орнатуға болады
    @@{name} пішінінің атаулы үлгі параметрлері бар жолдар немесе жай @@ (егер
    бір ғана параметр бар және ешқандай түсініксіз). API стилі конфигурацияланады
    re2c:api:style (функциялар мәні функционалдық мәнерді көрсетеді, ал еркін пішін мәні ерікті).

  • Бірнеше біріктіруге мүмкіндік беретін -c, --start-conditions опциясының жақсартылған жұмысы
    бір re2c блогында өзара байланысқан лексерлер. Енді сіз пайдалана аласыз
    қарапайым блоктарды шартты блоктармен тең және бірнеше байланыссыз шартты орнату
    блоктар бір файлда.
    Жақсартылған -r, --reuse опциялары (бір блоктан кодты қайта пайдалану
    басқа блоктарда) -c, --start-шарттары және -f, --storable-state опцияларымен бірге
    (еркін жерде үзілуі мүмкін күйлі лексер
    және кейінірек орындауды жалғастырыңыз).

  • Енгізілген деректердің соңын өңдеуге арналған жаңадан қосылған алгоритмдегі қате түзетілді
    (EOF ережесі), бұл сирек жағдайларда қате өңдеуге әкелді
    қайталанатын ережелер.

  • Жеңілдетілген жүктеу процесі. Бұрын құрастыру жүйесі қазірдің өзінде динамикалық түрде табуға тырысты
    өзін қайта құру үшін пайдаланылуы мүмкін салынған re2c.
    Бұл дұрыс емес тәуелділікке әкелді (себебі тәуелділік графигі шықты
    динамикалық, оны құрастыру жүйелерінің көпшілігі ұнатпайды).
    Енді лексерлерді қайта құру үшін бұл нақты талап етіледі
    құрастыру жүйесін конфигурациялаңыз және RE2C_FOR_BUILD айнымалы мәнін орнатыңыз.

Осы шығарылымға үлес қосқандардың барлығына рахмет!

Ақпарат көзі: linux.org.ru

пікір қалдыру