#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 Upitnik::basic() const { cout << "("; _r->basic(); cout << ")|eps"; } 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 tmp = definicije.find(_ime); if (tmp == definicije.end()) throw "Ne postoji ta definicija"; tmp->second->basic(); }