imgsynth2/cscriptparser.h

00001 
00008 #ifndef CSCRIPTPARSER_H
00009 #define CSCRIPTPARSER_H
00010 
00011 #include <stdexcept>
00012 #include <string>
00013 #include <list>
00014 #include <set>
00015 #include "cfile.h"
00016 
00030 class CScriptparser
00031 {
00032   public:
00037     class ParserError : public std::invalid_argument {
00038       public:
00048         ParserError(const std::string& what)
00049           : std::invalid_argument(what), m_line("")
00050         {}
00051 
00062         ParserError(const std::string& what, const std::string& line)
00063           : std::invalid_argument(what), m_line(line)
00064         {}
00065 
00075         ~ParserError() throw()
00076         {}
00077 
00086         const std::string &getLine()
00087         {
00088           return m_line;
00089         }
00090 
00091       private:
00092         /* members*/
00093         std::string m_line;
00094     };
00095 
00105     CScriptparser(const std::string& scriptfile);
00106 
00116     ~CScriptparser();
00117 
00127     void parse();
00128 
00129   protected:
00141     void callFunc(const std::string& func, const std::list<std::string>& funcparams);
00142 
00155     void read(std::list<std::string> funcparams);
00156 
00169     void write(std::list<std::string> funcparams);
00170 
00171   private:
00172     /* members */
00173     std::set<CFile *> m_handlers;
00174     std::string m_scriptfile;
00175     std::string m_curline;
00176     CFile *m_handler;
00177 };
00178 
00179 #endif
00180 
00181 /* vim: set et sw=2 ts=2: */

Generated on Sun May 3 19:16:26 2009 for imgsynth2 by  doxygen 1.5.3