aboutsummaryrefslogtreecommitdiffstats
path: root/CommandLineInterface.cpp
diff options
context:
space:
mode:
authorLiana Husikyan <liana@ethdev.com>2015-04-17 23:41:41 +0800
committerLiana Husikyan <liana@ethdev.com>2015-04-17 23:41:41 +0800
commit3dcc0f089331e060c4f5ead49740bfd8f1f80aab (patch)
tree3a6a85a94a1de1757410bcfd7e4e9792df85b054 /CommandLineInterface.cpp
parent7e015ae7232b9be3656787addaad045b50bc9751 (diff)
downloaddexon-solidity-3dcc0f089331e060c4f5ead49740bfd8f1f80aab.tar
dexon-solidity-3dcc0f089331e060c4f5ead49740bfd8f1f80aab.tar.gz
dexon-solidity-3dcc0f089331e060c4f5ead49740bfd8f1f80aab.tar.bz2
dexon-solidity-3dcc0f089331e060c4f5ead49740bfd8f1f80aab.tar.lz
dexon-solidity-3dcc0f089331e060c4f5ead49740bfd8f1f80aab.tar.xz
dexon-solidity-3dcc0f089331e060c4f5ead49740bfd8f1f80aab.tar.zst
dexon-solidity-3dcc0f089331e060c4f5ead49740bfd8f1f80aab.zip
added asm-json flag to cl compiler
Conflicts: libsolidity/CompilerStack.cpp
Diffstat (limited to 'CommandLineInterface.cpp')
-rw-r--r--CommandLineInterface.cpp38
1 files changed, 23 insertions, 15 deletions
diff --git a/CommandLineInterface.cpp b/CommandLineInterface.cpp
index 6ed90cde..d21839f1 100644
--- a/CommandLineInterface.cpp
+++ b/CommandLineInterface.cpp
@@ -55,6 +55,7 @@ namespace solidity
static string const g_argAbiStr = "json-abi";
static string const g_argSolAbiStr = "sol-abi";
static string const g_argAsmStr = "asm";
+static string const g_argAsmJsonStr = "asm-json";
static string const g_argAstStr = "ast";
static string const g_argAstJson = "ast-json";
static string const g_argBinaryStr = "binary";
@@ -80,10 +81,15 @@ static bool needStdout(po::variables_map const& _args)
{
return
- argToStdout(_args, g_argAbiStr) || argToStdout(_args, g_argSolAbiStr) ||
- argToStdout(_args, g_argNatspecUserStr) || argToStdout(_args, g_argAstJson) ||
- argToStdout(_args, g_argNatspecDevStr) || argToStdout(_args, g_argAsmStr) ||
- argToStdout(_args, g_argOpcodesStr) || argToStdout(_args, g_argBinaryStr);
+ argToStdout(_args, g_argAbiStr) ||
+ argToStdout(_args, g_argSolAbiStr) ||
+ argToStdout(_args, g_argNatspecUserStr) ||
+ argToStdout(_args, g_argAstJson) ||
+ argToStdout(_args, g_argNatspecDevStr) ||
+ argToStdout(_args, g_argAsmStr) ||
+ argToStdout(_args, g_argAsmJsonStr) ||
+ argToStdout(_args, g_argOpcodesStr) ||
+ argToStdout(_args, g_argBinaryStr);
}
static inline bool outputToFile(OutputType type)
@@ -215,23 +221,25 @@ bool CommandLineInterface::parseArguments(int argc, char** argv)
("add-std", po::value<bool>()->default_value(false), "Add standard contracts")
("input-file", po::value<vector<string>>(), "input file")
(g_argAstStr.c_str(), po::value<OutputType>()->value_name("stdout|file|both"),
- "Request to output the AST of the contract.")
+ "Request to output the AST of the contract.")
(g_argAstJson.c_str(), po::value<OutputType>()->value_name("stdout|file|both"),
- "Request to output the AST of the contract in JSON format.")
+ "Request to output the AST of the contract in JSON format.")
(g_argAsmStr.c_str(), po::value<OutputType>()->value_name("stdout|file|both"),
- "Request to output the EVM assembly of the contract.")
+ "Request to output the EVM assembly of the contract.")
+ (g_argAsmJsonStr.c_str(), po::value<OutputType>()->value_name("stdout|file|both"),
+ "Request to output the EVM assembly of the contract in JSON format.")
(g_argOpcodesStr.c_str(), po::value<OutputType>()->value_name("stdout|file|both"),
- "Request to output the Opcodes of the contract.")
+ "Request to output the Opcodes of the contract.")
(g_argBinaryStr.c_str(), po::value<OutputType>()->value_name("stdout|file|both"),
- "Request to output the contract in binary (hexadecimal).")
+ "Request to output the contract in binary (hexadecimal).")
(g_argAbiStr.c_str(), po::value<OutputType>()->value_name("stdout|file|both"),
- "Request to output the contract's JSON ABI interface.")
+ "Request to output the contract's JSON ABI interface.")
(g_argSolAbiStr.c_str(), po::value<OutputType>()->value_name("stdout|file|both"),
- "Request to output the contract's Solidity ABI interface.")
+ "Request to output the contract's Solidity ABI interface.")
(g_argNatspecUserStr.c_str(), po::value<OutputType>()->value_name("stdout|file|both"),
- "Request to output the contract's Natspec user documentation.")
+ "Request to output the contract's Natspec user documentation.")
(g_argNatspecDevStr.c_str(), po::value<OutputType>()->value_name("stdout|file|both"),
- "Request to output the contract's Natspec developer documentation.");
+ "Request to output the contract's Natspec developer documentation.");
// All positional options should be interpreted as input files
po::positional_options_description p;
@@ -417,13 +425,13 @@ void CommandLineInterface::actOnInput()
if (outputToStdout(choice))
{
cout << "EVM assembly:" << endl;
- m_compiler->streamAssembly(cout, contract, m_sourceCodes);
+ m_compiler->streamAssembly(cout, contract, m_sourceCodes, m_args.count(g_argAsmJsonStr));
}
if (outputToFile(choice))
{
ofstream outFile(contract + ".evm");
- m_compiler->streamAssembly(outFile, contract, m_sourceCodes);
+ m_compiler->streamAssembly(outFile, contract, m_sourceCodes, m_args.count(g_argAsmJsonStr));
outFile.close();
}
}