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