diff --git a/Aufgabe4/UML_Aufgabe4.uxf b/Aufgabe4/UML_Aufgabe4.uxf
new file mode 100644
index 0000000000000000000000000000000000000000..0f0ebad0d70c67e3aa475f210f9d7224b44f0827
--- /dev/null
+++ b/Aufgabe4/UML_Aufgabe4.uxf
@@ -0,0 +1,129 @@
+<diagram program="umletino" version="15.0.0"><zoom_level>8</zoom_level><help_text>Space for diagram notes</help_text><element><id>UMLClass</id><coordinates><x>360</x><y>248</y><w>80</w><h>64</h></coordinates><panel_attributes>/AbstractClass/
+Ast
+-
+
+-
++ visit() : void
+</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>176</x><y>112</y><w>152</w><h>72</h></coordinates><panel_attributes>AstExpression
+-
++ astExpression: AstExpression 
++ astBinaryOp: AstBinaryOp 
++ astValue: AstValue
+-
++ visit() : void</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>80</x><y>232</y><w>152</w><h>72</h></coordinates><panel_attributes>AstBinaryOp
+-
++ astExpression1: AstExpression
++  astExpression2: AstExpression
++ astOperator: AstOperator 
+-
++ visit() : void</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>80</x><y>352</y><w>152</w><h>72</h></coordinates><panel_attributes>AstValue
+-
++ astNumber: AstNumber
++ astDecimal: AstDecimal
++ AstVariable: astVariable
+-
++ visit() : void</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>240</x><y>432</y><w>96</w><h>48</h></coordinates><panel_attributes>AstVariable
+-
++ astVariable: String
+-
++ visit() : void</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>544</x><y>264</y><w>152</w><h>64</h></coordinates><panel_attributes>AstNumber
+-
++ astDigitWoZ: astDigitWoZ
++ astDogots: ArrayList&lt;AstDigit&gt;
+-
++ visit() : void</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>520</x><y>416</y><w>88</w><h>48</h></coordinates><panel_attributes>AstDigitWoZ
+-
++ astDigitWoZ: int
+-
++ visit() : void</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>360</x><y>448</y><w>136</w><h>64</h></coordinates><panel_attributes>AstDigit
+-
++ astDigitWoZ: AstDigitWoZ
++ astDigit: Int
+-
++ visit() : void</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>552</x><y>176</y><w>176</w><h>64</h></coordinates><panel_attributes>AstDecimal
+-
++ astDigitbeforeComma: AstNumber
++ astDigitafterComma: AstNumber
+-
++ visit() : void</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>408</x><y>128</y><w>120</w><h>48</h></coordinates><panel_attributes>AstOperator
+-
++ astOperator: String
+-
++ visit() : void</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>648</x><y>376</y><w>168</w><h>112</h></coordinates><panel_attributes>Evaluator
+--
+-  counter: float
+-
++ setCounter(float)
++ visit (AstExpression)
++ visit (AstBinaryOp) 
++ visit (AstValue)
++ visit (AstNumber)
++ visit (AstVariable)</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>264</x><y>552</y><w>200</w><h>88</h></coordinates><panel_attributes>Exceptions
+--
+- message: String
+-
++ ParserException(String): String
++ toString() : String
++ LexerException(): void
++ LexerException(String): void</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>360</x><y>728</y><w>352</w><h>88</h></coordinates><panel_attributes>Lexer
+--
+
+--
++ lex(String): ArrayList&lt;Token&gt;
+- separateChars(String): ArrayList&lt;String&gt;
+- buildSubstringsFromSeparatedChars(ArrayList&lt;String&gt;): ArrayList&lt;String&gt;
+- constructTokenList(ArrayList&lt;String&gt;): ArrayList&lt;Token&gt;</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>16</x><y>696</y><w>304</w><h>160</h></coordinates><panel_attributes>Parser
+--
+
+--
++ parse(tokenList: ArrayList&lt;Token&gt;): AstExpression
+- parseAstExpression(tokenList: ArrayList&lt;Token&gt;): AstExpression
+- parseBinaryOp(tokenList: ArrayList&lt;Token&gt;): AstBinaryOp
+- parseOperator(operator: Token): AstOperator
+- parseValue(valueTokens: ArrayList&lt;Token&gt;): AstValue
+- parseVariable(valueTokens: ArrayList&lt;Token&gt;): AstVariable
+- parseDecimal(valueTokens: ArrayList&lt;Token&gt;): AstDecimal
+- parseNumber(valueTokens: ArrayList&lt;Token&gt;): AstNumber
+- parseDigitWoZ(digitWoz: Token): AstDigitWoZ
+- parseAstDigit(digit: Token): AstDigit
+</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>920</x><y>176</y><w>200</w><h>48</h></coordinates><panel_attributes>Plotter
+--
++ plot(ValuesToDraw) : void
++ createAndShowGUI(ValuesToDraw) : void
+</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>904</x><y>280</y><w>208</w><h>136</h></coordinates><panel_attributes>PlotterPanel
+--
+- xCords : int[]
+- yCords : int[]
+- ZERO_POINT_Y : int
+- ZERO_POINT_X : int
+- valuesToDraw : ValuesToDraw
+--
++ PlotterPanel(ValuesToDraw) : constructor
++ getPreferredSize() : Dimension
++ paintComponent(Graphics) : void
++ drawLine(Graphics) : void</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>744</x><y>672</y><w>168</w><h>112</h></coordinates><panel_attributes>Token
+--
+- tokenType: TokenType
+- tokenString: String
+--
++ Token(TokenType, String) : constructor
++ getTokenType() : TokenType
++ setTokenType(TokenType) : void
++ getTokenString() : String
++ setTokenString(String) : void</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>784</x><y>552</y><w>80</w><h>72</h></coordinates><panel_attributes>&lt;&lt;Enum&gt;&gt;
+TokenType
+--
+number
+var
+special</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>896</x><y>464</y><w>216</w><h>88</h></coordinates><panel_attributes>ValuesToDraw
+--
+- xCordArrays: ArrayList&lt;int[]&gt;
+- i: int
+--
++ ValuesToDraw(ArrayList&lt;int[]&gt;) : constructor
++ getXCords() : int[]
++ getYCords() : int[]</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>432</x><y>232</y><w>136</w><h>64</h></coordinates><panel_attributes>lt=&lt;&lt;&lt;-</panel_attributes><additional_attributes>10;60;150;10</additional_attributes></element><element><id>Relation</id><coordinates><x>392</x><y>168</y><w>88</w><h>96</h></coordinates><panel_attributes>lt=&lt;&lt;&lt;-</panel_attributes><additional_attributes>10;100;90;10</additional_attributes></element><element><id>Relation</id><coordinates><x>320</x><y>176</y><w>80</w><h>88</h></coordinates><panel_attributes>lt=&lt;&lt;&lt;-</panel_attributes><additional_attributes>80;90;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>224</x><y>264</y><w>152</w><h>24</h></coordinates><panel_attributes>lt=&lt;&lt;&lt;-</panel_attributes><additional_attributes>170;10;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>224</x><y>304</y><w>168</w><h>64</h></coordinates><panel_attributes>lt=&lt;&lt;&lt;-</panel_attributes><additional_attributes>190;10;10;60</additional_attributes></element><element><id>Relation</id><coordinates><x>280</x><y>304</y><w>136</w><h>144</h></coordinates><panel_attributes>lt=&lt;&lt;&lt;-</panel_attributes><additional_attributes>150;10;10;160</additional_attributes></element><element><id>Relation</id><coordinates><x>408</x><y>304</y><w>32</w><h>160</h></coordinates><panel_attributes>lt=&lt;&lt;&lt;-</panel_attributes><additional_attributes>10;10;20;180</additional_attributes></element><element><id>Relation</id><coordinates><x>416</x><y>304</y><w>120</w><h>128</h></coordinates><panel_attributes>lt=&lt;&lt;&lt;-</panel_attributes><additional_attributes>10;10;130;140</additional_attributes></element><element><id>Relation</id><coordinates><x>432</x><y>288</y><w>128</w><h>24</h></coordinates><panel_attributes>lt=&lt;&lt;&lt;-</panel_attributes><additional_attributes>10;10;140;10</additional_attributes></element><element><id>UMLPackage</id><coordinates><x>0</x><y>56</y><w>1176</w><h>832</h></coordinates><panel_attributes>src
+--
+</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>816</x><y>616</y><w>24</w><h>72</h></coordinates><panel_attributes>lt=&lt;-</panel_attributes><additional_attributes>10;70;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>160</x><y>632</y><w>208</w><h>80</h></coordinates><panel_attributes>&lt;&lt;throws&gt;&gt;
+lt=&lt;..</panel_attributes><additional_attributes>240;10;10;80</additional_attributes></element><element><id>Relation</id><coordinates><x>456</x><y>632</y><w>96</w><h>112</h></coordinates><panel_attributes>&lt;&lt;throws&gt;&gt;
+lt=&lt;..</panel_attributes><additional_attributes>10;10;100;120</additional_attributes></element></diagram>
\ No newline at end of file