#include "regex.hpp" #include using namespace std; BinOp::~BinOp() { delete _levi; delete _desni; } UnOp::~UnOp() { delete _r; } void Slovo::basic() const { cout << _c; } void Konkatenacija::basic() const { cout << "("; _levi->basic(); cout << ")("; _desni->basic(); cout << ")"; } void Disjunkcija::basic() const { cout << "("; _levi->basic(); cout << ")|("; _desni->basic(); cout << ")"; } void Klini::basic() const { cout << "("; _r->basic(); cout << ")*"; } void Plus::basic() const { cout << "("; _r->basic(); cout << ")*("; _r->basic(); cout << ")"; } void KarakterskaKlasa::basic() const { for (unsigned i = 0; i < _v.size(); i++) { cout << _v[i]; if (i < _v.size() - 1) cout << "|"; } } #include extern map definicije; void Definicija::basic() const { map::iterator i = definicije.find(_ime); if (i == definicije.end()) throw "Definicija nije zadata"; i->second->basic(); }