common/compiler: delete abstraction layer

Signed-off-by: VoR0220 <catalanor0220@gmail.com>
This commit is contained in:
VoR0220 2017-11-16 15:35:36 -06:00
parent a036cb9c64
commit 8cb50d0b85
2 changed files with 4 additions and 40 deletions

View file

@ -1,36 +0,0 @@
package compiler
// An interface to denote a version specific compiler.
// The function version() is instantiated upon the creation of the compiler to
// fill the compiler's struct with version details. It fails if there is an error in the parsing.
type Compiler interface {
Compile(flags FlagOpts, files ...string) (Return, error)
version() error
}
// This struct via embedding gives us access to all types of returns.
// This is written to be extendable to other compilers.
type Return struct {
Typ CompilerType
SolcReturn
//Enter your return struct here...e.g.
//SerpentReturn
//BambooReturn
//ViperReturn
}
// This struct allows us to easily create a simple interface for
// interacting with our potentially various compilers.
type FlagOpts struct {
SolcFlagOpts
//Enter your FlagOpts struct here...
}
type CompilerType byte
const (
Solc CompilerType = iota
// Serpent
// Bamboo
// Viper
)

View file

@ -34,7 +34,7 @@ import (
var versionRegexp = regexp.MustCompile(`([0-9]+)\.([0-9]+)\.([0-9]+)`) var versionRegexp = regexp.MustCompile(`([0-9]+)\.([0-9]+)\.([0-9]+)`)
// Initialize a versioned Solc compiler. // Initialize a versioned Solc compiler.
func InitSolc(command string) (Compiler, error) { func InitSolc(command string) (*Solidity, error) {
if command == "" { if command == "" {
command = "solc" command = "solc"
} }
@ -124,7 +124,7 @@ func (s *Solidity) version() error {
} }
// Compiles a series of files using the solidity compiler // Compiles a series of files using the solidity compiler
func (s *Solidity) Compile(flags FlagOpts, files ...string) (Return, error) { func (s *Solidity) Compile(flags SolcFlagOpts, files ...string) (Return, error) {
if reflect.DeepEqual(flags.SolcFlagOpts, (SolcFlagOpts{})) { if reflect.DeepEqual(flags.SolcFlagOpts, (SolcFlagOpts{})) {
flags.defaultSolcFlagOpts(s) flags.defaultSolcFlagOpts(s)
@ -204,7 +204,7 @@ func (f *SolcFlagOpts) defaultSolcFlagOpts(s *Solidity) {
return return
} }
func (s *Solidity) execute(flagsAndFiles ...string) (Return, error) { func (s *Solidity) execute(flagsAndFiles ...string) (SolcReturn, error) {
var stderr, stdout bytes.Buffer var stderr, stdout bytes.Buffer
var output SolcReturn var output SolcReturn
@ -224,5 +224,5 @@ func (s *Solidity) execute(flagsAndFiles ...string) (Return, error) {
output.Warning = string(stderr.Bytes()) output.Warning = string(stderr.Bytes())
return Return{Solc, output}, nil return output, nil
} }