Parser ist die Phase des Compilers, die die Token-Zeichenfolge als Eingabe nimmt und sie mit Hilfe der vorhandenen Grammatik in den entsprechenden Parse-Baum umwandelt. Parser wird auch als Syntax-Analyzer bezeichnet. 

Arten von Parsern: 
Parser werden hauptsächlich in zwei Kategorien eingeteilt: Top-down-Parser und Bottom-up-Parser. Diese werden im Folgenden erläutert. 

1. Top-down-Parser : 
Top-down-Parser ist der Parser, der mit Hilfe von Grammatikproduktionen einen Parser für die gegebene Eingabezeichenfolge erzeugt, indem er die Nichtterminals erweitert, dh er beginnt beim Startsymbol und endet bei den Terminals. Es verwendet die Ableitung am weitesten links. 
Weiterhin wird der Top-Down-Parser in zwei Typen eingeteilt: Rekursiver Abstiegs-Parser und Nicht-rekursiver Abstiegs-Parser. 
 

  • (ich). Rekursiver Abstiegs-Parser : 
    Er wird auch als Brute-Force-Parser oder mit Backtracking-Parser bezeichnet. Es generiert den Parse-Baum im Grunde mithilfe von Brute Force und Backtracking. 

     

  • (ii). Nicht-rekursiver Abstiegsparser: 
    Er wird auch als LL(1)-Parser oder prädiktiver Parser oder ohne Backtracking-Parser oder dynamischer Parser bezeichnet. Es verwendet die Parsing-Tabelle, um den Parsing-Baum zu generieren, anstatt zurückzuverfolgen. 
     

2. Bottom-Up-Parser : 
Bottom-Up-Parser ist der Parser, der mit Hilfe von Grammatikproduktionen den Parse-Baum für den gegebenen Eingabestring erzeugt, indem er die Nichtterminals komprimiert, dh er beginnt bei Nichtterminals und endet beim Startsymbol. Es verwendet die Umkehrung der am weitesten rechts liegenden Ableitung. 
Weiterhin wird der Bottom-Up-Parser in zwei Typen eingeteilt: LR-Parser und Operator-Präzedenz-Parser. 
 

  • (ich). LR-Parser: 
    Der LR-Parser ist der Bottom-Up-Parser, der den Analysebaum für die angegebene Zeichenfolge unter Verwendung einer eindeutigen Grammatik generiert. Es folgt der Umkehrung der am weitesten rechts liegenden Ableitung. 
    LR-Parser gibt es in 4 Typen: 
     
(a). LR(0)
(b). SLR(1)
(c). LALR(1)
(d). CLR(1) 
  • (ii). Operatorvorrang-Parser : 
    Er generiert die Parsing-Baumform aus gegebener Grammatik und Zeichenfolge, aber die einzige Bedingung ist, dass zwei aufeinanderfolgende Nicht-Terminals und Epsilon niemals auf der rechten Seite einer Produktion erscheinen. 
     

Lernen Sie alle GATE CS-Konzepte mit kostenlosen Live-Kursen auf unserem YouTube-Kanal kennen.