/*
  defines bob_parser - class that can parse any bod data and create 
  bob_dom_document object
*/

#ifndef BOD_PARSER_INCLUDED
#define BOD_PARSER_INCLUDED

#include "bod_bob_parser.h"
#include "bob_dom.h"
#include "settings.h"
#include "bob_dom_filestream.h"

class bod_parser : public bod_parser_base
{
	private:
		const Settings *m_settings;
	
	private:
		void error(iterator& it);
	
	public:
		enum fileType
		{
			bobFile,
			cutFile
		};
	
		bod_parser(const Settings *settings) { m_settings=settings; }
		
		bob_dom_document * parseBuffer(char *pszBuffer, size_t size, fileType type);
		
		bool compile(char *pszBuffer, size_t size, fileType type, bob_dom_obinaryfilestream& os);
};

#endif // !defined(BOD_PARSER_INCLUDED)