From 75d04d73b5656dc1fe5ba1e5db146612b5350b2b Mon Sep 17 00:00:00 2001
From: Lucas Stratmann <lucas.stratmann@student.reutlingen-university.de>
Date: Mon, 29 Jun 2020 13:36:09 +0200
Subject: [PATCH] Reorganize and updated if

---
 .../ardublock/simulator/Simulator.java        | 15 ++++---
 .../ardublock/simulator/arduino/Arduino.java  |  3 +-
 .../ardublock/simulator/simcode/SimCode.java  |  1 +
 .../simcode/comm/CodeConnectString.java       |  2 +-
 .../simcode/comm/CodeSerialPrint.java         |  2 +-
 .../{blocks => control}/CodeDelay.java        |  4 +-
 .../simulator/simcode/control/CodeElse.java   | 27 ++++--------
 .../simulator/simcode/control/CodeElseIf.java | 30 ++++++--------
 .../simulator/simcode/control/CodeFor.java    |  2 +-
 .../simcode/control/CodeForCount.java         | 41 +++++++++++++++++++
 .../simulator/simcode/control/CodeIf.java     | 15 ++++---
 .../simulator/simcode/control/CodeTypeIf.java | 22 ++++++++++
 .../simulator/simcode/control/CodeWhile.java  |  2 +-
 .../simcode/control/CodeWhileMillis.java      | 28 +++++++++++++
 .../simcode/datatypes/SimTypeBool.java        |  2 +-
 .../simcode/datatypes/SimTypeInt.java         |  2 +-
 .../simcode/datatypes/SimTypeString.java      |  2 +-
 .../CodeExecuteFunction.java                  |  3 +-
 .../{ => functions}/SimCodeFunction.java      |  3 +-
 .../simulator/simcode/io/CodeAnalogRead.java  |  5 +--
 .../simulator/simcode/io/CodeAnalogWrite.java |  2 +-
 .../simulator/simcode/io/CodeDigitalRead.java |  2 +-
 .../simcode/io/CodeDigitalWrite.java          |  2 +-
 .../simulator/simcode/logic/CodeAND.java      |  2 +-
 .../simcode/logic/CodeBoolEqual.java          |  2 +-
 .../simcode/logic/CodeBoolUnequal.java        |  2 +-
 .../simcode/logic/CodeIntBigger.java          |  2 +-
 .../simcode/logic/CodeIntBiggerEqual.java     |  2 +-
 .../simulator/simcode/logic/CodeIntEqual.java |  2 +-
 .../simcode/logic/CodeIntSmaller.java         |  2 +-
 .../simcode/logic/CodeIntSmallerEqual.java    |  2 +-
 .../simcode/logic/CodeIntUnequal.java         |  2 +-
 .../simulator/simcode/logic/CodeNOT.java      |  2 +-
 .../simulator/simcode/logic/CodeOR.java       |  2 +-
 .../simcode/logic/CodeStringEqual.java        |  2 +-
 .../simcode/logic/CodeStringUnequal.java      |  2 +-
 .../simulator/simcode/math/CodeAbs.java       |  2 +-
 .../simulator/simcode/math/CodeAdd.java       |  2 +-
 .../simulator/simcode/math/CodeDivison.java   |  2 +-
 .../simulator/simcode/math/CodeLimit.java     |  2 +-
 .../simulator/simcode/math/CodeMap.java       |  2 +-
 .../simulator/simcode/math/CodeMap10to8.java  |  2 +-
 .../simulator/simcode/math/CodeMax.java       |  2 +-
 .../simulator/simcode/math/CodeMin.java       |  2 +-
 .../simulator/simcode/math/CodeMinus.java     |  2 +-
 .../simulator/simcode/math/CodeModulo.java    |  2 +-
 .../simulator/simcode/math/CodeProduct.java   |  2 +-
 .../simulator/simcode/math/CodeRandMax.java   |  2 +-
 .../simcode/math/CodeRandMinMax.java          |  2 +-
 .../simcode/vars/CodeBoolCreate.java          |  2 +-
 .../simulator/simcode/vars/CodeBoolGet.java   |  2 +-
 .../simulator/simcode/vars/CodeBoolSet.java   |  2 +-
 .../simulator/simcode/vars/CodeIntCreate.java |  2 +-
 .../simulator/simcode/vars/CodeIntGet.java    |  2 +-
 .../simulator/simcode/vars/CodeIntSet.java    |  2 +-
 .../simcode/{blocks => vars}/CodeMillis.java  |  4 +-
 .../ardublock/simulator/view/GUI.java         |  2 +-
 .../simulator/view/modules/ArduinoUno.java    |  2 +-
 58 files changed, 184 insertions(+), 105 deletions(-)
 rename src/tec/letsgoing/ardublock/simulator/simcode/{blocks => control}/CodeDelay.java (84%)
 create mode 100644 src/tec/letsgoing/ardublock/simulator/simcode/control/CodeForCount.java
 create mode 100644 src/tec/letsgoing/ardublock/simulator/simcode/control/CodeTypeIf.java
 create mode 100644 src/tec/letsgoing/ardublock/simulator/simcode/control/CodeWhileMillis.java
 rename src/tec/letsgoing/ardublock/simulator/simcode/{blocks => functions}/CodeExecuteFunction.java (80%)
 rename src/tec/letsgoing/ardublock/simulator/simcode/{ => functions}/SimCodeFunction.java (92%)
 rename src/tec/letsgoing/ardublock/simulator/simcode/{blocks => vars}/CodeMillis.java (77%)

diff --git a/src/tec/letsgoing/ardublock/simulator/Simulator.java b/src/tec/letsgoing/ardublock/simulator/Simulator.java
index f228730..93d9eca 100644
--- a/src/tec/letsgoing/ardublock/simulator/Simulator.java
+++ b/src/tec/letsgoing/ardublock/simulator/Simulator.java
@@ -9,19 +9,19 @@ import java.util.Vector;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
-import tec.letsgoing.ardublock.simulator.simcode.blocks.CodeDelay;
-import tec.letsgoing.ardublock.simulator.simcode.blocks.CodeExecuteFunction;
-import tec.letsgoing.ardublock.simulator.simcode.blocks.CodeMillis;
 import tec.letsgoing.ardublock.simulator.simcode.comm.CodeConnectString;
 import tec.letsgoing.ardublock.simulator.simcode.comm.CodeSerialPrint;
+import tec.letsgoing.ardublock.simulator.simcode.control.CodeDelay;
 import tec.letsgoing.ardublock.simulator.simcode.control.CodeFor;
 import tec.letsgoing.ardublock.simulator.simcode.control.CodeWhile;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString;
+import tec.letsgoing.ardublock.simulator.simcode.functions.CodeExecuteFunction;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.io.CodeDigitalWrite;
 import tec.letsgoing.ardublock.simulator.simcode.math.CodeAdd;
+import tec.letsgoing.ardublock.simulator.simcode.vars.CodeMillis;
 import tec.letsgoing.ardublock.simulator.view.GUI;
 
 /**
@@ -139,8 +139,8 @@ public class Simulator implements Runnable, ActionListener {
 		arduino.addFunction(_functionsCode);
 		return true;
 	}
-	
-	//TODO Function to Reset the saved Functions
+
+	// TODO Function to Reset the saved Functions
 
 	public void actionPerformed(ActionEvent arg0) {
 		String command = arg0.getActionCommand();
@@ -199,8 +199,7 @@ public class Simulator implements Runnable, ActionListener {
 		Vector<SimCode> tempVec = new Vector<SimCode>();
 		tempVec.add(new CodeExecuteFunction("loop"));
 		testMain.add(new CodeWhile(b1, tempVec));
-		SimCodeFunction main = new SimCodeFunction("main", testMain); 
-																		
+		SimCodeFunction main = new SimCodeFunction("main", testMain);
 
 		Simulator simu = Simulator.getInstance();
 		simu.addFunctionsCode(setupCode);
diff --git a/src/tec/letsgoing/ardublock/simulator/arduino/Arduino.java b/src/tec/letsgoing/ardublock/simulator/arduino/Arduino.java
index 0920e4b..ac9ab5d 100644
--- a/src/tec/letsgoing/ardublock/simulator/arduino/Arduino.java
+++ b/src/tec/letsgoing/ardublock/simulator/arduino/Arduino.java
@@ -7,9 +7,9 @@ import java.util.Arrays;
 import java.util.Vector;
 
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.view.GUI;
 
 /**
@@ -83,7 +83,6 @@ public class Arduino {
 			return false;
 	}
 
-
 	public boolean analogWrite(int _pin, int _value) {
 		int[] array = { 3, 5, 6, 9, 10, 11 };
 		for (int i = 0; i < 6; i++) {
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/SimCode.java b/src/tec/letsgoing/ardublock/simulator/simcode/SimCode.java
index ce0a2dd..22b8de4 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/SimCode.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/SimCode.java
@@ -6,6 +6,7 @@ package tec.letsgoing.ardublock.simulator.simcode;
 import java.util.Vector;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeConnectString.java b/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeConnectString.java
index b300c06..b1c7c2e 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeConnectString.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeConnectString.java
@@ -5,8 +5,8 @@ package tec.letsgoing.ardublock.simulator.simcode.comm;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeSerialPrint.java b/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeSerialPrint.java
index 5c3ab69..82aa58a 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeSerialPrint.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeSerialPrint.java
@@ -5,9 +5,9 @@ package tec.letsgoing.ardublock.simulator.simcode.comm;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/blocks/CodeDelay.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeDelay.java
similarity index 84%
rename from src/tec/letsgoing/ardublock/simulator/simcode/blocks/CodeDelay.java
rename to src/tec/letsgoing/ardublock/simulator/simcode/control/CodeDelay.java
index 00cf61e..d64ddf2 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/blocks/CodeDelay.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeDelay.java
@@ -1,12 +1,12 @@
 /**
  * 
  */
-package tec.letsgoing.ardublock.simulator.simcode.blocks;
+package tec.letsgoing.ardublock.simulator.simcode.control;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeElse.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeElse.java
index f864de6..ad9ef65 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeElse.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeElse.java
@@ -7,35 +7,26 @@ import java.util.Vector;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
  *
  */
-public class CodeElse extends SimCode {
-	private SimCode ifBlock;
+public class CodeElse extends CodeTypeIf {
+	private CodeTypeIf follow;
 	private Vector<SimCode> codeBlocks;
 
-	public CodeElse(SimCode _ifBlock, Vector<SimCode> _vec) {
-		ifBlock = _ifBlock;
+	public CodeElse(Vector<SimCode> _vec) {
 		codeBlocks = _vec;
 	}
-	//TODO Oberklasse IFType
-	//TODO If kann erweitert werden durch else/elseif
+
+	// TODO If kann erweitert werden durch else/elseif
 	@Override
 	public SimCode run(Arduino _arduino, SimCodeFunction functionHead) {
-		boolean cond = true;
-		if (ifBlock instanceof CodeIf) {
-			cond = ((CodeIf) ifBlock).run(_arduino, functionHead).getValue();
-		}
-		if (ifBlock instanceof CodeElseIf) {
-			cond = ((CodeElseIf) ifBlock).run(_arduino, functionHead).getValue();
-		}
-		if (!cond) {
-			for (SimCode block : codeBlocks) {
-				block.run(_arduino, functionHead);
-			}
+
+		for (SimCode block : codeBlocks) {
+			block.run(_arduino, functionHead);
 		}
 
 		return null;
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeElseIf.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeElseIf.java
index f9d3bd2..837d21e 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeElseIf.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeElseIf.java
@@ -7,40 +7,36 @@ import java.util.Vector;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
  *
  */
-public class CodeElseIf extends SimCode {
-	private CodeIf ifBlock;
+public class CodeElseIf extends CodeTypeIf {
+	private CodeTypeIf follow;
 	private SimTypeBool condition;
 	private Vector<SimCode> codeBlocks;
 
-	public CodeElseIf(CodeIf _ifBlock, SimTypeBool _condition, Vector<SimCode> _vec) {
-		ifBlock = _ifBlock;
+	public CodeElseIf(CodeTypeIf _follow, SimTypeBool _condition, Vector<SimCode> _vec) {
+		follow = _follow;
 		condition = _condition;
 		codeBlocks = _vec;
 	}
 
 	@Override
 	public SimTypeBool run(Arduino _arduino, SimCodeFunction functionHead) {
-		if (!ifBlock.run(_arduino, functionHead).getValue()) {
-			if (condition.run(_arduino, functionHead).getValue()) {
-				// No If before and Condition met.
-				for (SimCode block : codeBlocks) {
-					block.run(_arduino, functionHead);
-				}
-				return new SimTypeBool(true);
-			} else {
-				// Condition not met and different else can execute
-				return new SimTypeBool(false);
+		if (condition.run(_arduino, functionHead).getValue()) {
+			// Condition met.
+			for (SimCode block : codeBlocks) {
+				block.run(_arduino, functionHead);
 			}
+			return null;
 		} else {
-			// If already executet
-			return new SimTypeBool(true);
+			// Condition not met and different else can execute
+			follow.run(_arduino, functionHead);
+			return null;
 		}
 	}
 
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeFor.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeFor.java
index a53c614..3a8ca8f 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeFor.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeFor.java
@@ -7,8 +7,8 @@ import java.util.Vector;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeForCount.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeForCount.java
new file mode 100644
index 0000000..0937d34
--- /dev/null
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeForCount.java
@@ -0,0 +1,41 @@
+/**
+ * 
+ */
+package tec.letsgoing.ardublock.simulator.simcode.control;
+
+import java.util.Vector;
+
+import tec.letsgoing.ardublock.simulator.arduino.Arduino;
+import tec.letsgoing.ardublock.simulator.simcode.SimCode;
+import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
+
+/**
+ * @author Lucas
+ *
+ */
+public class CodeForCount extends SimCode {
+	private SimTypeInt count;
+	private SimTypeString varname;
+	private Vector<SimCode> blocks;
+
+	public CodeForCount(SimTypeInt _count, SimTypeString _varname, Vector<SimCode> _blocks) {
+		count = _count;
+		varname = _varname;
+		blocks = _blocks;
+	}
+
+	@Override
+	public SimCode run(Arduino _arduino, SimCodeFunction functionHead) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toString() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+}
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeIf.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeIf.java
index cb24e17..7ac50fe 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeIf.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeIf.java
@@ -7,33 +7,36 @@ import java.util.Vector;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
  *
  */
-public class CodeIf extends SimCode {
+public class CodeIf extends CodeTypeIf {
+	private CodeTypeIf follow;
 	private SimTypeBool condition;
 	private Vector<SimCode> codeBlocks;
 
-	public CodeIf(SimTypeBool _condition, Vector<SimCode> _vec) {
+	public CodeIf(CodeTypeIf _follow, SimTypeBool _condition, Vector<SimCode> _vec) {
 		condition = _condition;
 		codeBlocks = _vec;
+		follow = _follow;
 	}
 
 	/**
 	 * Returns True if the Condition is met or false if it isnt
 	 */
-	public SimTypeBool run(Arduino _arduino, SimCodeFunction functionHead) {
+	public SimCode run(Arduino _arduino, SimCodeFunction functionHead) {
 		if (condition.run(_arduino, functionHead).getValue()) {
 			for (SimCode block : codeBlocks) {
 				block.run(_arduino, functionHead);
 			}
-			return new SimTypeBool(true);
+			return null;// True Case
 		} else {
-			return new SimTypeBool(false);
+			follow.run(_arduino, functionHead);
+			return null; // False Case
 		}
 
 	}
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeTypeIf.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeTypeIf.java
new file mode 100644
index 0000000..4efc4c5
--- /dev/null
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeTypeIf.java
@@ -0,0 +1,22 @@
+/**
+ * 
+ */
+package tec.letsgoing.ardublock.simulator.simcode.control;
+
+import tec.letsgoing.ardublock.simulator.arduino.Arduino;
+import tec.letsgoing.ardublock.simulator.simcode.SimCode;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
+
+/**
+ * @author Lucas
+ *
+ */
+public abstract class CodeTypeIf extends SimCode {
+
+	@Override
+	public abstract SimCode run(Arduino _arduino, SimCodeFunction functionHead);
+
+	@Override
+	public abstract String toString();
+
+}
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeWhile.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeWhile.java
index e488c67..68db29f 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeWhile.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeWhile.java
@@ -7,8 +7,8 @@ import java.util.Vector;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeWhileMillis.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeWhileMillis.java
new file mode 100644
index 0000000..3d7a909
--- /dev/null
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeWhileMillis.java
@@ -0,0 +1,28 @@
+/**
+ * 
+ */
+package tec.letsgoing.ardublock.simulator.simcode.control;
+
+import tec.letsgoing.ardublock.simulator.arduino.Arduino;
+import tec.letsgoing.ardublock.simulator.simcode.SimCode;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
+
+/**
+ * @author Lucas
+ *
+ */
+public class CodeWhileMillis extends SimCode {
+
+	@Override
+	public SimCode run(Arduino _arduino, SimCodeFunction functionHead) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String toString() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+}
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeBool.java b/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeBool.java
index 9a0189a..0179cbc 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeBool.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeBool.java
@@ -5,7 +5,7 @@ package tec.letsgoing.ardublock.simulator.simcode.datatypes;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeInt.java b/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeInt.java
index 3cee61a..e1e8998 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeInt.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeInt.java
@@ -5,7 +5,7 @@ package tec.letsgoing.ardublock.simulator.simcode.datatypes;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeString.java b/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeString.java
index e1dc4b5..0dba4ae 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeString.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeString.java
@@ -5,7 +5,7 @@ package tec.letsgoing.ardublock.simulator.simcode.datatypes;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/blocks/CodeExecuteFunction.java b/src/tec/letsgoing/ardublock/simulator/simcode/functions/CodeExecuteFunction.java
similarity index 80%
rename from src/tec/letsgoing/ardublock/simulator/simcode/blocks/CodeExecuteFunction.java
rename to src/tec/letsgoing/ardublock/simulator/simcode/functions/CodeExecuteFunction.java
index 9b9819a..a64f5ec 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/blocks/CodeExecuteFunction.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/functions/CodeExecuteFunction.java
@@ -1,11 +1,10 @@
 /**
  * 
  */
-package tec.letsgoing.ardublock.simulator.simcode.blocks;
+package tec.letsgoing.ardublock.simulator.simcode.functions;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/SimCodeFunction.java b/src/tec/letsgoing/ardublock/simulator/simcode/functions/SimCodeFunction.java
similarity index 92%
rename from src/tec/letsgoing/ardublock/simulator/simcode/SimCodeFunction.java
rename to src/tec/letsgoing/ardublock/simulator/simcode/functions/SimCodeFunction.java
index 244c008..61859e1 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/SimCodeFunction.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/functions/SimCodeFunction.java
@@ -1,12 +1,13 @@
 /**
  * 
  */
-package tec.letsgoing.ardublock.simulator.simcode;
+package tec.letsgoing.ardublock.simulator.simcode.functions;
 
 import java.util.Vector;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.arduino.Variable;
+import tec.letsgoing.ardublock.simulator.simcode.SimCode;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeAnalogRead.java b/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeAnalogRead.java
index 7efc1c0..4b855a4 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeAnalogRead.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeAnalogRead.java
@@ -5,12 +5,11 @@ package tec.letsgoing.ardublock.simulator.simcode.io;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
- * @author Lucas
- *  //TODO Block Beschreibung realtiv zu Ardublock
+ * @author Lucas //TODO Block Beschreibung realtiv zu Ardublock
  */
 public class CodeAnalogRead extends SimCode {
 	private SimTypeInt pin;
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeAnalogWrite.java b/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeAnalogWrite.java
index 1fed3cf..8d6c35e 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeAnalogWrite.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeAnalogWrite.java
@@ -5,8 +5,8 @@ package tec.letsgoing.ardublock.simulator.simcode.io;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeDigitalRead.java b/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeDigitalRead.java
index 3d0469b..8edb168 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeDigitalRead.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeDigitalRead.java
@@ -5,9 +5,9 @@ package tec.letsgoing.ardublock.simulator.simcode.io;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeDigitalWrite.java b/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeDigitalWrite.java
index 44b19a5..fa98aac 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeDigitalWrite.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeDigitalWrite.java
@@ -5,9 +5,9 @@ package tec.letsgoing.ardublock.simulator.simcode.io;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeAND.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeAND.java
index a61a671..5eefcb2 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeAND.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeAND.java
@@ -5,8 +5,8 @@ package tec.letsgoing.ardublock.simulator.simcode.logic;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeBoolEqual.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeBoolEqual.java
index ef283c5..cda3b2b 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeBoolEqual.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeBoolEqual.java
@@ -5,8 +5,8 @@ package tec.letsgoing.ardublock.simulator.simcode.logic;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeBoolUnequal.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeBoolUnequal.java
index a40bf20..9629eef 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeBoolUnequal.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeBoolUnequal.java
@@ -5,8 +5,8 @@ package tec.letsgoing.ardublock.simulator.simcode.logic;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntBigger.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntBigger.java
index 9e01438..a4abd94 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntBigger.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntBigger.java
@@ -5,9 +5,9 @@ package tec.letsgoing.ardublock.simulator.simcode.logic;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntBiggerEqual.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntBiggerEqual.java
index f95255e..642ad43 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntBiggerEqual.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntBiggerEqual.java
@@ -5,9 +5,9 @@ package tec.letsgoing.ardublock.simulator.simcode.logic;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntEqual.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntEqual.java
index 09a6517..0490e57 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntEqual.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntEqual.java
@@ -5,9 +5,9 @@ package tec.letsgoing.ardublock.simulator.simcode.logic;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntSmaller.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntSmaller.java
index 7dfea54..624acb2 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntSmaller.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntSmaller.java
@@ -5,9 +5,9 @@ package tec.letsgoing.ardublock.simulator.simcode.logic;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntSmallerEqual.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntSmallerEqual.java
index 518384a..97022de 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntSmallerEqual.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntSmallerEqual.java
@@ -5,9 +5,9 @@ package tec.letsgoing.ardublock.simulator.simcode.logic;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntUnequal.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntUnequal.java
index 4c3c30e..ed7ff84 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntUnequal.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntUnequal.java
@@ -5,9 +5,9 @@ package tec.letsgoing.ardublock.simulator.simcode.logic;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeNOT.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeNOT.java
index 87cb2ab..83c4257 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeNOT.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeNOT.java
@@ -5,8 +5,8 @@ package tec.letsgoing.ardublock.simulator.simcode.logic;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeOR.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeOR.java
index de40ae4..6e7dc9e 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeOR.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeOR.java
@@ -5,8 +5,8 @@ package tec.letsgoing.ardublock.simulator.simcode.logic;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringEqual.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringEqual.java
index 7de1171..67a92b9 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringEqual.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringEqual.java
@@ -5,9 +5,9 @@ package tec.letsgoing.ardublock.simulator.simcode.logic;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringUnequal.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringUnequal.java
index 150257c..36eba0f 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringUnequal.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringUnequal.java
@@ -5,9 +5,9 @@ package tec.letsgoing.ardublock.simulator.simcode.logic;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeAbs.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeAbs.java
index 4455fbe..89f728e 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeAbs.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeAbs.java
@@ -5,8 +5,8 @@ package tec.letsgoing.ardublock.simulator.simcode.math;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeAdd.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeAdd.java
index dea4dd6..ed6845b 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeAdd.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeAdd.java
@@ -5,8 +5,8 @@ package tec.letsgoing.ardublock.simulator.simcode.math;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeDivison.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeDivison.java
index ac0a9f8..30d516b 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeDivison.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeDivison.java
@@ -5,8 +5,8 @@ package tec.letsgoing.ardublock.simulator.simcode.math;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeLimit.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeLimit.java
index dd73ae3..9adc533 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeLimit.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeLimit.java
@@ -5,8 +5,8 @@ package tec.letsgoing.ardublock.simulator.simcode.math;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap.java
index 0a7e848..4719220 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap.java
@@ -5,8 +5,8 @@ package tec.letsgoing.ardublock.simulator.simcode.math;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap10to8.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap10to8.java
index f578120..13c179e 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap10to8.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap10to8.java
@@ -5,8 +5,8 @@ package tec.letsgoing.ardublock.simulator.simcode.math;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMax.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMax.java
index ffa1bc7..72dad95 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMax.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMax.java
@@ -5,8 +5,8 @@ package tec.letsgoing.ardublock.simulator.simcode.math;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMin.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMin.java
index 63efb81..2c63495 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMin.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMin.java
@@ -5,8 +5,8 @@ package tec.letsgoing.ardublock.simulator.simcode.math;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMinus.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMinus.java
index 25d6b04..1d148e5 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMinus.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMinus.java
@@ -5,8 +5,8 @@ package tec.letsgoing.ardublock.simulator.simcode.math;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeModulo.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeModulo.java
index a88864c..db6eca6 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeModulo.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeModulo.java
@@ -5,8 +5,8 @@ package tec.letsgoing.ardublock.simulator.simcode.math;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeProduct.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeProduct.java
index c6a163f..32e42d4 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeProduct.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeProduct.java
@@ -5,8 +5,8 @@ package tec.letsgoing.ardublock.simulator.simcode.math;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeRandMax.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeRandMax.java
index 87b43b9..2b8d759 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeRandMax.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeRandMax.java
@@ -5,8 +5,8 @@ package tec.letsgoing.ardublock.simulator.simcode.math;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeRandMinMax.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeRandMinMax.java
index 1eac5f5..28e2ee1 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeRandMinMax.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeRandMinMax.java
@@ -5,8 +5,8 @@ package tec.letsgoing.ardublock.simulator.simcode.math;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolCreate.java b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolCreate.java
index fe4e8da..48571f4 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolCreate.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolCreate.java
@@ -5,9 +5,9 @@ package tec.letsgoing.ardublock.simulator.simcode.vars;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolGet.java b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolGet.java
index 1298e8c..5d0a143 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolGet.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolGet.java
@@ -5,9 +5,9 @@ package tec.letsgoing.ardublock.simulator.simcode.vars;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolSet.java b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolSet.java
index 97570e8..280b36b 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolSet.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolSet.java
@@ -5,9 +5,9 @@ package tec.letsgoing.ardublock.simulator.simcode.vars;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntCreate.java b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntCreate.java
index f08e5da..3243028 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntCreate.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntCreate.java
@@ -5,10 +5,10 @@ package tec.letsgoing.ardublock.simulator.simcode.vars;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntGet.java b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntGet.java
index d78934d..4186814 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntGet.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntGet.java
@@ -5,10 +5,10 @@ package tec.letsgoing.ardublock.simulator.simcode.vars;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntSet.java b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntSet.java
index 083a06b..0e7cf05 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntSet.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntSet.java
@@ -5,9 +5,9 @@ package tec.letsgoing.ardublock.simulator.simcode.vars;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/blocks/CodeMillis.java b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeMillis.java
similarity index 77%
rename from src/tec/letsgoing/ardublock/simulator/simcode/blocks/CodeMillis.java
rename to src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeMillis.java
index 8b44290..b5e1cc6 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/blocks/CodeMillis.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeMillis.java
@@ -1,12 +1,12 @@
 /**
  * 
  */
-package tec.letsgoing.ardublock.simulator.simcode.blocks;
+package tec.letsgoing.ardublock.simulator.simcode.vars;
 
 import tec.letsgoing.ardublock.simulator.arduino.Arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
-import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
+import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * @author Lucas
diff --git a/src/tec/letsgoing/ardublock/simulator/view/GUI.java b/src/tec/letsgoing/ardublock/simulator/view/GUI.java
index a788801..cd1b0f8 100644
--- a/src/tec/letsgoing/ardublock/simulator/view/GUI.java
+++ b/src/tec/letsgoing/ardublock/simulator/view/GUI.java
@@ -44,7 +44,7 @@ public class GUI extends JFrame implements Runnable, ActionListener {
 
 	public GUI(Simulator simu) {
 		super("ArdubBlock Simulator");
-		//TODO Module geben Pin Positionen
+		// TODO Module geben Pin Positionen
 		modules[0] = new RGB();
 		modules[1] = new Button();
 		modules[2] = new Poti();
diff --git a/src/tec/letsgoing/ardublock/simulator/view/modules/ArduinoUno.java b/src/tec/letsgoing/ardublock/simulator/view/modules/ArduinoUno.java
index 4d7ad43..369a977 100644
--- a/src/tec/letsgoing/ardublock/simulator/view/modules/ArduinoUno.java
+++ b/src/tec/letsgoing/ardublock/simulator/view/modules/ArduinoUno.java
@@ -26,7 +26,7 @@ public class ArduinoUno extends Modul {
 	private int led13 = 0;
 
 	public ArduinoUno() {
-		//TODO Arduino mittig anordnen
+		// TODO Arduino mittig anordnen
 		layerpane.setPreferredSize(new Dimension(587, 418));
 		JLabel chiplabel = new JLabel();
 		ImageIcon chipIcon = new ImageIcon("res/ArduinoUno.png");
-- 
GitLab