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 { |