/* 
 * File:   rule.h
 * Author: macino
 *
 * Created on Sobota, 2008, november 8, 23:14
 */

#ifndef _RULE_H
#define	_RULE_H

#include<iostream>
#include<vector>

using namespace std;

//trieda reprezentujuca pravidlo definovane v subore bench
class Rule{
	//meno pravidla resp. vydledneho hradla alebo prvku
    string name;
	//typ prvku napr.: AND, OR, XOR, alebo iny typ podla definicie v kniznicy programy INKS
    string type;
	//pravidla reprezentujuce argumenty tohoto pravidla. Pri pravidle, reprezentujucom vstup prvku je tato mnozina prazdna
    vector<Rule*> *inputs;
public:
    Rule(string name);
    ~Rule();
    string getName();
    string getType();
    void setType(string type);
    Rule* getInput(int i);
    vector<Rule*>* getInputs();
    void addInput(Rule *rule);
};

#endif	/* _RULE_H */

