2626
2727#include < cstdio>
2828#include < cstring>
29+ #include < istream>
2930#include < regex>
3031#include < string>
3132
@@ -46,15 +47,25 @@ parseLibertyFile(std::string_view filename,
4647 std::string fn (filename);
4748 gzstream::igzstream stream (fn.c_str ());
4849 if (stream.is_open ()) {
49- LibertyParser reader (filename, library_visitor, report);
50- LibertyScanner scanner (&stream, filename, &reader, report);
51- LibertyParse parser (&scanner, &reader);
52- parser.parse ();
50+ parseLibertyFile (stream, filename, library_visitor, report);
5351 }
5452 else
5553 throw FileNotReadable (filename);
5654}
5755
56+ void
57+ parseLibertyFile (std::istream& file_contents,
58+ std::string_view filename,
59+ LibertyGroupVisitor *library_visitor,
60+ Report *report)
61+ {
62+
63+ LibertyParser reader (filename, library_visitor, report);
64+ LibertyScanner scanner (&file_contents, filename, &reader, report);
65+ LibertyParse parser (&scanner, &reader);
66+ parser.parse ();
67+ }
68+
5869LibertyParser::LibertyParser (std::string_view filename,
5970 LibertyGroupVisitor *library_visitor,
6071 Report *report) :
0 commit comments