#ifndef PARSER_H
#define PARSER_H
#include <map>
#include <vector>
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>

#include "List.h"

class Parser
{
public:
	static char comment;
	static char open;
	static char close;

	static std::string getNext(std::istream& in);
	static std::string readString(std::istream& in);

	static List *parse(std::string filename);
	static List *parse(std::istream& in);
	static List *parseOpen(std::istream& in);

	static std::string Parser::wordWrap(std::string &strText, int chars);

private:
	static void consumeWhitespaceAndComments(std::istream& in);
	static int _lineNumber;
};

#endif
