| 
    Kalkulacka
    1.0.0
    
   Jednoduchýkalkulátor 
   | 
 
#include <Interpret.h>


Veřejné metody | |
| void | registrResultCallback (ResultObserver *resultCallbackObject) | 
| void | sendIdentifiedLex (Lex lex) override | 
| void | clear () | 
Veřejné atributy | |
| std::set< ResultObserver * > | resultCallbackObjects | 
Privátní metody | |
| void | notifyResultChanged () | 
| void | notifyAboutError () | 
Privátní atributy | |
| Math::Number | result = Math::Number(0) | 
| Lex::Operator | oper | 
| bool | unprocessedOperator = false | 
| bool | unprocessedNumber = false | 
Po přijetí min počtu lexemů pro interpretaci je interpretace provedena a výsledek předá pomocí callbacku ResultObserver::onResultChange. Objekty na kterých bude callback volán lze registrovat pomocí Interpret::registrResultCallback
Lexem Lex::EVAL po eval pokud příjde číslo přepíše výsledek číslem, pokud operator stejné chování jako eval nepřišlo
Lexemi Lex::BS a Lex::CLEAR provedou vynulování výsledku (a notifikaci o změně)
Ostatní lexémy budou vyhodnoceny jako matematické operace
Pořadí provázení operací je totožné s pořadím jejich předání. Pokud sekvence začíná operátorem předpokládá se první operátor 0
Pokud je předaná chybná sekvence lexému je oznámena chyba callback ResultObserver::onError.
příkad:
Definice je uvedena na řádku 50 v souboru Interpret.h.
| void Interpret::clear | ( | ) | 
Definice je uvedena na řádku 123 v souboru Interpret.cpp.
Používá se v team22::Calc::Equation::backSpace().
      
  | 
  private | 
Předá informaci o změně výsledků pozorovatelům
Definice je uvedena na řádku 142 v souboru Interpret.cpp.
      
  | 
  private | 
Předá informaci o změně výsledků pozorovatelům
Definice je uvedena na řádku 136 v souboru Interpret.cpp.
| void Interpret::registrResultCallback | ( | ResultObserver * | resultCallbackObject | ) | 
Registruje objekt k odběru rozeznaných lexémů vícenásobná registrace stejné instance odběratele neprovede nic
| resultCallbackObject | objekt na němž bude volán callback při změně výsledku nebo chybě | 
Definice je uvedena na řádku 131 v souboru Interpret.cpp.
Používá se v team22::Test::Backend::BackendTester::BackendTester(), team22::Calc::Equation::Equation(), team22::Test::interpret::InterpretTest::InterpretTest() a SignalManager::SignalManager().
      
  | 
  overridevirtual | 
Příjme lexém k interpretaci
| lex | 
Implementuje team22::Calc::LexIdentificationObserver.
Definice je uvedena na řádku 12 v souboru Interpret.cpp.
Odkazuje se na team22::Calc::Lex::getAsNumber(), team22::Calc::Lex::getAsOperator() a team22::Calc::Lex::isNumber().
Používá se v team22::Calc::Equation::reComputeResult() a team22::Calc::Equation::sendIdentifiedLex().
      
  | 
  private | 
Definice je uvedena na řádku 87 v souboru Interpret.h.
      
  | 
  private | 
Definice je uvedena na řádku 86 v souboru Interpret.h.
| std::set<ResultObserver *> team22::Calc::Interpret::resultCallbackObjects | 
Množina Objektů na nichž bude volán callback při změně výsledku nebo chybě
Definice je uvedena na řádku 66 v souboru Interpret.h.
      
  | 
  private | 
Definice je uvedena na řádku 89 v souboru Interpret.h.
      
  | 
  private | 
Definice je uvedena na řádku 88 v souboru Interpret.h.