Úvod Mapa webu Kontakty EN

Jan Ringoš, Tringi.TRIMCORE.cz

Vývoj a programování  »  Knihovny a zdrojové kódy  » 

Brace C++ Library

Knihovna propracovaných C++ šablon určená k parsování, serializaci a práci s textovými, ručně editovatelnými, hierarchickými daty. Vlastní formát je na zápis a údržbu jednodušší než XML, přesto má podobnou filozofii a především je již v mnoha variantách široce používaný.

Tento projekt je hostován na serveru SourceForge.net [cíl odkazu vede mimo tento web] a uvedené odkazy ke stažení i k dokumentaci vedou tam.
Stáhnout

Stáhnout: brace-beta-3.zip

Zdrojové kódy knihovny jako ZIP balíček. Verze Beta 3
Velikost souboru: 27 kB

Podrobnosti

Současná verze knihovny disponuje sice důkladným, ale pouze základním, parserem. Vyjma manipulačních možností daných použitím standardních kontejnerů (ve výchozí konfiguraci) se jedná jen o serializaci a parsování stromů textových údajů a bloků. Žádná další analýza nebo převod textů na jiné požadované hodnoty v knihovně prováděna není. Úložiště samo je ale snadno parametrizovatelné, lze vybrat mezi standardními kontejnery i triviálně doplnit jiný. Parser i serializér jsou nastavitelné až do úrovně volby kódů jednotlivých znaků pomocí tzv. trait struktur. A všechny typy a metody lze instanciovat pro různě široké znakové typy (char, wchar_t, …).

Instalace a použití této knihovny se nijak neliší od jiných C++ knihoven. Naopak, může být ještě snazší, protože je celá knihovna implementována jako šablony v hlavičkových souborech.

Přiloženy jsou dva jednoduché příklady, bohužel ale další jedinou dostupnou dokumentací jsou zdrojové kódy samotné, případně komentáře.

Definice

[token [token […]]] [\n] {
    [token [token […]]] [;|\n]
}[;]

Ukázkový brace soubor

setup {
    window {
        topmost: false;
        noclose: false;
    }
    resolution {
        width: 320
        height: 240
        bpp: 32
        freq: 75
    }
    control {
        horizontal {
            sensitivity: "10.0";
            reverse: false;
        };
        vertical {
            sensitivity: "10.0";
            reverse: false;
        };
    }
    renderer {
        ratio: "1.333333";
        depth: 200.0; // far Z plane
    }
}

Další vývoj

Prioritním problémem knihovny je tokenizer, který je nutno upravit, případě přepracovat tak, aby korektně zpracoval desetinná čísla ve všech možných notacích a přesto správně oddělil textové tokeny oddělené tečkou. Další funkcí k zapracování je konverze z UTF-8 (případně i UTF-16) na použitou šířku znaku, a s tím spojené rozpoznávání BOM.

Pro konečnou verzi knihovny je pak plánováno efektivní mapování použitelné například pro konfigurační soubory. To znamená zpracování načítané nebo již načtené hierarchie brace bloků, a podle zadaného předpisu nastavení zkonvertovaných hodnot do běžné struktury proměnných.

Požadavky a závislosti

  • C++99 konformní kompilátor

Prověřená kompatibilita

  • MinGW (GCC 4.2)

Licence

Brace C++ Library je svobobný a otevřený software dostupný pod zlib licencí.
Pro podrobný text licence a další informace přejděte na zlib Licence.

Relevantní odkazy

portfolio, knihovna programů, nástrojů a zajímavého software