Rekursiv nedstigningsmetod

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 19 december 2015; kontroller kräver 3 redigeringar .

Den rekursiva descent-parsern är en  uppifrån -och- ned -tolkningsalgoritm som implementeras av ömsesidigt anropande procedurer, där varje procedur motsvarar en av reglerna för kontextfri grammatik eller BNF . Tillämpningar av reglerna sekventiellt, från vänster till höger, förbrukar de tokens som tas emot från den lexikala analysatorn . Det är en av de enklaste parsningsalgoritmerna, lämplig för en helt manuell implementering.

Implementeringsalternativ

Predictive parser

För tolkare av denna typ behövs en lämplig COP-grammatik , närmare bestämt en LL(k)-grammatik som tillåter ett av alternativen för att expandera varje icke-terminal att entydigt väljas (förutsägas) för nästa token eller tokens.

En sådan parser körs i linjär tid.

En variant är LL-parsern  , en implementering av en prediktiv parser med automatisk konstruktion av en "prediktionstabell" som bestämmer den lämpliga regeln för att expandera den icke-terminala baserat på den givna icke-terminalen och nästa token.

Backtracking parser

Istället för att göra en förutsägelse försöker analyseraren helt enkelt tillämpa alla alternativa regelval i ordning, tills ett av försöken lyckas.

En sådan parser kan kräva exponentiell körtid och är inte alltid garanterad att slutföras, beroende på grammatiken. Sårbar för vänsterrekursion .