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