33
33
34
34
enum Input {
35
35
Stringstream,
36
- Fstream
36
+ Fstream,
37
+ File
37
38
};
38
39
39
40
static Input USE_INPUT = Stringstream;
@@ -59,6 +60,8 @@ static const char* inputString(Input input) {
59
60
return " Stringstream" ;
60
61
case Fstream:
61
62
return " Fstream" ;
63
+ case File:
64
+ return " File" ;
62
65
}
63
66
}
64
67
@@ -119,6 +122,14 @@ static simplecpp::TokenList makeTokenListFromFstream(const char code[], std::siz
119
122
return tokenList;
120
123
}
121
124
125
+ static simplecpp::TokenList makeTokenListFromFile (const char code[], std::size_t size, std::vector<std::string> &filenames, const std::string &filename, simplecpp::OutputList *outputList)
126
+ {
127
+ const std::string tmpfile = writeFile (code, size, filename);
128
+ simplecpp::TokenList tokenList (tmpfile , filenames, outputList);
129
+ remove (tmpfile .c_str ());
130
+ return tokenList;
131
+ }
132
+
122
133
static simplecpp::TokenList makeTokenList (const char code[], std::size_t size, std::vector<std::string> &filenames, const std::string &filename=std::string(), simplecpp::OutputList *outputList=nullptr)
123
134
{
124
135
switch (USE_INPUT) {
@@ -128,6 +139,8 @@ static simplecpp::TokenList makeTokenList(const char code[], std::size_t size, s
128
139
}
129
140
case Fstream:
130
141
return makeTokenListFromFstream (code, size, filenames, filename, outputList);
142
+ case File:
143
+ return makeTokenListFromFile (code, size, filenames, filename, outputList);
131
144
}
132
145
}
133
146
@@ -2896,5 +2909,6 @@ int main(int argc, char **argv)
2896
2909
{
2897
2910
runTests (argc, argv, Stringstream);
2898
2911
runTests (argc, argv, Fstream);
2912
+ runTests (argc, argv, File);
2899
2913
return numberOfFailedAssertions > 0 ? EXIT_FAILURE : EXIT_SUCCESS;
2900
2914
}
0 commit comments