Kiterjesztett Backus-Naur forma (rbnf) - stadopedia
A leírás kényelmének és tömörségének javítása érdekében tanácsos további konstrukciókat bevezetni a nyelvre. Különböző kiterjedt fémes nyelvformák léteznek, amelyek kissé eltérnek egymástól. Sokszínűségüket gyakran a programnyelv-fejlesztők vágya magyarázza a saját nyelvük leírására. Ilyen jól ismert fémjelöltek közé tartozik a PLYY fémjelszó, a Wirth fémnyelve, a Kernigan-Ritchie metal nyelv, amely Cu-t ír le. Gyakran az ilyen nyelveket kiterjesztett Backus-Naur formáknak (RBNF) hívják.
Különösen a Wirth által használt RBNF a következő tulajdonságokkal rendelkezik:
- a "[" és "]" szögletes zárójelek azt jelentik, hogy a benne foglalt szintaktikai szerkezet hiányozhat;
- a göndör zárójelek "" jelentése annak ismétlése (esetleg 0-szor);
- a zárójelek ("és") "az alternatív tervek korlátozására szolgálnak;
- a zárójelek és a "" perjel kombinációja az ismétlés egy vagy több alkalommal történő kijelzésére szolgál. A nemterminális szimbólumokat intuitív jelentést kifejező és orosz nyelven írt szavak képviselik.
Ha egy nemterminális több szemantikus szóból áll, akkor együtt kell írni őket. Ebben az esetben a kifejezés felfogásának megkönnyebbülésének javítása érdekében célszerű minden szó nagybetűvel vagy szókincsben lévő kifejezésekkel szúrni. A terminál szimbólumokat a latin ábécé (fenntartott szavak) betűi vagy az idézőjelek közé záródó karakterláncok jelölik. A szintaktikai szabályokat a sor elején "$" jelzés követi. Minden szabály "." (Dot) jelzéssel fejeződik be. A szabály bal oldala jobbra van leválasztva a "=" (egyenlő) jelzéssel és az alternatíva - a függőleges vonallal "|". E szabályok szerint az azonosító szintaxisa így fog kinézni:
$ letter = "" A "|" B "|" C "|" D "|" E "|" F "|" G "|" H "|" I "|" J "|" K "|" L "|" M "|" N "|" O "|" P "|" Q "|" R "|" S "|" T "|" U "|" V "|" W "|" X "| "Y" | "Z" | "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" "|" v "|" w "|" x "|" y "|" z ".
Példaként írjuk le a demonstrációs programozási nyelv szintaxisát a Backus-Naurian formák segítségével.