| 48 |
|
#include "utils/StringTokenizer.hpp" |
| 49 |
|
#include "utils/Trim.hpp" |
| 50 |
|
#include "utils/OOPSEException.hpp" |
| 51 |
+ |
#include "utils/simError.h" |
| 52 |
|
|
| 53 |
+ |
|
| 54 |
|
/** |
| 55 |
|
* @class SimplePreprocessor |
| 56 |
|
* @brief A simple preprocessor. |
| 57 |
< |
* @note only support #include #ifdef, #ifndef, #endif, #define and #undef, c-like multiple line |
| 58 |
< |
* comment is not support, macro substitude is not support. |
| 57 |
> |
* @note only supports #include #ifdef, #ifndef, #endif, #define and #undef, c-like multiple line |
| 58 |
> |
* comment is not supported, macro substitute is not supported. |
| 59 |
|
*/ |
| 60 |
|
namespace oopse { |
| 61 |
|
class SimplePreprocessor { |
| 74 |
|
if (!input.is_open()) { |
| 75 |
|
std::stringstream ss; |
| 76 |
|
ss << "Can not open " << filename << " for preprocessing\n"; |
| 77 |
+ |
|
| 78 |
+ |
sprintf(painCave.errMsg, |
| 79 |
+ |
"Can not open (%s) for processing. \n" |
| 80 |
+ |
"\tPlease check md file name syntax.\n", filename.c_str()); |
| 81 |
+ |
|
| 82 |
+ |
painCave.isFatal = 1; |
| 83 |
+ |
simError(); |
| 84 |
+ |
|
| 85 |
|
throw OOPSEException(ss.str()); |
| 86 |
|
} |
| 87 |
|
int lineNo =1; |
| 135 |
|
} |
| 136 |
|
os << std::endl; |
| 137 |
|
} else { |
| 138 |
< |
std::cout << tokens[0] << " is not support" << std::endl; |
| 138 |
> |
std::cout << tokens[0] << " is not supported (yet)." << std::endl; |
| 139 |
|
return false; |
| 140 |
|
} |
| 141 |
|
}else { |