Pok-11-wyk-Slajd25

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Gramatyka niejednoznaczna – operator potęgowania(1)

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.


<< Poprzedni slajd | Spis treści | Następny slajd >>