logo

Crowdly

Vašou úlohou je navrhnúť gramatiku jazyka kalkulačky a implementovať jeho synta...

✅ The verified answer to this question is available below. Our community-reviewed solutions help you understand the material better.

Vašou úlohou je navrhnúť gramatiku jazyka kalkulačky a implementovať jeho syntaxou riadený interpretér metódou rekurzívneho zostupu.  Tento jazyk bude podporovať nasledujúce operácie, syntax operátorov je uvedená v zátvorkách:

  • sčítanie (+) a odčítania (-) so štandardnou prioritou a pravou asociativitou,
  • unárne mínus (-) so štandardnou prioritov,
  • umocňovanie (^) so štandardnou prioritou a ľavou asociativitou.
Jazyk bude podporovať aj zátvorkované výrazy.

Stiahnite si kostru riešenia, ktorá má nasledujúcu štruktúru:

  • Lexer.py - obsahuje funkčnú implementáciu lexikálneho analyzátora (trieda Lexer) vyššie špecifikovaného jazyka.
  • Parser.py - trieda Parser, parse metódu ktorej je treba implementovať. Táto metóda má ako návratovú hodnotu poskytnúť číslo zodpovedajúce výsledku interpretovaného reťazca. V prípade ak dôjde k syntaktickej chybe vyvolá sa výnimka SyntaxError, na obsahu sprievodnej správy pritom nezáleží.
  • main.py - script na manuálne testovanie zadania. Číta reťazce zo vstupu a pokúša sa ich interpretovať.

Pri riešení nie je povolené využívať žiadne externé knižnice, meniť názvy jednotlivých súborov, tried, či metód. Po doplnení potrebnej funkcionality zabaľte vaše riešenie (príslušnú trojicu súborov) do zip archívu a nahrajte ho ako odpoveď. Na pomenovaní archívu nezáleží.

More questions like this

Want instant access to all verified answers on moodle.fei.tuke.sk?

Get Unlimited Answers To Exam Questions - Install Crowdly Extension Now!