Pok-11-wyk-Slajd25
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Gramatyka niejednoznaczna – operator potęgowania(1)
W celu rozbudowania kalkulatora o obsługę operatora potęgowania np. w takiej postaci w jakiej występuje w języku AWK (prawostronnie łączny ‘^’) należy:
- rozbudować analizator leksykalny o rozpoznawanie i przekazywanie do analizatora składniowego terminala ‘^’:\^ { return '^'; }
- rozbudować analizator składniowy o:
- deklarację: %right ‘^’z odpowiednim priorytetem – potęgowanie zwykle ma dość wysoki priorytet, wyższy od binarnych operatorów arytmetycznych (takich jak +, -, *, /)
- produkcję: E : E '^' Ei związać z nią akcję np. o postaci:{ $$ = (int)pow($1,$3); }. pow to funkcja obliczania potęgi dostępna w standardowej bibliotece języka C.