LL(1)

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 3.7.2020 tarkistetusta versiosta . tarkastukset vaativat 5 muokkausta .

LL(1)  - LL -jäsennys , ylhäältä alas -jäsennysalgoritmi . Numero 1 kertoo, että jäsennyspolun määrittämiseen tarvitaan vain yksi merkki .

Helppo kirjoittaa käsin ilman automaattisia generaattoreita. Käytetään koodin jäsentämiseen useilla ohjelmointikielillä , kuten Pascal ja Python (ennen 3.8 [1] ).

Se on erittäin nopea suoritus ja siinä on tyypillinen virheilmoitus, kuten "sellaista ja sellaista hahmoa odotettiin."

Sääntöoppaan merkit

Jokaiselle kieliopin ei -päätteelle A luodaan joukko päätteitä First(A), joka määritellään seuraavasti:

Kullekin säännölle luodaan ohjemerkkijoukko, joka määritellään seuraavasti:

Näitä määritelmiä on mahdollista yleistää tapaukseen, jossa muodon säännöt ovat olemassa A → null.

On selvää, että First(A) on kaikkien sääntöjen johtavan symbolijoukkojen liitto, jossa A on vasemmalla puolella.

Kielioppi on LL(1) jäsennettävä , jos jollakin sääntöparilla, jolla on sama vasen puoli, ohjemerkkien joukko ei leikkaa.

Sen selvittämiseksi, jäsentääkö kielioppi LL(1) vai ei yleensä, on kätevää käyttää LL(1)-kielioppien kriteeriä [2] .

Analysaattorin kuvaus

Pinoa käytetään, jossa terminaalien ja ei-päätteiden lukumäärä, tulo- (päätteet) ja lähtö (sääntömäärät) -virrat sijaitsevat.

Ensin E, kieliopin aloitussymboli, työnnetään pinoon.

Sitten jokaiselle uudelle merkille syöttövirrasta sen loppuun:

Kielet

Katso myös

Muistiinpanot

  1. PEP 617 - Uusi PEG-jäsennin CPythonille | peps.python.org . peps.python.org . Haettu 15. heinäkuuta 2022. Arkistoitu alkuperäisestä 15. heinäkuuta 2022.
  2. Kozlov Sergei Valerievich, Svetlakov Aleksei Vladimirovich. Tietoja LL(1)-KIETOISTA, NIIDEN ALGORITMEISTA JA NIIDEN ANALYYSIMENETELMISTÄ OHJELMOINTIIN  // International Journal of Open Information Technologies. - 2022. - Osa 10 , no. 3 . - S. 30-38 . — ISSN 2307-8162 . Arkistoitu alkuperäisestä 18. toukokuuta 2022.

Kirjallisuus

Linkit