/* zmienna globalna */
void parsujWyrażenie() { if (następny_znak == liczba)
parsujIloczyn(); parsujOpcjonalnePlusWyrażenie(); } else { błąd();
void parsujIloczyn() { if (następny_znak == liczba)
następny_znak = odczytaj_znak(); parsujOpcjonalneRazyIloczyn(); } else { błąd();
void parsujOpcjonalnePlusWyrażenie() { if (następny_znak == '+')
następny_znak = odczytaj_znak(); parsujWyrażenie(); } else if (następny_znak == KONIEC_PLIKU) { /* pusty ciąg znaków */ } else { błąd();
void parsujOpcjonalneRazyIloczyn() { if (następny_znak == '*')
następny_znak = odczytaj_znak(); parsujIloczyn(); } else if (następny_znak == '+' || następny_znak == KONIEC_PLIKU){ /* pusty ciąg znaków */ } else { błąd();
void parsuj() { następny_znak = odczytaj_znak(); parsujWyrażenie(); if (następny_znak != KONIEC_PLIKU) błąd(); }
Zobacz też Parser LR Zbiory First i Follow
Bibliografia
Kategoria:Parsery