Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
2.2.DEFINIOWANIESKŁADNI
49
(b)9-5jestlistnapodstawieprodukcji(2.2),gdyż9jestlisti5jestdigit.
(c)9-5+2
jestlistnapodstawieprodukcji(2.1),gdyż
9-5
jestlisti
2
jestdigit.
Przykład2.3:
Niecoinnymrodzajemlistyjestlistaparametrówwwywoła-
niufunkcji.WjęzykuJavaparametryujętewnawiasach,jakwwywołaniu
max(x,y)
funkcji
max
zparametrami
x
i
y
.Szczególnymprzypadkiemtakiejlisty
jestto,żemiędzyterminalami
(
i
)
możeznajdowaćsiępustalistaparametrów.
Możemyzacząćbudowaćgramatykędlatakichsekwencjiprzyużyciuponiższych
produkcji:
optparams
call
id(optparams)
params|ć
params
params,param|param
Zwróćmyuwagę,żedrugiemożliweciałodlaoptparams(noptionalparameter
list”,opcjonalnalistaparametrów)to
ć
,oznaczającypustyciągsymboli.Właśnie
tak,optparamsmożezostaćzastąpionepustymciągiem,zatemwywołaniemoże
składaćsięznazwyfunkcji,poktórejnastępujeciągdwóchsymboliterminalnych
()
.Zauważmy,żeprodukcjedlaparamsanalogicznedlalistzprzykładu
2.1,przyczymprzecinekzastępujeoperatorarytmetyczny
+
lub
-
iparam
zastępujedigit.Niepokazujemytuprodukcjidlaparam,gdyżparametry
naprawdęarbitralnymiwyrażeniami.Wkrótceomówimyodpowiednieprodukcje
dlaróżnychkonstrukcjijęzyka,takichjakwyrażenia,instrukcjeitakdalej.
Analizaskładniowa(parsing)poleganapobraniuciągusymboliterminalnych
iustaleniu,wjakisposóbjestonwyprowadzanyzsymbolustartowegograma-
tyki,ajeśliniemożeonzostaćwyprowadzonyzsymbolustartowego,zgłaszany
jestbłądskładniowywdanymciągu.Parsingjestjednymnajbardziejfunda-
mentalnychproblemówwcałejkompilacji;głównepodejściazostanąomówione
wrozdziale4.Wtymrozdzialedlaprostotyzaczniemyodprogramówźródłowych
takichjak
9-5+2
,wktórychkażdyznakjestsymbolemterminalnym.Wogólnym
przypadku,programźródłowybędziezawierałwieloznakoweleksemygrupowane
przezanalizatorleksykalnywtokeny,którychpierwszymikomponentami
terminaleprzetwarzaneprzezparser.
2.2.3.Drzewarozbioru
Drzeworozbioru(parsetree)graficzniepokazuje,jakzsymbolustartowego
gramatykiwywodzisięciągwystępującywjęzyku.Jeślinieterminalne
A
ma
produkcję
AXYZ
,wówczasdrzewoanalizymożezawieraćpośredniwęzeł
oznaczonyetykietą
A
ztrzemapotomnymiwęzłamiopisanymijako
X
,
Y
oraz
Z
,
odlewejdoprawej:
A
X
Y
Z