00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _SIMPLEPARSER_H
00024 #define _SIMPLEPARSER_H
00025
00026 #include "BaseParser.h"
00027 #include "BlackAdder.h"
00028
00029
00030 class SimpleParser : public BaseParser
00031 {
00032 public:
00033 SimpleParser(const std::string& path,BlackAdder *);
00034 ~SimpleParser();
00035
00036 void Parser(FILE *fil,int& line,const std::string& name);
00037
00038 private:
00039 void error(const std::string& str);
00040 int ReadLine(FILE *fil,int& line);
00041 int GetToken(FILE *fil,int& line,std::string& val);
00042 void include_file(const std::string& );
00043 void preprocessor(std::string& ,int& line);
00044 void find_types(CLS *,string_v&,int = 0);
00045
00046 char the_str[5000];
00047 int the_ptr;
00048 int m_state;
00049 std::vector<std::string> m_vec;
00050 std::string m_currentfile;
00051 std::string m_path;
00052 int m_levelm;
00053 int m_line;
00054 std::string m_namespace;
00055 std::map<int,std::string> m_namesave;
00056 int m_current;
00057 std::vector<std::string> m_added;
00058 BlackAdder *m_pAdder;
00059 int m_plevelm;
00060 std::string m_stfile;
00061 int m_stline;
00062 bool m_extern;
00063 };
00064
00065
00066 #endif // _SIMPLEPARSER_H