Skip to content
This repository was archived by the owner on Jul 2, 2021. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
/**
* Copyright (c) 2017 committers of YAKINDU and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Andreas Muelder - Itemis AG - initial API and implementation
* Karsten Thoms - Itemis AG - initial API and implementation
* Florian Antony - Itemis AG - initial API and implementation
* committers of YAKINDU
*
*/
package com.yakindu.solidity.compiler.parameter;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.gson.GsonBuilder;

/**
* @author Florian Antony - Initial contribution and API
*/
public class ParameterBuilder {

private Parameter parameter;
private GsonBuilder gsonBuilder;

public ParameterBuilder() {
this("Solidity");
}

public ParameterBuilder(String language) {
gsonBuilder = new GsonBuilder();
gsonBuilder.setPrettyPrinting();
this.parameter = new Parameter();
this.parameter.setLanguage(language);
this.parameter.setSettings(defaultSettings());
}

private Settings defaultSettings() {
Settings settings = new Settings();
settings.setOptimizer(defaultOptimizer());
settings.setParserErrorRecovery(true);
Map<String, Map<String, List<String>>> output = Maps.newHashMap();
HashMap<String, List<String>> internalOutputs = Maps.newHashMap();
internalOutputs.put("*", Lists.newArrayList());
output.put("*", internalOutputs);
settings.setOutputSelection(output);
return settings;
}

private Optimizer defaultOptimizer() {
Optimizer optimizer = new Optimizer();
optimizer.setEnabled(false);
optimizer.setRuns(0);
return optimizer;
}

public String buildJson() {
return gsonBuilder.create().toJson(parameter);
}

public ParameterBuilder addOutput(String key) {
List<String> outputKeys = this.parameter.getSettings().getOutputSelection().get("*").get("*");
if (!outputKeys.contains(key)) {
outputKeys.add(key);
}
return this;
}

public ParameterBuilder addSource(String name, Source source) {
this.parameter.getSources().put(name, source);
return this;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
/**
* Copyright (c) 2017 committers of YAKINDU and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Andreas Muelder - Itemis AG - initial API and implementation
* Karsten Thoms - Itemis AG - initial API and implementation
* Florian Antony - Itemis AG - initial API and implementation
* committers of YAKINDU
*
*/
package com.yakindu.solidity.compiler.parameter;

import java.util.List;
import java.util.Map;

/**
*
* @author Florian Antony - Initial contribution and API
*
*/
public class Settings {

private Optimizer optimizer;

private Boolean parserErrorRecovery;

private Map<String, Library> libraries;

private Map<String, Map<String, List<String>>> outputSelection;

public Optimizer getOptimizer() {
return optimizer;
}

public void setOptimizer(Optimizer optimizer) {
this.optimizer = optimizer;
}

public Map<String, Library> getLibraries() {
return libraries;
}

public void setLibraries(Map<String, Library> libraries) {
this.libraries = libraries;
}

public Map<String, Map<String, List<String>>> getOutputSelection() {
return outputSelection;
}

public void setOutputSelection(Map<String, Map<String, List<String>>> outputSelection) {
this.outputSelection = outputSelection;
}

public Boolean getParserErrorRecovery() {
return parserErrorRecovery;
}

public void setParserErrorRecovery(Boolean parserErrorRecovery) {
this.parserErrorRecovery = parserErrorRecovery;
}


}
Binary file modified plugins/com.yakindu.solidity.solc.linux.fragment/compiler/solc
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ public ParameterBuilder(String language) {
private Settings defaultSettings() {
Settings settings = new Settings();
settings.setOptimizer(defaultOptimizer());
settings.setParserErrorRecovery(true);
Map<String, Map<String, List<String>>> output = Maps.newHashMap();
HashMap<String, List<String>> internalOutputs = Maps.newHashMap();
internalOutputs.put("*", Lists.newArrayList());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
public class Settings {

private Optimizer optimizer;

private Boolean parserErrorRecovery;

private Map<String, Library> libraries;

Expand Down Expand Up @@ -53,4 +55,12 @@ public Map<String, Map<String, List<String>>> getOutputSelection() {
public void setOutputSelection(Map<String, Map<String, List<String>>> outputSelection) {
this.outputSelection = outputSelection;
}

public Boolean getParserErrorRecovery() {
return parserErrorRecovery;
}

public void setParserErrorRecovery(Boolean parserErrorRecovery) {
this.parserErrorRecovery = parserErrorRecovery;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="generated by Xtext 2.18.0" modelDirectory="/com.yakindu.solidity/src-gen"
modelPluginID="com.yakindu.solidity" forceOverwrite="true" modelName="Solidity"
updateClasspath="false" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
complianceLevel="6.0" copyrightFields="false" runtimeVersion="2.12" usedGenPackages="platform:/resource/org.yakindu.base.expressions/model/Expressions.genmodel#//expressions platform:/resource/org.yakindu.base.types/model/base.genmodel#//base platform:/resource/org.yakindu.base.types/model/types.genmodel#//types">
complianceLevel="6.0" copyrightFields="false" runtimeVersion="2.18" usedGenPackages="platform:/resource/org.yakindu.base.expressions/model/Expressions.genmodel#//expressions platform:/resource/org.yakindu.base.types/model/base.genmodel#//base platform:/resource/org.yakindu.base.types/model/types.genmodel#//types">
<genPackages prefix="Solidity" basePackage="com.yakindu.solidity" disposableProviderFactory="true"
fileExtensions="sol" ecorePackage="Solidity.ecore#/">
<genEnums typeSafeEnumCompatible="false" ecoreEnum="Solidity.ecore#//ContractType">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@

public interface SolidityVersion {
public static final String SOLIDITY_VERSION = "solidity_version";
public static final String DEFAULT_SOLIDITY_VERSION = "^0.5.4";
public static final String DEFAULT_SOLIDITY_VERSION = "^0.5.11";
public static final String MIN_SUPPORTED_VERSION = "^0.5";
}