mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge branch 'develop' into sol_natspecMultiline
This commit is contained in:
commit
0cdacde3b9
@ -36,13 +36,12 @@ namespace dev
|
|||||||
namespace solidity
|
namespace solidity
|
||||||
{
|
{
|
||||||
|
|
||||||
void CompilerStack::addSource(string const& _name, string const& _content)
|
bool CompilerStack::addSource(string const& _name, string const& _content)
|
||||||
{
|
{
|
||||||
if (m_sources.count(_name))
|
bool existed = m_sources.count(_name);
|
||||||
BOOST_THROW_EXCEPTION(CompilerError() << errinfo_comment("Source by given name already exists."));
|
|
||||||
|
|
||||||
reset(true);
|
reset(true);
|
||||||
m_sources[_name].scanner = make_shared<Scanner>(CharStream(_content), _name);
|
m_sources[_name].scanner = make_shared<Scanner>(CharStream(_content), _name);
|
||||||
|
return existed;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CompilerStack::setSource(string const& _sourceCode)
|
void CompilerStack::setSource(string const& _sourceCode)
|
||||||
@ -181,6 +180,11 @@ SourceUnit const& CompilerStack::getAST(string const& _sourceName) const
|
|||||||
return *getSource(_sourceName).ast;
|
return *getSource(_sourceName).ast;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ContractDefinition const& CompilerStack::getContractDefinition(string const& _contractName) const
|
||||||
|
{
|
||||||
|
return *getContract(_contractName).contract;
|
||||||
|
}
|
||||||
|
|
||||||
bytes CompilerStack::staticCompile(std::string const& _sourceCode, bool _optimize)
|
bytes CompilerStack::staticCompile(std::string const& _sourceCode, bool _optimize)
|
||||||
{
|
{
|
||||||
CompilerStack stack;
|
CompilerStack stack;
|
||||||
|
@ -57,7 +57,8 @@ public:
|
|||||||
CompilerStack(): m_parseSuccessful(false) {}
|
CompilerStack(): m_parseSuccessful(false) {}
|
||||||
|
|
||||||
/// Adds a source object (e.g. file) to the parser. After this, parse has to be called again.
|
/// Adds a source object (e.g. file) to the parser. After this, parse has to be called again.
|
||||||
void addSource(std::string const& _name, std::string const& _content);
|
/// @returns true if a source object by the name already existed and was replaced.
|
||||||
|
bool addSource(std::string const& _name, std::string const& _content);
|
||||||
void setSource(std::string const& _sourceCode);
|
void setSource(std::string const& _sourceCode);
|
||||||
/// Parses all source units that were added
|
/// Parses all source units that were added
|
||||||
void parse();
|
void parse();
|
||||||
@ -86,9 +87,13 @@ public:
|
|||||||
/// Can be one of 3 types defined at @c DocumentationType
|
/// Can be one of 3 types defined at @c DocumentationType
|
||||||
std::string const& getJsonDocumentation(std::string const& _contractName, DocumentationType _type) const;
|
std::string const& getJsonDocumentation(std::string const& _contractName, DocumentationType _type) const;
|
||||||
|
|
||||||
/// Returns the previously used scanner, useful for counting lines during error reporting.
|
/// @returns the previously used scanner, useful for counting lines during error reporting.
|
||||||
Scanner const& getScanner(std::string const& _sourceName = "") const;
|
Scanner const& getScanner(std::string const& _sourceName = "") const;
|
||||||
|
/// @returns the parsed source unit with the supplied name.
|
||||||
SourceUnit const& getAST(std::string const& _sourceName = "") const;
|
SourceUnit const& getAST(std::string const& _sourceName = "") const;
|
||||||
|
/// @returns the parsed contract with the supplied name. Throws an exception if the contract
|
||||||
|
/// does not exist.
|
||||||
|
ContractDefinition const& getContractDefinition(std::string const& _contractName) const;
|
||||||
|
|
||||||
/// Compile the given @a _sourceCode to bytecode. If a scanner is provided, it is used for
|
/// Compile the given @a _sourceCode to bytecode. If a scanner is provided, it is used for
|
||||||
/// scanning the source code - this is useful for printing exception information.
|
/// scanning the source code - this is useful for printing exception information.
|
||||||
|
Loading…
Reference in New Issue
Block a user