re2c 4.0

V úterý 19. listopadu byla vydána verze re2c – generátoru lexikálních analyzátorů (také kompilátor regulárních výrazů do kódu v cílovém programovacím jazyce). re2c se specializuje na generování rychlých a snadno integrovateľných lexerů. Od známějšího ekvivalentu flex se liší flexibilním rozhraním, generováním optimalizovaných netabulkových lexerů a podporou extrakce podshod (submatch extraction) na základě deterministických konečných automatů s tagy (TDFA). re2c se používá v projektech, kde je důležitá rychlost práce lexeru, například v Ninja a v PHP.

Ve verzi 4.0 byla zásadně přepracována podsystema generace kódu, což umožnilo přidat podporu pro osm nových jazyků (D, Haskell, Java, JavaScript, OCaml, Python, V, Zig) vedle již podporovaných (C/C++, Go, Rust), a také obecný mechanismus pro přidání nových jazyků prostřednictvím konfiguračních souborů. Kódegenerátor je odpovědný za translaci již vybudovaného a optimalizovaného konečného automatu do kódu, tedy jeho úkolem je vybrat vhodné konstrukce pro řízení v cílovém jazyce, datové typy, obecný model programu atd. Dříve byla celá tato logika součástí zdrojového kódu re2c, a aby bylo možné ji změnit nebo přidat nový jazyk, bylo nutné upravit zdrojový kód a znovu sestavit re2c. Takové patche nebyly přijímány do hlavního repozitáře bez realizace standardní sady příkladů a testů, což dále komplikovalo celý proces. Nyní byla celá tato logika přesunuta do syntaktických souborů – textových konfiguračních souborů, které mohou být poskytnuty uživatelem (ve výchozím nastavení re2c používá standardní). Zdrojový kód re2c je úplně zbaven detailů konkrétního jazyka a spoléha pouze na syntaktický soubor. Uživatel může částečně předefinovat existující syntaktický soubor nebo napsat nový od nuly. Pro všechny oficiálně podporované jazyky je úplná dokumentace s příklady.

Mimochodem, sama myšlenka syntaktických souborů vznikla díky jednomu komentáři na LORu, za což děkujeme re2c 4.0the_coder.

Do vydání bylo zahrnuto mnoho dalších změn zaměřených na zjednodušení uživatelského rozhraní, zlepšení práce se zachycujícími skupinami (capturing groups) a byla přidána online platforma pro úpravu a kompilaci příkladů: http://re2c.org/playground.

Zdroj: linux.org.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster