From 5754b13b473ac9bcd712527991226fe2c92ec46a Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Thu, 9 Feb 2017 21:56:49 +0000 Subject: Add StandardCompiler skeleton --- libsolidity/interface/StandardCompiler.h | 59 ++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 libsolidity/interface/StandardCompiler.h (limited to 'libsolidity/interface/StandardCompiler.h') diff --git a/libsolidity/interface/StandardCompiler.h b/libsolidity/interface/StandardCompiler.h new file mode 100644 index 00000000..c47e3c88 --- /dev/null +++ b/libsolidity/interface/StandardCompiler.h @@ -0,0 +1,59 @@ +/* + This file is part of solidity. + + solidity is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + solidity is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with solidity. If not, see . +*/ +/** + * @author Alex Beregszaszi + * @date 2016 + * Standard JSON compiler interface. + */ + +#pragma once + +#include + +namespace dev +{ + +namespace solidity +{ + +/** + * Standard JSON compiler interface, which expects a JSON input and returns a JSON ouput. + * See docs/using-the-compiler#compiler-input-and-output-json-description. + */ +class StandardCompiler: boost::noncopyable +{ +public: + /// Creates a new StandardCompiler. + /// @param _readFile callback to used to read files for import statements. Should return + StandardCompiler(ReadFile::Callback const& _readFile = ReadFile::Callback()) + : m_compilerStack(_readFile) + { + } + + /// Sets all input parameters according to @a _input which conforms to the standardized input + /// format, performs compilation and returns a standardized output. + Json::Value compile(Json::Value const& _input); + /// Parses input as JSON and peforms the above processing steps, returning a serialized JSON + /// output. Parsing errors are returned as regular errors. + std::string compile(std::string const& _input); + +private: + CompilerStack m_compilerStack; +}; + +} +} -- cgit v1.2.3 From 418759ece046798d9c1707bb9992aa43ba194303 Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Fri, 17 Mar 2017 12:08:12 +0000 Subject: Catch exceptions of StandardCompiler --- libsolidity/interface/StandardCompiler.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'libsolidity/interface/StandardCompiler.h') diff --git a/libsolidity/interface/StandardCompiler.h b/libsolidity/interface/StandardCompiler.h index c47e3c88..12d85aad 100644 --- a/libsolidity/interface/StandardCompiler.h +++ b/libsolidity/interface/StandardCompiler.h @@ -52,6 +52,8 @@ public: std::string compile(std::string const& _input); private: + Json::Value compileInternal(Json::Value const& _input); + CompilerStack m_compilerStack; }; -- cgit v1.2.3