00001 #ifndef PARSER_H
00002 #define PARSER_H
00003 #include <map>
00004 #include <vector>
00005 #include <iostream>
00006 #include <fstream>
00007 #include <string>
00008
00009 #include "List.h"
00010
00011 class Parser
00012 {
00013 public:
00014 static char comment;
00015 static char open;
00016 static char close;
00017
00018 static std::string getNext(std::istream& in);
00019 static std::string readString(std::istream& in);
00020
00021 static List *parse(std::string filename);
00022 static List *parse(std::istream& in);
00023 static List *parseOpen(std::istream& in);
00024
00025 private:
00026 static void consumeWhitespaceAndComments(std::istream& in);
00027 static int _lineNumber;
00028 };
00029
00030 #endif