16-расм.
С4. В4 қоидадаги альтернативлар рўйхати қуйидаги (17-расм) берилганлар структурасига айлантирилади.
17-расм.
С5. В5 қоидадаги такрорлашлар (цикл) қуйидаги (18-расм) структурага айлантирилади.
18-расм.
Мисол сифатида юқоридаги 7-расмда келтирилган келтириб чиқарилган синтаксис граф учун берилганлар структурасини қурамиз.
Берилганлар структураси шу структура тегишли бўлган нотерминал белги (мақсадни) исми сарлавҳа-тугун билан идентификацияланади. Умуман олганда сарлавҳа зарур эмас, балки унинг ўрнига мақсад майдони ўрнига мос структурага «кириш» ни кўрсатиш мумкин. Лекин сарлавҳадан чоп этилаётган структура исмини сақлаш учун фойдаланиш мумкин:
struct header;
tupedef header * hpointer;
struct header {
pointer entry;
char sym;
};
Кирувчи файлда белгилар кетма-кетлиги кўринишида тасвирланган гапни грамматик таҳлилини амалга ошираётган дастур бир тугундан кейинги тугунга ўтишни ифодаловчи такрорланувчи оператордан ташкил топади.
Терминал белги учун ажратилган sum майдонига белгини ўзи жойланади, нотерминал белги учун эса мос берилганлар структурасига кўрсаткич жойлашади. У граф интерпретациясини берувчи процедура каби ифодаланади, агар нотерминал белгини ифодаловчи тугун учраб қолса, у ҳолда ушбу берилган тугун жорий графни интерпретациясини тугашига олиб келади. Шундай қилиб интерпретация процедураси рекурсив чақирилади. Агар кирувчи файл жорий белгиси (sum ) берилганлар структурасининг жорий тугундаги белгиси билан мос тушса, у ҳолда процедура suс майдони кўрсатаётган тугунга ўтади, акс холда alt майдони кўрсатаётган тугунга ўтади.
Олинган структура 19- расмда келтирилган.
Do'stlaringiz bilan baham: |