#ifndef INTERFACE_H_
#define INTERFACE_H_

#define NEG 1		//negace
#define AON 2		//forma obsahujici pouze zakladni operace
#define CNF 3		//CNF
#define DNF 4		//DNF
#define SAT 5		//test splnitelnosti
#define NANDF 6		//NAND forma
#define NORF 7		//NOR forma
#define ADDF 8		//pridani logicke funkce
#define SAVEPLA 9	//ulozeni jako PLA
#define SAVEVHDL 10	//ulozeni jako VHDL
#define SAVEBLIF 11 //ulozeni jako BLIF
#define ABS 12		//vypnuti/zapnuti absorpce
#define COF 13		//vypocet kofaktoru
#define EXIT 14

#include <iostream>
#include "nodes.h"
#include "sTable.h"
using namespace std;
//===========================================================
extern bool autoprint;

//incializace - zavolat jednou na zacatku
void init ();

//nacteni PLA - zavolat jednou na vstupni stream
void readpla (istream * input);

//nacteni VHDL - zavolat jednou na vstupni stream
void readvhdl (istream * input);

//provedeni operace - lze volat opakovane, parametr option udava typ operace
//druhy parametr je vystupni stream pro ulozeni vysledku
void performOp (int option, ostream * output = NULL, int pos = -1, int num = 0, bool val = 0);

//vykonani skriptu
void performScript (istream * script);

//smazani objektu - zavolat na konci
void clean ();

#endif /*INTERFACE_H_*/
