TIES448 Luento 3
Jäsentäjän tehtävät
- selaajan tuottaman sanasjonon muuttaminen ohjelman loogista rakennetta kuvaavaksi tietorakenteeksi
- ohjelmassa olevien kielioppivirheiden tunnistaminen ja diagnosointi
Jäsentäjän laatiminen
- nykyaikana pitää AINA perustua kontekstittomaan kielioppiin!
- kannattaa etsiä harjoitustyön lähdekielen pohjana olevan kielen valmis kielioppi, josta voi sitten lähteä liikkeelle
- ks. metakielet
- voi tehdä käsin rekursiivisesti etenevän (ennustavan) jäsentimen
- ks. erillinen teksti
- voi myös käyttää FIRST/FOLLOW-joukkoja, ks kurssikirja
- yleensä kannattaa käyttää jäsentäjägeneraattoreita
- parserikombinaattorikirjasto on hyvä vaihtoehto Haskellissa
Kielioppimalleja
Valinnaisuus
<optional-semicolon> ::= <empty> | ;
<empty> ::=
Toisto (tyhjä sallittu)
<stmts> ::= <empty> | <stmts> <stmt>
<empty> ::=
Epätyhjä lista (pilkulla erotettu)
<list> ::= <item> | <list> , <item>
Tyypillisiä ongelmia
Kertausta kurssilta TIEA241 Automaatit ja kieliopit:
Vaihtoehtoinen formalismi
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.