In notatia BNF, regulile
sintactice (metadefinitiile, formule metalingvistice) au forma:
<parte-stanga> ::=
parte-dreapta, unde:
<parte-stanga>
|
: desemneaza
simbol neterminal ce se defineste;
|
::=
|
: metasimbol
avand sensul de "egal prin definitie";
|
parte-dreapta
|
:
definitia simbolului neterminal.
|
In cadrul definitiei (parte-dreapta)
se intalnesc urmatoarele elemente:
<simbol
neterminal>
|
: categorie
sintactica folosita in definirea altei categorii sintactice, se include intre
semnele < si >, de exemplu: <Litera>, <Cifra> etc;
|
simbol terminal
|
: element al
alfabetului terminal -> A, b, 1,etc;
|
|
|
: separa
alternativele in definitie;
|
[ ]
|
: indica o
constructie optionala;
|
{ }
|
: indica
posibilitatea repetarii constructiei.
|
Alternativele se constituie
prin juxtapunerea de simboluri neterminale si/sau simboluri terminale.
O diagrama de sintaxa este
un graf orientat avand o singura intrare si o singura iesire. Orice drum
posibil in graf, incepand cu intrarea si terminand cu iesirea, defineste o
constructie sintactica corecta. Ca noduri ale grafului se folosesc urmatoarele
figuri geometrice, pentru care se precizeaza si conditiile de utilizare in
prezentarea limbajului Pascal:
Pentru a ilustra comparativ
cele doua moduri de reprezentare a regulilor sintactice, se prezinta in
continuare formulele metalingvistice si diagramele de sintaxa pentru litera,
cifra (zecimala) si cifra hexazecimala.In sens restrans, diagramele de sintaxa
si formulele metalingvistice ar trebui asociate numai constructiilor sintactice
propriu-zise (neterminale). Totusi, avand in vedere ca utilizatorul este
implicat nemijlocit in alcatuirea unora din clasele de componente ale
lexicului, se vor folosi, si in cazul acestora, diagrame de sintaxa si/sau
metadefinitii.
<litera>::=
A|B|C|...|X|Y|Z|a|b|c|...|x|y|z
<cifra>:: = 0|1|2|3|4|5|6|7|8|9
<cifra hexazecimala>:: =
<cifra>|A|B|C|D|E|F|a|b|c|d|e|f
In cele ce urmeaza vor fi
folosite cu precadere diagramele de sintaxa care, pe langa rigurozitate, sunt
si deosebit de sugestive. Cuvintele rezervate vor fi scrise cu majuscule, iar
celelalte elemente cu litere mici.
Niciun comentariu:
Trimiteți un comentariu