Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
1.2.STRUKTURAKOMPILATORA
7
5.rate
jestleksememodwzorowanymnatoken
(id
,3
>
,gdzie3wskazuje
wpiswtablicysymbolidlarate.
6.*jestleksememodwzorowanymnatoken(∗>.
7.60jestleksememodwzorowanymnatoken(60>1.
Spacjeoddzielająceleksemypowinnyzostaćpominięteprzezanalizatorleksy-
kalne.
Rysunek1.7pokazujereprezentacjęwyrażeniaprzypisania(1.1)poanalizie
leksykalnejjakosekwencjętokenów
id1(=>id2(+>id3(∗>(60>
(1.2)
Wtejreprezentacjinazwytokenów=,+oraz
*
symbolamiabstrakcyjnymi
dlaoperatorówprzypisania,dodawaniaimnożenia,odpowiednio.
1.2.2.Analizaskładniowa
Drugafazapracykompilatoratoanalizaskładniowa(parsing).Analizatorskła-
dniowy,nazywanyteżparserem,używapierwszychkomponentówtokenówutwo-
rzonychprzezanalizatorleksykalnydozbudowaniapośredniejreprezentacji
przypominającejdrzewo,odwzorowującejgramatycznąstrukturęstrumienia
tokenów.Typowąreprezentacjąjestdrzewoskładniowe,wktórymkażdywe-
wnętrznywęzełoznaczaoperację,apotomnegałęziewęzłareprezentująargu-
mentytejoperacji.Drzewoskładniowedlastrumieniatokenów(1.2)pokazuje
rysunek1.7jakowyjścieanalizatoraskładniowego.
Drzewotopokazujekolejność,wjakiejwykonywaneoperacjewchodzące
wskładwyrażeniaprzypisania
position=initial+rate*60
Drzewotozawierawewnętrznywęzełzetykietą
*
dla
(id
,3
>
jakolewegopotomka
iliczbęcałkowitą60jakoprawegopotomka.Węzeł
(id
,3
>
reprezentujeidentyfi-
kator
rate
.Węzełzetykietą
*
jasnopokazuje,żemusimynajpierwpomnożyć
wartość
rate
przez60.Węzełoznaczony+pokazuje,żemusimydodaćwynik
tegomnożeniadowartości
initial
.Korzeńdrzewa,oznaczony=,wskazuje,
żemusimyprzechowaćwyniktegododawaniawlokalizacjiwskazywanejprzez
identyfikator
position
.Takieuporządkowanieoperacjijestspójnezestandar-
dowąkonwencjąarytmetyczną,głoszącą,żemnożeniemawyższypriorytetniż
dodawanie,atymsamymmusibyćwykonaneprzeddodawaniem.
1
Ztechnicznegopunktuwidzeniadlaleksemu
60
powinniśmyutworzyćtokenpodobnydo
(number
,4
>
,przyczym4wskazywałobywpiswtablicysymbolidlawewnętrznejreprezentacji
liczbycałkowitej60,alenaraziewolimyodłożyćomówienietokenówdlaliczb(stałych)
dorozdziału2.Wrozdziale3omówimytechnikibudowaniaanalizatorówleksykalnych.