diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2b63946d5b31084bbb7dda418ceb3d75eb686373
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Palette2">
+    <group name="Swing">
+      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
+      </item>
+      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
+        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
+        <initial-values>
+          <property name="text" value="Button" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="RadioButton" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="CheckBox" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="Label" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
+          <preferred-size width="-1" height="20" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
+      </item>
+    </group>
+  </component>
+</project>
\ No newline at end of file
diff --git a/Aufgabe3/packages/NUnit.3.13.3/CHANGES.md b/Aufgabe3/packages/NUnit.3.13.3/CHANGES.md
index ae907d4854e7b1013476ff9142ee4be8f0974f33..13279ed0a703038c42e67a58a4db0d53918aafd9 100644
--- a/Aufgabe3/packages/NUnit.3.13.3/CHANGES.md
+++ b/Aufgabe3/packages/NUnit.3.13.3/CHANGES.md
@@ -1714,7 +1714,7 @@ NOTE: Bug Fixes below this point refer to the number of the bug in Launchpad.
 
 ## NUnit 2.9.6 - October 4, 2013
 
-### Main Features
+### main Features
 
  * Separate projects for nunit-console and nunit.engine
  * New builds for .NET 4.5 and Silverlight
@@ -1847,7 +1847,7 @@ NOTE: Bug Fixes below this point refer to the number of the bug in Launchpad.
 
 ## NUnit 2.9.3 - October 26, 2009
 
-### Main Features
+### main Features
 
  * Created new API for controlling framework
  * New builds for .Net 3.5 and 4.0, compact framework 3.5
@@ -1861,7 +1861,7 @@ NOTE: Bug Fixes below this point refer to the number of the bug in Launchpad.
 
 ## NUnit 2.9.2 - September 19, 2009
 
-### Main Features
+### main Features
 
  * NUnitLite code is now merged with NUnit
  * Added NUnitLite runner to the framework code
diff --git a/Aufgabe4/Ast.java b/Aufgabe4/Ast.java
new file mode 100644
index 0000000000000000000000000000000000000000..1de8c119aeddab744c2f9db5db25bcd943618438
--- /dev/null
+++ b/Aufgabe4/Ast.java
@@ -0,0 +1,65 @@
+import java.beans.Expression;
+import java.util.ArrayList;
+
+public abstract class Ast {
+
+    public void visit(){
+
+    }
+
+   
+}
+
+class AstExpression extends Ast {
+
+    AstExpression astExpression;
+    AstBinaryOp astBinaryOp;
+    AstValue astValue;
+    
+}
+
+class AstBinaryOp extends Ast {
+
+    Ast[] binaryOp = new Ast[3];
+
+}
+
+class AstValue extends Ast {
+
+    AstNumber astNumber;
+    AstValue astValue;
+    boolean isVariable;
+
+}
+
+class AstNumber extends Ast {
+
+    AstDigitWoz astDigitWoz;
+    ArrayList<AstDigit> astDigits = new ArrayList<>();
+
+}
+
+class AstDigitWoz extends Ast {
+
+    int astDigitWozContent;
+
+}
+
+class AstDigit extends Ast {
+
+    int astDigit;
+
+}
+
+class AstDecimal extends Ast {
+
+    AstDigit astDigitBeforeComma;
+    AstDigit astDigitAfterComma;
+
+
+}
+
+class AstOperator extends Ast {
+
+    String astOperator;
+}
diff --git a/Aufgabe4/Tokenizer.java b/Aufgabe4/Lexer.java
similarity index 88%
rename from Aufgabe4/Tokenizer.java
rename to Aufgabe4/Lexer.java
index 574433deb2fa0afcf34d01a06e03edcebb8a554f..fc81483a99d20bde8f47e326a2f672f6e88fe89d 100644
--- a/Aufgabe4/Tokenizer.java
+++ b/Aufgabe4/Lexer.java
@@ -1,17 +1,17 @@
 import java.util.ArrayList;
 import java.util.Objects;
 
-public class Tokenizer {
+public class Lexer {
 
 
+    public ArrayList<Token> lex(String s) {
 
+        ArrayList<String> separatedChars = separateChars(s);
 
+        ArrayList<String> tokensAsStrings = buildSubstringsFromSeparatedChars(separatedChars);
 
+        return constructTokenList(tokensAsStrings);
 
-    public ArrayList<Token> tokenizeString(String s) {
-
-
-        return constructTokenList( buildSubstringsFromSeparatedChars( separateChars(s) ) );
 
 
     }
diff --git a/Aufgabe4/Main.java b/Aufgabe4/Main.java
deleted file mode 100644
index 4fa6318de63f9c6854d5a41f720546436e6c4fe8..0000000000000000000000000000000000000000
--- a/Aufgabe4/Main.java
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-public class Main {
-    public static void main(String[] args){
-
-        // 23, x, +, (,0, 5, x,), ^, 2, -, 1
-        String ausdruck = "230lkjhx  +(2  5x) ^2,jhff  3−1gf ";
-        String ausdruck2 = "0x  +(2 5x) ^2−1f ";
-
-        Tokenizer t = new Tokenizer();
-
-        t.tokenizeString(ausdruck).forEach(t1 -> {
-            System.out.print(t1.getTokenString() + " ");
-            System.out.println(t1.getTokenType());
-        });
-
-
-        t.tokenizeString(ausdruck2).forEach(t1 -> {
-            System.out.print(t1.getTokenString() + " ");
-            System.out.println(t1.getTokenType());
-        });
-
-
-    }
-}
-
diff --git a/Aufgabe4/Parser.java b/Aufgabe4/Parser.java
new file mode 100644
index 0000000000000000000000000000000000000000..fe1ccee59d60883315d71fc3daaa95ded2d8bd1c
--- /dev/null
+++ b/Aufgabe4/Parser.java
@@ -0,0 +1,99 @@
+import java.io.IOError;
+import java.sql.SQLSyntaxErrorException;
+import java.util.ArrayList;
+import java.util.Collections;
+
+public class Parser {
+
+    public AstExpression parse (ArrayList<Token> tokenList) {
+
+        AstExpression root;
+
+        root = (AstExpression) parseAstExpression(tokenList);
+
+        return root;
+    }
+
+    private Ast parseAstExpression (ArrayList<Token> tokenList) {
+
+        if(tokenList.size() == 1) {
+            AstValue astValue = new AstValue();
+            astValue.astNumber = new AstNumber();
+            astValue.astNumber.astDigitWoz = new AstDigitWoz();
+
+            astValue.astNumber.astDigitWoz.astDigitWozContent = Integer.parseInt(tokenList.get(0).getTokenString());
+            return astValue;
+        }
+
+        AstExpression astExpression = new AstExpression();
+
+        ArrayList<Token> tokensPos3 = new ArrayList<>();
+
+        tokenList.forEach(token -> {
+            if(token != tokenList.get(0) && token != tokenList.get(1)) {
+                tokensPos3.add(token);
+            }
+        });
+
+
+        astExpression.astBinaryOp = parseBinaryOp(tokenList.get(0), tokenList.get(1), tokensPos3);
+
+        return astExpression;
+
+    }
+
+    private AstBinaryOp parseBinaryOp (Token expression1, Token operator, ArrayList<Token> expression2) {
+
+
+
+
+        AstBinaryOp astBinaryOp = new AstBinaryOp();
+
+
+        AstValue exp1;
+
+        ArrayList<Token> exp1ArrayList = new ArrayList<>();
+        exp1ArrayList.add(expression1);
+        exp1 = (AstValue) parseAstExpression(exp1ArrayList);
+
+        astBinaryOp.binaryOp[0] = exp1;
+
+
+        astBinaryOp.binaryOp[1] = parseOperator(operator);
+
+
+
+        // ( 2 + 3 ) + 3
+
+
+        if (expression2.size() > 2) {
+
+            astBinaryOp.binaryOp[2] = parseAstExpression(expression2);
+
+        } else {
+
+            AstValue exp2 = new AstValue();
+
+            ArrayList<Token> exp2ArrayList = new ArrayList<>();
+            exp2ArrayList.add(expression2.get(0));
+            exp2 = (AstValue) parseAstExpression(exp2ArrayList);
+
+            astBinaryOp.binaryOp[2] = exp2;
+
+        }
+
+        return astBinaryOp ;
+    }
+
+    private AstOperator parseOperator (Token operator) {
+
+        AstOperator astOperator = new AstOperator();
+        astOperator.astOperator = operator.tokenString;
+
+        return astOperator;
+    }
+
+
+
+
+}
diff --git a/Aufgabe4/main.java b/Aufgabe4/main.java
new file mode 100644
index 0000000000000000000000000000000000000000..5c9c6102ded153aef125ba357203eb07267a9b76
--- /dev/null
+++ b/Aufgabe4/main.java
@@ -0,0 +1,41 @@
+import java.util.Arrays;
+
+public class main {
+
+    public static void main(String[] args){
+
+        // 23, x, +, (,0, 5, x,), ^, 2, -, 1
+        String ausdruck = "230lkjhx  +(2  5x) ^2,jhff  3−1gf ";
+        String ausdruck2 = "0x  +(2 5x) ^2−1f ";
+
+        Lexer lexer = new Lexer();
+
+        // [23x] + [0,5x^2 - 1]
+
+
+        //lexer.lex(ausdruck).forEach(token -> System.out.println(token.getTokenString()));
+
+        Parser p = new Parser();
+
+        AstExpression result =  p.parse(lexer.lex(ausdruck));
+
+
+        System.out.println( ((AstValue) result.astBinaryOp.binaryOp[0]).astNumber.astDigitWoz.astDigitWozContent );
+
+        System.out.println( ((AstOperator) result.astBinaryOp.binaryOp[1]).astOperator );
+
+
+        // System.out.println( ( result.astBinaryOp.binaryOp[2]).getClass() );
+
+        AstExpression root = (AstExpression) result.astBinaryOp.binaryOp[2];
+
+        System.out.println( ((AstValue) root.astBinaryOp.binaryOp[0]).astNumber.astDigitWoz.astDigitWozContent );
+
+        System.out.println( ((AstOperator) root.astBinaryOp.binaryOp[1]).astOperator );
+
+        System.out.println( ((AstValue) root.astBinaryOp.binaryOp[2]).astNumber.astDigitWoz.astDigitWozContent );
+
+
+    }
+}
+
diff --git a/out/production/inf3_git/main.class b/out/production/inf3_git/main.class
index 386650f1dab3e03d3dce9cf08e58cea64d1e5f43..274c9dc70fb7124b56b29c31600ddfaac7e9ea12 100644
Binary files a/out/production/inf3_git/main.class and b/out/production/inf3_git/main.class differ