Bakalářská práce

Generický BNF parser

Generic BNF-driven parser

Václav Vacek, učo 172426
Abstract

This thesis describes the bnfparser2 C++ library. It is a generic runtime-generated parser capable of parsing any context-free language. The parser is primarily meant for verification and diagnosis of telecommunication protocols, but the usage is not restricted to that. First, the possibility of using tools already available is discussed. The rest of the thesis is then fully devoted to bnfparser2. …více

Zadání práce
Úkolem diplomové práce bude vytvoření za běhu generovatelného parseru. Řešení bude realizováno jako C++ knihovna. Hlavní komponentou bude třída Parser, realizující vlastní parser.

Odhalení chyb:

  • oznámení chyby při pokusu o vytvoření parseru pro nesprávnou gramatiku a metasyntax
  • oznámení chyby při parsování nekorektní zprávy a lokalizace chyby

Předpokládané použití:

  • Knihovna se přilinkuje.
  • Vytvoří se instance třídy BnfParser2 pro potřebné gramatiky s příslušnými parametry.
  • Parsování bude spočívat ve volání metody parse_word a bude vracet instance vhodně definované třídy se strukturálními daty.

Obecné:

  • Důraz spíše na robustnost než na rychlost.
  • Předpokládáme, že parser bude zpracovávat ("míra robustnosti") libovolné CFL gramatiky včetně nejednoznačných. V případě, že gramatika není jednoznačná, nelze hlásit warning, neboť tento problém je nerozhodnutelný.
  • Parser by měl podporovat načtení konkrétní specifikace syntaxe z několika souborů.
  • Na vstupu budou pouze BNF gramatiky
  • Metasyntaxe (ABNF, EBNF, ...) definována pomocí základních pravidel a metaoperátorů.
  • Gramatiky vkládány read-only. Všechny potřebné změny externě v konfiguračních souborech gramatik.
  • Konfigurační soubory obsahují úpravy gramatiky a odkazy do externích namespaces.
  • Namespaces: implicitně má každá gramatika vlastní namespace a odkazuje se pouze interně. Externí odkazy jsou definovány v konfiguračním souboru.
  • Vzorový popis notace gramatiky v meta notaci by měl být vytvořen pro ABNF definovanou v [RFC2234] a rozšíření ABNF definované v [RFC 2616].
  • Parser by měl být otestován pomocí SIP zpráv. V tomto případě bude parser řízen třemi soubory: specifikací ABNF notace, základními pravidly ABNF vykopírovanými z [RFC2234] a syntaxí SIP zpráv vykopírované z [RFC 3261].
  • Návrh a implementace parseru by měla být plně dokumentovaná.
Práce zkontrolována:
11. 10. 2008 12:58, (IS automaticky)
Plný text práce
1,4 MB / soubor PDF
Jazyk práce
angličtina angličtina
Termín obhajoby
5. 2. 2008
Práce byla úspěšně obhájena

Vedoucí

doc. RNDr. Vojtěch Řehák, Ph.D., učo 3721
KTP FI MU

Oponenti

Autor posudku dosud neidentifikován.
Autor posudku dosud neidentifikován.

Masarykova univerzita Fakulta informatiky
Studijní program
Informatika
 
Název
Vložil
Vloženo
Práva
Archiv závěrečné práce Václav Vacek FI B-IN BcIN, učo 172426 pa8aa/8
3. 1. 2008
  • Přidání souboru

    Soubor nebo složku lze nahrát pomocí tlačítka Přidat.
  • Další operace se soubory

    Podrobnosti lze zjistit označením příslušného řádku.
  • Pohled pro experty

    Pro častou práci je možné zvolit režim Více možností.
  • Vyhledávání souborů

    Vyhledávaný výraz můžete zadat přímo do adresního řádku.
  • Rychlý přístup k souborům

    Pomocí funkce Nedávné je možné se rychle vrátit k právě prohlíženým souborům. Oblíbené soubory je také možné označit Hvězdičkou.