//
// parser.h
//

#include "interface.h"

//#include <iostream>
#include <fstream>
using namespace std;

#include "CString.h"

#ifndef _parser_h_
  #define _parser_h_

//maximalni pocet promennych, ktere se mohou nachazet v jedne klauzuli
const int maxVariablesInOneClause=100;

//maximalni delka radku najednou nacteneho ze vstupniho souboru
const int maxLineSize = 256;

//ulozeny radek
static char line[maxLineSize];

//ukazatel na aktualne zpracovavany znak
static char *actual;

//nacte soubor ve formatu DIMACS
void parseCNF(const char *inputFile, InnerForm *inner);

//nacte int hodnotu
int parseInt(char*& in);

//vynecha "prazdne znaky"
void skipWhitespace(char*& in);

//vynecha prazdne radky
void skipLine(char*& in);

//aktualne ctena radka
int readline;

//stara se o nacteni parametru z textoveho pole pro vazeny sat
void parseParameters(const char *inputData, int *weightTable, int & sumOfWeights, int numberOfVariables, int & unsatPenalty);


#endif
