| 44 | 
  | 
#include <iostream> | 
| 45 | 
  | 
#include <set> | 
| 46 | 
  | 
#include <fstream> | 
| 47 | 
+ | 
#include <sstream> | 
| 48 | 
  | 
#include "utils/StringTokenizer.hpp" | 
| 49 | 
  | 
#include "utils/Trim.hpp" | 
| 50 | 
+ | 
#include "utils/OOPSEException.hpp" | 
| 51 | 
+ | 
 | 
| 52 | 
  | 
/** | 
| 53 | 
  | 
 * @class SimplePreprocessor | 
| 54 | 
  | 
 * @brief A simple preprocessor. | 
| 69 | 
  | 
    private: | 
| 70 | 
  | 
        bool doPreprocess(const std::string& filename, ostream& os, std::set<std::string>& defineSet, std::stack<bool>& ifStates) { | 
| 71 | 
  | 
            std::ifstream input(filename.c_str()); | 
| 72 | 
< | 
             | 
| 72 | 
> | 
            if (!input.is_open()) { | 
| 73 | 
> | 
                std::stringstream ss; | 
| 74 | 
> | 
                ss << "Can not open " << filename << " for preprocessing\n"; | 
| 75 | 
> | 
                throw OOPSEException(ss.str());                 | 
| 76 | 
> | 
            } | 
| 77 | 
  | 
            int lineNo =1; | 
| 78 | 
  | 
            os << "#line " << lineNo << " \"" << filename << "\"\n"; | 
| 79 | 
  | 
            while(input.getline(buffer, bufferSize)) { |