25
25
26
26
enum Input {
27
27
Stringstream,
28
- Fstream
28
+ Fstream,
29
+ File
29
30
};
30
31
31
32
static Input USE_INPUT = Stringstream;
@@ -51,6 +52,8 @@ static const char* inputString(Input input) {
51
52
return " Stringstream" ;
52
53
case Fstream:
53
54
return " Fstream" ;
55
+ case File:
56
+ return " File" ;
54
57
}
55
58
}
56
59
@@ -111,6 +114,14 @@ static simplecpp::TokenList makeTokenListFromFstream(const char code[], std::siz
111
114
return tokenList;
112
115
}
113
116
117
+ static simplecpp::TokenList makeTokenListFromFile (const char code[], std::size_t size, std::vector<std::string> &filenames, const std::string &filename, simplecpp::OutputList *outputList)
118
+ {
119
+ const std::string tmpfile = writeFile (code, size, filename);
120
+ simplecpp::TokenList tokenList (tmpfile , filenames, outputList);
121
+ remove (tmpfile .c_str ());
122
+ return tokenList;
123
+ }
124
+
114
125
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)
115
126
{
116
127
switch (USE_INPUT) {
@@ -120,6 +131,8 @@ static simplecpp::TokenList makeTokenList(const char code[], std::size_t size, s
120
131
}
121
132
case Fstream:
122
133
return makeTokenListFromFstream (code, size, filenames, filename, outputList);
134
+ case File:
135
+ return makeTokenListFromFile (code, size, filenames, filename, outputList);
123
136
}
124
137
}
125
138
@@ -2802,5 +2815,6 @@ int main(int argc, char **argv)
2802
2815
{
2803
2816
runTests (argc, argv, Stringstream);
2804
2817
runTests (argc, argv, Fstream);
2818
+ runTests (argc, argv, File);
2805
2819
return numberOfFailedAssertions > 0 ? EXIT_FAILURE : EXIT_SUCCESS;
2806
2820
}
0 commit comments