mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Some more consts.
This commit is contained in:
parent
e0ed942519
commit
a15b03e991
@ -82,7 +82,7 @@ void CompilerStack::parse(string const& _sourceCode)
|
|||||||
parse();
|
parse();
|
||||||
}
|
}
|
||||||
|
|
||||||
vector<string> CompilerStack::getContractNames()
|
vector<string> CompilerStack::getContractNames() const
|
||||||
{
|
{
|
||||||
if (!m_parseSuccessful)
|
if (!m_parseSuccessful)
|
||||||
BOOST_THROW_EXCEPTION(CompilerError() << errinfo_comment("Parsing was not successful."));
|
BOOST_THROW_EXCEPTION(CompilerError() << errinfo_comment("Parsing was not successful."));
|
||||||
@ -116,29 +116,29 @@ bytes const& CompilerStack::compile(string const& _sourceCode, bool _optimize)
|
|||||||
return getBytecode();
|
return getBytecode();
|
||||||
}
|
}
|
||||||
|
|
||||||
bytes const& CompilerStack::getBytecode(string const& _contractName)
|
bytes const& CompilerStack::getBytecode(string const& _contractName) const
|
||||||
{
|
{
|
||||||
return getContract(_contractName).bytecode;
|
return getContract(_contractName).bytecode;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CompilerStack::streamAssembly(ostream& _outStream, string const& _contractName)
|
void CompilerStack::streamAssembly(ostream& _outStream, string const& _contractName) const
|
||||||
{
|
{
|
||||||
getContract(_contractName).compiler->streamAssembly(_outStream);
|
getContract(_contractName).compiler->streamAssembly(_outStream);
|
||||||
}
|
}
|
||||||
|
|
||||||
string const& CompilerStack::getInterface(std::string const& _contractName)
|
string const& CompilerStack::getInterface(string const& _contractName) const
|
||||||
{
|
{
|
||||||
return getJsonDocumentation(_contractName, DocumentationType::ABI_INTERFACE);
|
return getJsonDocumentation(_contractName, DocumentationType::ABI_INTERFACE);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string const& CompilerStack::getJsonDocumentation(std::string const& _contractName, DocumentationType _type)
|
string const& CompilerStack::getJsonDocumentation(string const& _contractName, DocumentationType _type) const
|
||||||
{
|
{
|
||||||
if (!m_parseSuccessful)
|
if (!m_parseSuccessful)
|
||||||
BOOST_THROW_EXCEPTION(CompilerError() << errinfo_comment("Parsing was not successful."));
|
BOOST_THROW_EXCEPTION(CompilerError() << errinfo_comment("Parsing was not successful."));
|
||||||
|
|
||||||
Contract& contract = getContract(_contractName);
|
Contract const& contract = getContract(_contractName);
|
||||||
|
|
||||||
std::unique_ptr<string>* doc;
|
std::unique_ptr<string const>* doc;
|
||||||
switch (_type)
|
switch (_type)
|
||||||
{
|
{
|
||||||
case DocumentationType::NATSPEC_USER:
|
case DocumentationType::NATSPEC_USER:
|
||||||
@ -158,12 +158,12 @@ std::string const& CompilerStack::getJsonDocumentation(std::string const& _contr
|
|||||||
return *(*doc);
|
return *(*doc);
|
||||||
}
|
}
|
||||||
|
|
||||||
Scanner const& CompilerStack::getScanner(string const& _sourceName)
|
Scanner const& CompilerStack::getScanner(string const& _sourceName) const
|
||||||
{
|
{
|
||||||
return *getSource(_sourceName).scanner;
|
return *getSource(_sourceName).scanner;
|
||||||
}
|
}
|
||||||
|
|
||||||
SourceUnit& CompilerStack::getAST(string const& _sourceName)
|
SourceUnit const& CompilerStack::getAST(string const& _sourceName) const
|
||||||
{
|
{
|
||||||
return *getSource(_sourceName).ast;
|
return *getSource(_sourceName).ast;
|
||||||
}
|
}
|
||||||
@ -217,7 +217,7 @@ void CompilerStack::resolveImports()
|
|||||||
swap(m_sourceOrder, sourceOrder);
|
swap(m_sourceOrder, sourceOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
CompilerStack::Contract& CompilerStack::getContract(string const& _contractName)
|
CompilerStack::Contract const& CompilerStack::getContract(string const& _contractName) const
|
||||||
{
|
{
|
||||||
if (m_contracts.empty())
|
if (m_contracts.empty())
|
||||||
BOOST_THROW_EXCEPTION(CompilerError() << errinfo_comment("No compiled contracts found."));
|
BOOST_THROW_EXCEPTION(CompilerError() << errinfo_comment("No compiled contracts found."));
|
||||||
@ -229,7 +229,7 @@ CompilerStack::Contract& CompilerStack::getContract(string const& _contractName)
|
|||||||
return it->second;
|
return it->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
CompilerStack::Source& CompilerStack::getSource(string const& _sourceName)
|
CompilerStack::Source const& CompilerStack::getSource(string const& _sourceName) const
|
||||||
{
|
{
|
||||||
auto it = m_sources.find(_sourceName);
|
auto it = m_sources.find(_sourceName);
|
||||||
if (it == m_sources.end())
|
if (it == m_sources.end())
|
||||||
|
@ -64,7 +64,7 @@ public:
|
|||||||
/// Sets the given source code as the only source unit and parses it.
|
/// Sets the given source code as the only source unit and parses it.
|
||||||
void parse(std::string const& _sourceCode);
|
void parse(std::string const& _sourceCode);
|
||||||
/// Returns a list of the contract names in the sources.
|
/// Returns a list of the contract names in the sources.
|
||||||
std::vector<std::string> getContractNames();
|
std::vector<std::string> getContractNames() const;
|
||||||
|
|
||||||
/// Compiles the source units that were previously added and parsed.
|
/// Compiles the source units that were previously added and parsed.
|
||||||
void compile(bool _optimize = false);
|
void compile(bool _optimize = false);
|
||||||
@ -72,23 +72,23 @@ public:
|
|||||||
/// @returns the compiled bytecode
|
/// @returns the compiled bytecode
|
||||||
bytes const& compile(std::string const& _sourceCode, bool _optimize = false);
|
bytes const& compile(std::string const& _sourceCode, bool _optimize = false);
|
||||||
|
|
||||||
bytes const& getBytecode(std::string const& _contractName = "");
|
bytes const& getBytecode(std::string const& _contractName = "") const;
|
||||||
/// Streams a verbose version of the assembly to @a _outStream.
|
/// Streams a verbose version of the assembly to @a _outStream.
|
||||||
/// Prerequisite: Successful compilation.
|
/// Prerequisite: Successful compilation.
|
||||||
void streamAssembly(std::ostream& _outStream, std::string const& _contractName = "");
|
void streamAssembly(std::ostream& _outStream, std::string const& _contractName = "") const;
|
||||||
|
|
||||||
/// Returns a string representing the contract interface in JSON.
|
/// Returns a string representing the contract interface in JSON.
|
||||||
/// Prerequisite: Successful call to parse or compile.
|
/// Prerequisite: Successful call to parse or compile.
|
||||||
std::string const& getInterface(std::string const& _contractName = "");
|
std::string const& getInterface(std::string const& _contractName = "") const;
|
||||||
/// Returns a string representing the contract's documentation in JSON.
|
/// Returns a string representing the contract's documentation in JSON.
|
||||||
/// Prerequisite: Successful call to parse or compile.
|
/// Prerequisite: Successful call to parse or compile.
|
||||||
/// @param type The type of the documentation to get.
|
/// @param type The type of the documentation to get.
|
||||||
/// 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);
|
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 = "");
|
Scanner const& getScanner(std::string const& _sourceName = "") const;
|
||||||
SourceUnit& getAST(std::string const& _sourceName = "");
|
SourceUnit const& getAST(std::string const& _sourceName = "") 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.
|
||||||
@ -112,9 +112,9 @@ private:
|
|||||||
std::shared_ptr<Compiler> compiler;
|
std::shared_ptr<Compiler> compiler;
|
||||||
bytes bytecode;
|
bytes bytecode;
|
||||||
std::shared_ptr<InterfaceHandler> interfaceHandler;
|
std::shared_ptr<InterfaceHandler> interfaceHandler;
|
||||||
std::unique_ptr<std::string> interface;
|
mutable std::unique_ptr<std::string const> interface;
|
||||||
std::unique_ptr<std::string> userDocumentation;
|
mutable std::unique_ptr<std::string const> userDocumentation;
|
||||||
std::unique_ptr<std::string> devDocumentation;
|
mutable std::unique_ptr<std::string const> devDocumentation;
|
||||||
|
|
||||||
Contract();
|
Contract();
|
||||||
};
|
};
|
||||||
@ -122,14 +122,14 @@ private:
|
|||||||
void reset(bool _keepSources = false);
|
void reset(bool _keepSources = false);
|
||||||
void resolveImports();
|
void resolveImports();
|
||||||
|
|
||||||
Contract& getContract(std::string const& _contractName = "");
|
Contract const& getContract(std::string const& _contractName = "") const;
|
||||||
Source& getSource(std::string const& _sourceName = "");
|
Source const& getSource(std::string const& _sourceName = "") const;
|
||||||
|
|
||||||
bool m_parseSuccessful;
|
bool m_parseSuccessful;
|
||||||
std::map<std::string, Source> m_sources;
|
std::map<std::string const, Source> m_sources;
|
||||||
std::shared_ptr<GlobalContext> m_globalContext;
|
std::shared_ptr<GlobalContext> m_globalContext;
|
||||||
std::vector<Source const*> m_sourceOrder;
|
std::vector<Source const*> m_sourceOrder;
|
||||||
std::map<std::string, Contract> m_contracts;
|
std::map<std::string const, Contract> m_contracts;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
2
Types.h
2
Types.h
@ -279,7 +279,7 @@ public:
|
|||||||
virtual bool canLiveOutsideStorage() const override { return false; }
|
virtual bool canLiveOutsideStorage() const override { return false; }
|
||||||
virtual unsigned getSizeOnStack() const override;
|
virtual unsigned getSizeOnStack() const override;
|
||||||
|
|
||||||
Location getLocation() const { return m_location; }
|
Location const& getLocation() const { return m_location; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
TypePointers m_parameterTypes;
|
TypePointers m_parameterTypes;
|
||||||
|
Loading…
Reference in New Issue
Block a user