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

Veřejné metody | |
| void | pushSymbol (char symbol) |
| void | registrLexCallback (LexIdentificationObserver *lexCallbackObject) |
| void | processNumberSymbol (char symbol) |
| bool | isNumberSymbol (char symbol) const |
| void | clear () |
| void | processOperator (char symbol) |
Privátní typy | |
| enum | State { Number, Operator, Init } |
Privátní metody | |
| void | sendLex (Lex lex) |
| Lex | getCharLex (char c) |
| Math::Number | savedToNumber () |
Privátní atributy | |
| State | state = Init |
| std::set< LexIdentificationObserver * > | lexCallbackObjects |
| std::string | saved = "" |
Třída sloužící k lexikální analyze vstupů přebírá znaky pomocí fce pushSymbol() a ve chvíli identifikace lexému předá tento interpretu a pokud byl registrovaný volá callback kterému tento lexém předá.
Definice je uvedena na řádku 26 v souboru LexicalAnalyzer.h.
|
private |
| Hodnoty výčtu | |
|---|---|
| Number | |
| Operator | |
| Init | |
Definice je uvedena na řádku 28 v souboru LexicalAnalyzer.h.
| void team22::Calc::LexicalAnalyzer::clear | ( | ) |
Vyresetuje lexikální analyzátor
Definice je uvedena na řádku 167 v souboru LexicalAnalyzer.cpp.
Odkazuje se na Init, saved a state.
Používá se v processNumberSymbol(), processOperator() a pushSymbol().
|
private |
Vrací lexém daného znaku
| c | znak nebo číslice k převodu na lexém |
Definice je uvedena na řádku 19 v souboru LexicalAnalyzer.cpp.
Odkazuje se na team22::Calc::Lex::ADD, team22::Calc::Lex::CLEAR, team22::Calc::Lex::DIV, team22::Calc::Lex::EVAL, team22::Calc::Lex::EXP, team22::Calc::Lex::FACTORIAL, team22::Calc::Lex::MOD, team22::Calc::Lex::MUL a team22::Calc::Lex::SUB.
Používá se v pushSymbol().
| bool team22::Calc::LexicalAnalyzer::isNumberSymbol | ( | char | symbol | ) | const |
Jedná se o symbol tvořící číslo tedy číslice, . nebo i
| symbol |
Definice je uvedena na řádku 138 v souboru LexicalAnalyzer.cpp.
Používá se v pushSymbol().
| void team22::Calc::LexicalAnalyzer::processNumberSymbol | ( | char | symbol | ) |
Zpracuje uložený řetězec saved a vrátí jej jako číslo
| symbol |
Definice je uvedena na řádku 148 v souboru LexicalAnalyzer.cpp.
Odkazuje se na clear(), Init, Number, saved, savedToNumber(), sendLex() a state.
Používá se v pushSymbol().
| void team22::Calc::LexicalAnalyzer::processOperator | ( | char | symbol | ) |
Zpracuje výceznakový operátor
| symbol |
Definice je uvedena na řádku 80 v souboru LexicalAnalyzer.cpp.
Odkazuje se na team22::Calc::Lex::BS, clear(), team22::Calc::Lex::NEG, Operator, team22::Calc::Lex::ROOT, saved, sendLex() a state.
Používá se v pushSymbol().
| void team22::Calc::LexicalAnalyzer::pushSymbol | ( | char | symbol | ) |
Předá znak k analýze
| symbol | symbol abecedy přijímané lexikálním analyzátorem |
| LexicalAnalyserException |
Definice je uvedena na řádku 61 v souboru LexicalAnalyzer.cpp.
Odkazuje se na clear(), getCharLex(), isNumberSymbol(), Number, processNumberSymbol(), processOperator(), savedToNumber(), sendLex() a state.
Používá se v team22::Calc::Equation::backSpace() a team22::Calc::Equation::pushSymbol().
| void team22::Calc::LexicalAnalyzer::registrLexCallback | ( | LexIdentificationObserver * | lexCallbackObject | ) |
Registruje objekt k odběru rozeznaných lexémů vícenásobná registrace stejné instance odběratele neprovede nic
| lexCallbackObject | objekt na němž |
Definice je uvedena na řádku 143 v souboru LexicalAnalyzer.cpp.
Odkazuje se na lexCallbackObjects.
Používá se v team22::Test::Backend::BackendTester::BackendTester(), team22::Calc::Equation::Equation(), team22::Test::lexicalAnalyzer::LexicalAnalyzerTestBase::LexicalAnalyzerTestBase() a SignalManager::SignalManager().
|
private |
Vrací číslo typu double převedené z textového řetězce
| s | textový řetězec pro převod |
Definice je uvedena na řádku 45 v souboru LexicalAnalyzer.cpp.
Odkazuje se na saved.
Používá se v processNumberSymbol() a pushSymbol().
|
private |
Předá lexém všem registrovaným objektům
| lex | lexém k předání |
Definice je uvedena na řádku 13 v souboru LexicalAnalyzer.cpp.
Odkazuje se na lexCallbackObjects.
Používá se v processNumberSymbol(), processOperator() a pushSymbol().
|
private |
Množina Objektů na nichž bude volán callback při rozeznání lexemů
Definice je uvedena na řádku 39 v souboru LexicalAnalyzer.h.
Používá se v registrLexCallback() a sendLex().
|
private |
Řetězec, který obsahuje znaky, které ještě nebyly rozeznány jako lexém
Definice je uvedena na řádku 44 v souboru LexicalAnalyzer.h.
Používá se v clear(), processNumberSymbol(), processOperator() a savedToNumber().
Definice je uvedena na řádku 34 v souboru LexicalAnalyzer.h.
Používá se v clear(), processNumberSymbol(), processOperator() a pushSymbol().