Skip to content

Commit 03d0804

Browse files
committed
Adds stream interface for parseLibertyFile
Signed-off-by: Ethan Mahintorabi <ethanmoon@google.com>
1 parent f668dba commit 03d0804

2 files changed

Lines changed: 21 additions & 4 deletions

File tree

liberty/LibertyParser.cc

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
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+
5869
LibertyParser::LibertyParser(std::string_view filename,
5970
LibertyGroupVisitor *library_visitor,
6071
Report *report) :

liberty/LibertyParser.hh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
#pragma once
2626

2727
#include <functional>
28+
#include <istream>
2829
#include <string_view>
2930
#include <vector>
3031
#include <map>
@@ -280,6 +281,11 @@ public:
280281
virtual void visitVariable(LibertyVariable *variable) = 0;
281282
};
282283

284+
void
285+
parseLibertyFile(std::istream& file_contents,
286+
std::string_view filename,
287+
LibertyGroupVisitor *library_visitor,
288+
Report *report);
283289
void
284290
parseLibertyFile(std::string_view filename,
285291
LibertyGroupVisitor *library_visitor,

0 commit comments

Comments
 (0)