mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Introduce setSources in CompilerStack
This commit is contained in:
parent
dce27bb452
commit
66a977d999
@ -169,6 +169,17 @@ bool CompilerStack::addSource(string const& _name, string const& _content)
|
|||||||
return existed;
|
return existed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CompilerStack::setSources(StringMap const& _sources)
|
||||||
|
{
|
||||||
|
if (m_stackState == SourcesSet)
|
||||||
|
BOOST_THROW_EXCEPTION(CompilerError() << errinfo_comment("Cannot change sources once set."));
|
||||||
|
if (m_stackState != Empty)
|
||||||
|
BOOST_THROW_EXCEPTION(CompilerError() << errinfo_comment("Must set sources before parsing."));
|
||||||
|
for (auto const& source: _sources)
|
||||||
|
m_sources[source.first].scanner = make_shared<Scanner>(CharStream(/*content*/source.second, /*name*/source.first));
|
||||||
|
m_stackState = SourcesSet;
|
||||||
|
}
|
||||||
|
|
||||||
bool CompilerStack::parse()
|
bool CompilerStack::parse()
|
||||||
{
|
{
|
||||||
if (m_stackState != SourcesSet)
|
if (m_stackState != SourcesSet)
|
||||||
|
@ -152,6 +152,9 @@ public:
|
|||||||
/// @returns true if a source object by the name already existed and was replaced.
|
/// @returns true if a source object by the name already existed and was replaced.
|
||||||
bool addSource(std::string const& _name, std::string const& _content);
|
bool addSource(std::string const& _name, std::string const& _content);
|
||||||
|
|
||||||
|
/// Sets the sources. Must be set before parsing.
|
||||||
|
void setSources(StringMap const& _sources);
|
||||||
|
|
||||||
/// Adds a response to an SMTLib2 query (identified by the hash of the query input).
|
/// Adds a response to an SMTLib2 query (identified by the hash of the query input).
|
||||||
/// Must be set before parsing.
|
/// Must be set before parsing.
|
||||||
void addSMTLib2Response(h256 const& _hash, std::string const& _response);
|
void addSMTLib2Response(h256 const& _hash, std::string const& _response);
|
||||||
|
Loading…
Reference in New Issue
Block a user