EBNF

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken

De Extended Backus Naur Form volgens ISO/IEC 14977 : 1996(E)
Het ISO comité heeft de officiële versie van haar uitgebreide BNF niet vrijelijk beschikbaar gesteld, maar gelukkig is er iemand zo vriendelijk geweest de laatste draft-versie ervan gratis openbaar te maken op http://www.cl.cam.ac.uk/~mgk25/iso-ebnf.html

Iedereen die wel eens een software-handleiding heeft gelezen kent waarschijnlijk wel deze veelgebruikte uitbreiding op BNF: iets tussen vierkante haken [ ] is optioneel (mag worden overgeslagen). In het UNIX-commando, bijvoorbeeld, voor directory-listings

ls [namen]

mag argument namen worden weggelaten (dan wordt de huidige directory-inhoud getoond). De vierkante haken moeten hier dus niet letterlijk worden ingetoetst op de computerterminal, maar zijn puur voor het schrijven van de handleiding van het programma ls. BNF wordt met name gebruikt om de syntaxis van computercommando's te beschrijven.

Met behulp van de ISO-EBNF-taal zou men over deze Nederlandstalige Wikipedia bijvoorbeeld het volgende kunnen zeggen:

"[[", LEMMA, "]]"
zorgt dat de Wiki-software eerst gaat zoeken naar een pagina met als titel LEMMA. Als die wordt gevonden zal LEMMA als hyperlink worden getoond met HTML-code die er zo uitziet:
"<a href='//nl.wikipedia.org/wiki/", LEMMA, "'; class='internal' title='", LEMMA, "'>", LEMMA, "</a>"
Maar als zo'n pagina niet wordt gevonden, komt er een klikbaar vraagtekentje achter LEMMA te staan, de Wiki-server geeft:
LEMMA, "<A HREF='//nl.wikipedia.org/wiki/", LEMMA, "'>?</A>"

Een ander Wiki-voorbeeld: als je een automatisch link naar een andere taal wilt maken, type je bovenaan in de bewerkingspagina

"[[", ("en" | "fr" | "de"), ":", LEMMA_VERTAALD, "]]"

waarbij LEMMA_VERTAALD het vertaalde LEMMA is in respectievelijk de Engelse, Franse of Duitse taal.

Na al die voorbeelden eindelijk iets over ISO-EBNF zelf:

  • [ ] vierkante haken geven 0 of 1 keer aan;
  • { } accolades geven 0 of meer keer aan;
  • | met verticale streepjes kunnen keuzemogelijkheden worden gegeven.

Zie ook[bewerken]