#include "naredbe.hpp" #include using namespace std; void uvuci(int tabs) { while(tabs > 0) { cout << "\t"; tabs--; } } void IspisStringa::izvrsi() const { cout << _s << endl; } void IspisIzraza::izvrsi() const { cout << _i->vrednost() << endl; } IspisIzraza::~IspisIzraza() { delete _i; } void Blok::izvrsi() const { for (unsigned i = 0; i < _v.size(); i++) _v[i]->izvrsi(); } Blok::~Blok() { for (unsigned i = 0; i < _v.size(); i++) delete _v[i]; } extern map tablica; void Dodela::izvrsi() const { tablica[_s] = _i->vrednost(); } Dodela::~Dodela() { delete _i; } void AkoJeOndaInace::izvrsi() const { if (_uslov->vrednost() != 0) _n1->izvrsi(); else _n2->izvrsi(); } AkoJeOndaInace::~AkoJeOndaInace() { delete _uslov; delete _n1; delete _n2; } void AkoJeOnda::izvrsi() const { if (_uslov->vrednost() != 0) _n1->izvrsi(); } AkoJeOnda::~AkoJeOnda() { delete _uslov; delete _n1; } void Unos::izvrsi() const { int tmp; cin >> tmp; tablica[_s] = tmp; } void DokJe::izvrsi() const { while (_uslov->vrednost() != 0) _n1->izvrsi(); } DokJe::~DokJe() { delete _uslov; delete _n1; } void IspisStringa::ispisi(int tabs) const { uvuci(tabs); cout << "ispisi(\"" << _s << "\")"; } void IspisIzraza::ispisi(int tabs) const { uvuci(tabs); cout << "ispisi("; _i->ispisi(); cout << ")"; } void Blok::ispisi(int tabs) const { uvuci(tabs); cout << "pocetak" << endl; for (unsigned i = 0; i < _v.size(); i++) { _v[i]->ispisi(tabs + 1); if (i != _v.size() - 1) cout << ";"; cout << endl; } uvuci(tabs); cout << "kraj"; } void Dodela::ispisi(int tabs) const { uvuci(tabs); cout << _s << " := "; _i->ispisi(); } void AkoJeOndaInace::ispisi(int tabs) const { uvuci(tabs); cout << "ako_je "; _uslov->ispisi(); cout << " onda:" << endl; _n1->ispisi(tabs+1); cout << endl; uvuci(tabs); cout << "inace:" << endl; _n2->ispisi(tabs+1); } void AkoJeOnda::ispisi(int tabs) const { uvuci(tabs); cout << "ako_je "; _uslov->ispisi(); cout << " onda:" << endl; _n1->ispisi(tabs+1); } void Unos::ispisi(int tabs) const { uvuci(tabs); cout << "unesi(" << _s << ")"; } void DokJe::ispisi(int tabs) const { uvuci(tabs); cout << "dok_je "; _uslov->ispisi(); cout << " radi_sledece:" << endl; _n1->ispisi(tabs+1); }