LL(1)

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 3. juli 2020; checks kræver 5 redigeringer .

LL(1)  - LL parser , top-down parsing algoritme . Tallet 1 siger, at der kun kræves et token for at definere parsestien .

Let at skrive i hånden uden brug af automatiske generatorer. Bruges til at parse kode i en række programmeringssprog som Pascal og Python (før 3.8 [1] ).

Den er meget hurtig i udførelse og har en karakteristisk fejlmeddelelse som "sådan og sådan en karakter var forventet."

Regelguidetegn

For hver ikke -terminal A i grammatikken genereres et sæt terminaler First(A), defineret som følger:

For hver regel genereres et sæt guidetegn , defineret som følger:

Det er muligt at generalisere disse definitioner til de tilfælde, hvor der er regler i formen A → null.

Det er klart, at First(A) er foreningen af ​​sættene af ledende symboler for alle regler med A på venstre side.

En grammatik er LL(1) parsabel , hvis for et hvilket som helst regelpar med samme venstre side, sættet af hjælpetegn ikke skærer hinanden.

For at finde ud af, om en grammatik er parset af LL(1) eller ej generelt, er det praktisk at bruge kriteriet for LL(1)-grammatikker [2] .

Beskrivelse af analysatoren

Stakken bruges, hvor antallet af terminaler og ikke-terminaler, input (terminaler) og output (antal regler) flows er placeret.

Først skubbes E, grammatikkens startsymbol, ind på stakken.

Derefter for hvert nyt tegn fra inputstrømmen, indtil den slutter:

Sprog

Se også

Noter

  1. PEP 617 - Ny PEG-parser til CPython | peps.python.org . peps.python.org . Hentet 15. juli 2022. Arkiveret fra originalen 15. juli 2022.
  2. Kozlov Sergey Valerievich, Svetlakov Alexey Vladimirovich. Om LL(1)-GRAMMATIKKER, ALGORITHMER OM DEM OG METODER TIL DERES ANALYSE I PROGRAMMERING  // International Journal of Open Information Technologies. - 2022. - Vol. 10 , nr. 3 . — S. 30–38 . — ISSN 2307-8162 . Arkiveret fra originalen den 18. maj 2022.

Litteratur

Links