1 / 12

Santaktická analýza zhora nadol

Santaktická analýza zhora nadol. Syntak ti ck ý analyzátor ako súbor rekurzívnych procedúr. Základ každý symbol gramatiky je implementovaný ako procedúra. Procedúra pre neterminál. Vytvára sa na základe pravej strany príslušného pravidla

tekla
Download Presentation

Santaktická analýza zhora nadol

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Santaktická analýza zhora nadol

  2. Syntaktický analyzátor ako súbor rekurzívnych procedúr • Základ • každý symbol gramatiky je implementovaný ako procedúra

  3. Procedúra pre neterminál • Vytvára sa na základe pravej strany príslušného pravidla • Zisťuje, či terminálny prefix ľavých vetných foriem doterajšej analýzy je v zhode s prefixom analyzovaného reťazca • Volá procedúru podľa nasledujúceho symbolu príslušnej pravej strany zodpovedajúceho pravidla

  4. Procedúra pre terminál • Pracuje s prvým symbolom nespracovanej časti vstupného reťazca – SYMB, ktorý sa načítava procedúrou LEX • Pre každý terminál t  T sa vytvorí procedúra pt, ktorá má tvar Procedure pt; Begin if SYMB = t then LEX else chyba := True end;

  5. Procedúra pre neterminál • Pre každý neterminál a pravidlo A -> α1 | α2 | …| αn vytvoríme procedúru pA tvaru Procedure pA; beginif not CHYBA then begin if SYMB in FF1 thenα’1else if SYMB in FF2 thenα’2else … if SYMB in FFn thenα’nelse CHYBA := true end end

  6. Procedúra pre neterminál Cont. • Kde FFi pre 1 <= i <= n predstavuje množinu FIRST(αi) , ak e nie je v FIRST(αi), inak Množinu FIRST(αi)∪ FOLLOW (A) α’i - je postupnosť príkazov zodpovedajúcich jednotlivým symbolom reťazca αi

  7. Operačná časť synataktického analyzátora • begin LEX; CHYBA := False; pSend

  8. Príklad – Jednoduchý AV • Gramatika: • E -> T E’ • E’ -> + T E’ • E’ -> e • T -> F T’ • T’ -> * F T’ • T’ -> e • F -> ( E ) • F -> a

  9. Analyzátor v jazyku „ Pascal like“ type SYMBOLY = (id, plus, krat, lz, pz, e) procedure id; begin if SYMB = id then LEX else CHYBA := true end

  10. Analyzátor v jazyku „ Pascal like“ Cont. procedure E; begin if not CHYBA then begin if SYMB in [ lz, id ] then begin T; E’ end else CHYBA := true end end

More Related