00001 #ifndef PARSER_H_ 00002 #define PARSER_H_ 00003 00004 #include <string> 00005 #include <vector> 00006 #include "DataBlock.h" 00007 00008 #include "iscriplib.h" 00009 00010 namespace scripts 00011 { 00012 class Parser 00013 { 00014 private: 00015 00016 std::vector<DataBlock*> _entries; 00017 00018 void skipBlock (Tokeniser &tokeniser); 00019 void parse (const std::string& filename, Tokeniser &tokeniser, const std::string& id); 00020 00021 public: 00022 00023 typedef std::vector<DataBlock*>::iterator EntriesIterator; 00024 00030 Parser (const std::string& id); 00031 00032 virtual ~Parser (); 00033 00037 const std::vector<DataBlock*>& getEntries (); 00038 00042 DataBlock* getEntryForID (const std::string& id); 00043 }; 00044 } 00045 00046 #endif /* PARSER_H_ */