From 9cca9bc8f8e313094a7fe4f54451f184dca5728d Mon Sep 17 00:00:00 2001 From: happymeal2024 Date: Tue, 24 Jun 2025 17:05:30 +0200 Subject: [PATCH] ParserTest --- pom.xml | 17 +++- src/main/java/de/vimo/Main.java | 22 ++++++ src/main/java/de/vimo/command/CdCommand.java | 26 +++++++ .../java/de/vimo/command/HelpCommand.java | 25 ++++++ src/main/java/de/vimo/command/LsCommand.java | 25 ++++++ .../java/de/vimo/command/MkdirCommand.java | 25 ++++++ src/main/java/de/vimo/core/Argument.java | 15 ++++ src/main/java/de/vimo/core/Command.java | 12 +++ src/main/java/de/vimo/core/Flag.java | 28 +++++++ src/main/java/de/vimo/core/Line.java | 73 ++++++++++++++++++ src/main/java/de/vimo/core/Parser.java | 6 ++ src/test/java/de/vimo/AppTest.java | 38 --------- src/test/java/de/vimo/core/ParserTest.java | 57 ++++++++++++++ .../de/vimo/InputTextTillCommand.class | Bin 0 -> 259 bytes target/classes/de/vimo/Jcmd.class | Bin 678 -> 1657 bytes target/classes/de/vimo/Main.class | Bin 0 -> 919 bytes .../classes/de/vimo/command/CdCommand.class | Bin 0 -> 941 bytes .../classes/de/vimo/command/HelpCommand.class | Bin 0 -> 947 bytes .../classes/de/vimo/command/LsCommand.class | Bin 0 -> 941 bytes .../de/vimo/command/MkdirCommand.class | Bin 0 -> 950 bytes target/classes/de/vimo/core/Argument.class | Bin 0 -> 464 bytes target/classes/de/vimo/core/Command.class | Bin 0 -> 396 bytes target/classes/de/vimo/core/Flag.class | Bin 0 -> 748 bytes target/classes/de/vimo/core/Line.class | Bin 0 -> 1041 bytes target/classes/de/vimo/core/Parser.class | Bin 0 -> 164 bytes .../de/vimo/core/ParserTest$1.class | Bin 0 -> 1820 bytes .../de/vimo/core/ParserTest.class | Bin 0 -> 2559 bytes 27 files changed, 328 insertions(+), 41 deletions(-) create mode 100644 src/main/java/de/vimo/Main.java create mode 100644 src/main/java/de/vimo/command/CdCommand.java create mode 100644 src/main/java/de/vimo/command/HelpCommand.java create mode 100644 src/main/java/de/vimo/command/LsCommand.java create mode 100644 src/main/java/de/vimo/command/MkdirCommand.java create mode 100644 src/main/java/de/vimo/core/Argument.java create mode 100644 src/main/java/de/vimo/core/Command.java create mode 100644 src/main/java/de/vimo/core/Flag.java create mode 100644 src/main/java/de/vimo/core/Line.java create mode 100644 src/main/java/de/vimo/core/Parser.java delete mode 100644 src/test/java/de/vimo/AppTest.java create mode 100644 src/test/java/de/vimo/core/ParserTest.java create mode 100644 target/classes/de/vimo/InputTextTillCommand.class create mode 100644 target/classes/de/vimo/Main.class create mode 100644 target/classes/de/vimo/command/CdCommand.class create mode 100644 target/classes/de/vimo/command/HelpCommand.class create mode 100644 target/classes/de/vimo/command/LsCommand.class create mode 100644 target/classes/de/vimo/command/MkdirCommand.class create mode 100644 target/classes/de/vimo/core/Argument.class create mode 100644 target/classes/de/vimo/core/Command.class create mode 100644 target/classes/de/vimo/core/Flag.class create mode 100644 target/classes/de/vimo/core/Line.class create mode 100644 target/classes/de/vimo/core/Parser.class create mode 100644 target/test-classes/de/vimo/core/ParserTest$1.class create mode 100644 target/test-classes/de/vimo/core/ParserTest.class diff --git a/pom.xml b/pom.xml index dff1c8b..b074844 100644 --- a/pom.xml +++ b/pom.xml @@ -21,9 +21,10 @@ - junit - junit - 3.8.1 + org.junit.jupiter + junit-jupiter-api + 5.13.1 + test @@ -69,6 +70,16 @@ + + + org.apache.maven.plugins + maven-compiler-plugin + + 9 + 9 + + + diff --git a/src/main/java/de/vimo/Main.java b/src/main/java/de/vimo/Main.java new file mode 100644 index 0000000..62f41fe --- /dev/null +++ b/src/main/java/de/vimo/Main.java @@ -0,0 +1,22 @@ +package de.vimo; + +import de.vimo.core.Line; +import de.vimo.core.Parser; + +import java.util.Scanner; + +public class Main { + public static void main(String[] args) { + Scanner scanner = new Scanner(System.in); + Parser parser = null; + + while (true) { + String raw = scanner.nextLine(); + Line line = parser.parse(raw); + + if (line.getCommand() != null) { + // line.getCommand().exec(line.getFlags(), line.getArgs()); + } + } + } +} diff --git a/src/main/java/de/vimo/command/CdCommand.java b/src/main/java/de/vimo/command/CdCommand.java new file mode 100644 index 0000000..6fb12f1 --- /dev/null +++ b/src/main/java/de/vimo/command/CdCommand.java @@ -0,0 +1,26 @@ +package de.vimo.command; + +import de.vimo.core.Argument; +import de.vimo.core.Command; +import de.vimo.core.Flag; + +import java.util.List; + +public class CdCommand implements Command { + + @Override + public int exec(List flags, List args) { + return 0; + } + + @Override + public String getName() { + return null; + } + + @Override + public List getFlags() { + return null; + } +} + diff --git a/src/main/java/de/vimo/command/HelpCommand.java b/src/main/java/de/vimo/command/HelpCommand.java new file mode 100644 index 0000000..7eefe80 --- /dev/null +++ b/src/main/java/de/vimo/command/HelpCommand.java @@ -0,0 +1,25 @@ +package de.vimo.command; + +import de.vimo.core.Argument; +import de.vimo.core.Command; +import de.vimo.core.Flag; + +import java.util.List; + +public class HelpCommand implements Command { + + @Override + public int exec(List flags, List args) { + return 0; + } + + @Override + public String getName() { + return null; + } + + @Override + public List getFlags() { + return null; + } +} \ No newline at end of file diff --git a/src/main/java/de/vimo/command/LsCommand.java b/src/main/java/de/vimo/command/LsCommand.java new file mode 100644 index 0000000..bb04f87 --- /dev/null +++ b/src/main/java/de/vimo/command/LsCommand.java @@ -0,0 +1,25 @@ +package de.vimo.command; + +import de.vimo.core.Argument; +import de.vimo.core.Command; +import de.vimo.core.Flag; + +import java.util.List; + +public class LsCommand implements Command { + + @Override + public int exec(List flags, List args) { + return 0; + } + + @Override + public String getName() { + return null; + } + + @Override + public List getFlags() { + return null; + } +} \ No newline at end of file diff --git a/src/main/java/de/vimo/command/MkdirCommand.java b/src/main/java/de/vimo/command/MkdirCommand.java new file mode 100644 index 0000000..606a6a3 --- /dev/null +++ b/src/main/java/de/vimo/command/MkdirCommand.java @@ -0,0 +1,25 @@ +package de.vimo.command; + +import de.vimo.core.Argument; +import de.vimo.core.Command; +import de.vimo.core.Flag; + +import java.util.List; + +public class MkdirCommand implements Command { + + @Override + public int exec(List flags, List args) { + return 0; + } + + @Override + public String getName() { + return null; + } + + @Override + public List getFlags() { + return null; + } +} diff --git a/src/main/java/de/vimo/core/Argument.java b/src/main/java/de/vimo/core/Argument.java new file mode 100644 index 0000000..c7cf009 --- /dev/null +++ b/src/main/java/de/vimo/core/Argument.java @@ -0,0 +1,15 @@ +package de.vimo.core; + +public class Argument { + + private final String value; + + public Argument(String value) { + this.value = value; + } + + public String getValue() { + return value; + } +} + diff --git a/src/main/java/de/vimo/core/Command.java b/src/main/java/de/vimo/core/Command.java new file mode 100644 index 0000000..e29e252 --- /dev/null +++ b/src/main/java/de/vimo/core/Command.java @@ -0,0 +1,12 @@ +package de.vimo.core; + +import java.util.List; + +public interface Command { + + int exec(List flags, List args); + + String getName(); + + List getFlags(); +} diff --git a/src/main/java/de/vimo/core/Flag.java b/src/main/java/de/vimo/core/Flag.java new file mode 100644 index 0000000..7139abd --- /dev/null +++ b/src/main/java/de/vimo/core/Flag.java @@ -0,0 +1,28 @@ +package de.vimo.core; + +public class Flag { + + private final String shortName; + + private final String longName; + + private final String description; + + public Flag(String shortName, String longName, String description) { + this.shortName = shortName; + this.longName = longName; + this.description = description; + } + + public String getShortName() { + return shortName; + } + + public String getLongName() { + return longName; + } + + public String getDescription() { + return description; + } +} diff --git a/src/main/java/de/vimo/core/Line.java b/src/main/java/de/vimo/core/Line.java new file mode 100644 index 0000000..bc0eeab --- /dev/null +++ b/src/main/java/de/vimo/core/Line.java @@ -0,0 +1,73 @@ +package de.vimo.core; + +import java.util.List; + +public class Line { + + private final String command; + + private final List flags; + + private final List args; + + public Line(String command, List flags, List args) { + this.command = command; + this.flags = flags; + this.args = args; + } + + public String getCommand() { + return command; + } + + public List getFlags() { + return flags; + } + + public List getArgs() { + return args; + } + +// @Override +// public Line parse(String raw) { +// String regex = "[\\s]"; +// String[] myArray = raw.split(regex); +// +// for (int i = 1; i < myArray.length; i++) { +// if (myArray[i].contains("-")) { +// flags.add(myArray[i]); +// } else { +// args.add(myArray[i]); +// } +// } +// +// return new Line(myArray[0], flags, args); +// } + +// +// --- Please ignore this --- +// +// private final Command command; +// +// private final List flags; +// +// private final List args; +// +// public Line(Command command, List flags, List args) { +// this.command = command; +// this.flags = flags; +// this.args = args; +// } +// +// public Command getCommand() { +// return command; +// } +// +// public List getFlags() { +// return flags; +// } +// +// public List getArgs() { +// return args; +// } +} diff --git a/src/main/java/de/vimo/core/Parser.java b/src/main/java/de/vimo/core/Parser.java new file mode 100644 index 0000000..23c0f8e --- /dev/null +++ b/src/main/java/de/vimo/core/Parser.java @@ -0,0 +1,6 @@ +package de.vimo.core; + +public interface Parser { + + Line parse(String raw); +} diff --git a/src/test/java/de/vimo/AppTest.java b/src/test/java/de/vimo/AppTest.java deleted file mode 100644 index 8650642..0000000 --- a/src/test/java/de/vimo/AppTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package de.vimo; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -/** - * Unit test for simple App. - */ -public class AppTest - extends TestCase -{ - /** - * Create the test case - * - * @param testName name of the test case - */ - public AppTest( String testName ) - { - super( testName ); - } - - /** - * @return the suite of tests being tested - */ - public static Test suite() - { - return new TestSuite( AppTest.class ); - } - - /** - * Rigourous Test :-) - */ - public void testApp() - { - assertTrue( true ); - } -} diff --git a/src/test/java/de/vimo/core/ParserTest.java b/src/test/java/de/vimo/core/ParserTest.java new file mode 100644 index 0000000..d865a2b --- /dev/null +++ b/src/test/java/de/vimo/core/ParserTest.java @@ -0,0 +1,57 @@ +package de.vimo.core; + +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import static org.junit.jupiter.api.Assertions.*; + + +public class ParserTest +{ + @Test + public void testParser() { + Parser parser = new Parser() { + @Override + public Line parse(String raw) { + String regex = "[\\s]"; + List flagsS = new ArrayList<>(List.of()); + List flagAll = new ArrayList<>(List.of()); + String result = ""; + List argsS = new ArrayList<>(List.of()); + String[] myArray = raw.split(regex); + + for (int i = 1; i < myArray.length; i++) { + if (myArray[i].contains("-")) { + result = myArray[i].replace("-",""); + flagsS = List.of(result.split("")); + flagAll.addAll(flagsS); + } else { + argsS.add(myArray[i]); + } + } + return new Line(myArray[0], flagAll, argsS); + } + }; // <-- Your implementation goes here + + testInput(parser, "ls", "ls", List.of(), List.of()); + testInput(parser, "ls -la", "ls", List.of("l", "a"), List.of()); + testInput(parser, "ls ./hello/world", "ls", List.of(), List.of("./hello/world")); + testInput(parser, "ls -la ./what", "ls", List.of("l", "a"), List.of("./what")); + testInput(parser, "rm -r /bin /opt", "rm", List.of("r"), List.of("/bin", "/opt")); + testInput(parser, "cd .", "cd", List.of(), List.of(".")); + testInput(parser, "mkdir .", "mkdir", List.of(), List.of(".")); + testInput(parser, "super -abc -de -f super nice danke paul", "super", List.of("a", "b", "c", "d", "e", "f"), List.of("super", "nice", "danke", "paul")); + } + + private void testInput(Parser parser, String input, String expectedCommand, List expectedFlags, List expectedArgs) { + Line line = parser.parse(input); + + assertEquals(expectedCommand, line.getCommand(), "Wrong command"); + assertEquals(expectedFlags, line.getFlags(), "Wrong flags"); + assertEquals(expectedArgs, line.getArgs(), "Wrong args"); + } +} diff --git a/target/classes/de/vimo/InputTextTillCommand.class b/target/classes/de/vimo/InputTextTillCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..3458787acdb2f0e61213795d60ba0172bff01593 GIT binary patch literal 259 zcmZvXu?oUK5JYD+8WSySECdTnZA@ilC4wLb776w-Il_g@U5J<9w^{fBew4Ukz{X~0 z2i`2R&)59{V2zQB4q=vxppk_M4!W#uByKj6O6^Qh#5#515XO1j#DR)+7Mw1*NGxG~ zEtUMjrbSPsl}2x?tS*FRWU@H^a-prH&Nj<4!M_UIMhHVTzlg`~dxo*l)Kwz(QVGKJ hU$@oge4jw*@;iXTReR|3LU3ChwCa77NuOs2!#DXKL=*r3 literal 0 HcmV?d00001 diff --git a/target/classes/de/vimo/Jcmd.class b/target/classes/de/vimo/Jcmd.class index b9e0699bc06838165a0f3ad670546f7ee96e9753..fb795a345a179e4ec60ee7f92b694d75c0203f41 100644 GIT binary patch literal 1657 zcmah}+fo}x5IqAzBZ&or#N8J}5+@R1Z|uZLY+)x3F$qQpV#%sX@-!?{Vw}CmtCeFu z#b3a){eY|ND*N4kk>5yBPI_in1_vk}q~7Vv>F(1#^X~ntHvn#+nL{7?IZ_q|kY*Tp zB%TP{6@JU!*m@+Lh#|eCd==ec=r5I<92tgD?MQ7ufe5Z=2&L!-by4%&|dDHk9iw#~d@HmV<3# zJT7s?$^m#S?mICQ5%CC$8KiyK6Yl zAGZ>xlx*&Z;l%cJ4iUB}cj1H-3|XbO^kGMabh1e@k^}QE!JgAcA1a9x zDX~P~R_uV=xI?EbzQ+%7Fe{)RDbm$nga7sd*_Sl>7s%%)_A#}vk4w*RiNq)Ci}}y@ zQF?~-9)`%iNanqN|0dJbJxs61ny=zxuBPRcx6cW>Ko8Xtt{J&TX_oL4wCpz}u3*%Z zGpJt(dVgjxj9HvR2_slQ9@kCWByM7gBFCuwaf+YBFLYibxk>T?&YKqJsf}6kzl$G< zfZKGFm&vzJw}yLIAvs8KKhuw4l}%}T>y5S%Yb`!(^4ZId=tQ`_43n@b>wc<==j!9!1imr#R5nh078p7h`gl)Qll zJ?lY1r4Qgk_z2z=Q8&TMuroV5yZb3_3)9s4-M?@A)tqc)fm*B;lzB6P7>$2FDD8I1If} z6rXrI{Wv|4q9ThJ*mlb0z4Tpfnhi*F2nZR?6bWb3vSMA%k(M!#Y7>h8x`}yWDq3h~ zUaGI4$ALp}zLBGq?VuJC;sW{|}Uhh-s$*(sLRyI~|f21EG_ z>mzGNuX>~TUYnFy8N ztIuE&OB@vo%cwFGyV5yQUf{SvD4pjb9LkU(InX~0YmuijRrUE}ulD;$hNM%hTNBVG|(NiiG>RDF&17vaMhgy7GzA{bzJ*+gdPI=os`e zL6&xe6xkbebLh+Hn_NEu`xu9BlGR}#jay``F#xMrqgw_w*yPd4?~x!XVD&5bi%-a$ z&<KS&A#}5Nm<% z>)4=-D(Tq77EE0U+awv3SH*4IAssnXa2NNetsU}PFn%G&!8sPo6x}7Cf%|^}m9xs^ literal 0 HcmV?d00001 diff --git a/target/classes/de/vimo/command/CdCommand.class b/target/classes/de/vimo/command/CdCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..5376783637959140fe8c7abc567192f54f8cd619 GIT binary patch literal 941 zcma)4O>fgc5PfSWbsN$TLP#m)qZL9V2;mc_RFzPqN=Q}_3hIf=##zi({y^@!g8#$; zPDmX10sJV$TRTmHi7GBLJM(7VyxHAfzkmD$@B)V|IB-2Q+Gt`;VCP(3N3bnFNE!VK&2 z;FUo0eJmqV?$kl@$lM~mzlD7McqQg>t>tJ*6<0hV@$i^>2G`fU%%dVvsVQqW#yU!+ zDRSPxoB9H)2mCj?UDu10Ih6_7yZxE2@>$0w*J(tt>nyO!xp?QQVsV24PyR`+Rwd9H zXGI>W6K!8}YyKIY+eg76Jbp2O4gR+VJ--?44Msk_pl?3?4)Ki#2W?slgXNpF?WzD< z*k;7H!%bG%=68%-ddK}j>n?R}mYoL`I_tFD9o#C}9CUedaGQNS`U>mKv0diwl-WJz r?qZ+TPJBjhl{w;Ti7vEumb5x^t@m)BOxJhruIQ|0Kj5r~<(z{*)APti literal 0 HcmV?d00001 diff --git a/target/classes/de/vimo/command/HelpCommand.class b/target/classes/de/vimo/command/HelpCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..92efecd3a5f54fdabc14aa7b29fa24eafd96ed3d GIT binary patch literal 947 zcma)4T~8B16g{)svQUfEQj3Zxgcw_6+$Wz(NDK+lWP>p^Joz%+j?0k!Aj>S#|KtNc znfTxj@JAWX>=s%}Lwvb+?#DUz+?o0P=jSf~ud&mB1J^^Xi8_`9TBq_t`mszS|NZDx zg+^d$Pp8`K3%I@hv4>@W&9U+?bdvdDmLxJA`)^fzc2J!?Gz2=+hFtlRia_lk8!Lge zK&R@cNJc9EC`U0f?H~(fd@OTq<4Lk+PV~9JRxl;IF>OFn^+kmOyS<>4UKkzwfj&2b z`MCd1p#C|Q5lLI~Me@kpR=WR6`FeIG=h+-&Z$=lFJS6d8pL+VY_r1xZB2lR+dsl`! zN~I}s-oc0Y1r`tZZ+5$`7b$Zj6S8-D6J6!g4o$Aph+>!7V3l+6_EpF91_hqqNG?_- z&=_V#9;!oa-?KIIAzs;M!45orG=UZVx*9z{8|@uNKE0r?zxV<1od*X^T3ZI&S81D7 z1MXst5$SP{T^9U_kxTEm-)P+#8&zHT$a_T*7l56=UVGyY?0}9fgc5PfSWbsN$TLP#m)qZL9V2;mc_RFzPrN=Q}_3hIf=##zi({y@&Ug8#$; zPDmX10sJV$TRTmHi7GBLJM(7VyxHAfzkmD$@B)V|IB-2Q+Gt`;VCO3bnFLuYKHZA z@JgWhK9&(Fcj_Q{WNwk(-$Firyb|-c)^fC@iYuOycz8@bgX`;F=24NT)ReUwBORsE z6gh9;O?`pY1OA)cuIok0oXLdj-Tq8h`K%+8>olU+brx9VT)cBtvA98jC;uc@s}g99 zvLX-FskX1VHUA9H?W5oj9>18t2LD@wp5Ki21|y$d&^Mochxo>WgEp;&!SYSoc2$5a zY%}89;U=qW^E*Z^z2knNb(cCf%g%!eopoC74sMlf4!S%!xXr#EeTDVr*e-K-%IqF< rcd<`vCqARM${g{vL>F2+OIn?|)_b^5rt3R*S9DghA8^*ga?ZgYitWgb literal 0 HcmV?d00001 diff --git a/target/classes/de/vimo/command/MkdirCommand.class b/target/classes/de/vimo/command/MkdirCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..741d02bb03166e0ccab728e5f58c1abecca26c60 GIT binary patch literal 950 zcma)4%Wl&^6g^`nb(^NN4I$-G`Vc}S2;mj0RFzPrN=R-I3hIi@#2L&KKhV^!+J9mJ zDql(SFb6@A4JNN$n^Ya&gSJ-X9f$O2xL>&tPYp3#D`mszS|LyQp zg}K1Oo=$bXFW`22Cmt3BHb=@o*GcAwS(3(8+9vTAeNrqAWI3iFx$VN(F zHPER#E|Q@#@8vM2rxj$Oj8CM|)*d@+`6qoQuoXdvA-YA!8`P72C{`?2TcRn06DQy@`U!iPP z3Alq*T3jF2nPrPV&~m9A_ba74Rk>1D?o`onrNwUHZi(ig&6k6Ftm{x$vCegDgTDKv u_W^wm@rcrPd_irQIpSLxop5bUadob_ZsIYKZm-;!Q(5)iVz2G8&(2>44$MCQ literal 0 HcmV?d00001 diff --git a/target/classes/de/vimo/core/Argument.class b/target/classes/de/vimo/core/Argument.class new file mode 100644 index 0000000000000000000000000000000000000000..cff4d83b72fdad09c5f0e062020f9a4f45163bd0 GIT binary patch literal 464 zcmZvY%}T>S5Xb+UG))`R54E;uZ)pYhXMXeX_5JY)-~y8X4qP9t5FXkL!?kDx&qa~(`{i1u6+`<<6{@;saHDC` zMF(9UL5Kr{3@0ne8?`BUT58E}bXIR((+#ecj-rB#t#Qc|?vuHG!Aeh|ytQp!~1iO|Z}J7=qUR8I_(_}><&Oed37vTb7&P4`PO1dFoPshlfQ zr1#tXxoH`vG^j%>q8ZGnq&cK}=#lJ`H7DEr2eWsu+1VTX7aKDm*@sJ#mTHzocSzQF s8;wKanG;wlBib=WJ0_=>(VsVah5t;71A}W@XJ|3uHeiRLUD~Me4|xk%I{*Lx literal 0 HcmV?d00001 diff --git a/target/classes/de/vimo/core/Command.class b/target/classes/de/vimo/core/Command.class new file mode 100644 index 0000000000000000000000000000000000000000..a42dded998e2c4741aba92803b300eaf4206006e GIT binary patch literal 396 zcmZWl%Sr=55UfsOHZL`V{DB9POXlQhMGzq%EQ;(GOg6(XVP_U5v%zok;0O3oV(%s@ zj<>Gv>Z+nXKHuH}++doZLzr)sI2c=rqVh^SRMtwjP0%Auck&=bDV-M2o1H2Gp{HI| zLAY9E?X3=`6q(tFG{(zE!Z0`5$xwSmc!@u5vp>G;QtI?BmWfFBUe{K+z{EyB(JDMi z%j)yR@))2En+I>4P6-1hG{Sqr?3?i$nQ;AY85y2Z5k`4c`$DZv$!?QVNvo!VK7r8X gK7lTGc7{IVgi!|r#zTzIbUDW4XMfJqMa#JS0@vwk1poj5 literal 0 HcmV?d00001 diff --git a/target/classes/de/vimo/core/Flag.class b/target/classes/de/vimo/core/Flag.class new file mode 100644 index 0000000000000000000000000000000000000000..a0008db126d553f5949fe9f1892213447d16751f GIT binary patch literal 748 zcma)3%TB^T6g>mwQ7CUj#aG-xeRSo*VBBa}HMqdAFJ)4Ol-88OcWELqap4E}QN}x^ z2?ki0N#@Qyx#!$-?|lD!egU|_Sq=##Gf*_7kY*@Ptc7K`mgg8x!wI)ThV-5AM0n4T zY_$g}vQRU~X~;uksEoL=5L4f<{eT-?*K!!t+1L-lo;BqRRdcP^4+G&j9jQ>%P?Gel z>wAu@lwd_eRf72upV@(U35D-5+_ttQ{)4m!49bH)A`>N3c)T~C4telw4c*9=Z(Hub z3WUsKPzlFk#!xf2X6i6#4iEe5x$3RR z56)@&1bs)67C>vIS5@vOinJ1n3K;!QjqW;SE>$ZO>-qClpPDlF~OB%BiE_KAMiOK z5h1bQ1NbP!T)R<=ZNbL(oZ~q&bI-ZIe*gFh;0T9J)Szfk4b;&P*gkhJT_<#-h4W^1 z?t7^~<2ZQ4JocPW-h!^o6R00I`{8g`g-+c$ERaUFgByG_Jro+?kv z{tjV3TSK#-uhFt!tkM0-x`JJP`|JQ(M7E)mzfHy-y12uto%iD|?lB`%=0jwWbRykZ znFj@XjHR-ybm(pKZ-+X$-}`j;0Q>w(cMea*=b}&E0Z^Jz?HnfLyjcB f+Rf%xv3a+mId|}wgik6-xi{Gn;;gkwP>KVK`NK3Loy9hhZ&riw6c8B zrO&Qa-+b*$U+aU=+O_%v{7F7o_elawsF*c#<~!%Rp8Z|&*FS&00&odmbs&PM3PnQ< zaRI$*<{w%cZocArX8yL}`KGsE`axz~AReq+e&zy&N{2`llSrULMN&g2G=bCufIaV+w5Y6Tm6X+69R#yFcDpCSR8{+lAvh&lPXKa-$Kj=gnM^zlt z(2G8Su6+^76^OX^1=87Eshz<{x^Y~Fp)=lWh&$ujHY2fIrzis$6hIOua8ku74X1IY zE$VXMSx!wL=5N{-y$!c4HLlcT7IQ02>*2Em-WCvJ((qXg?_gLUQE{EXupD1tFl=RJ z-SEohw{_F0n8n<(RLN-=!Ki@hnVYszF$F$4R3qfO-BO6r3RFTlCUHD3a5fu`x|y8f z8z4%J3mV2T!NeKW>a=bD51PwT{G!IHy3F)aT%b1`_pX;^74Hf3wAE0_a?B*IpdeFL z6u1;tY{ef+qRf5q;6Asg;(b<8o8e{&3k+osE!x~7i*UxR66bCi$9#Qbja6@~**r;? z+=^i@8lENhtwTk20`qv7$;>#fkeV}tb+^g@j14m|Ju1XDWkVfOM(xIAAT%N@zO#hW zGakuc_8Y1N3XOVZ&HRoDx^Ejbzf8vmfng;{UL$*P&-CjyOF3qE4QX{_tI=!(E?g3O z=KIKp&e&{Vr{a!4vh3Eqih0A50C(>Xne*~?Jh|>v zY}aSwH4#*?BGCUIS(SrH!#z1^k^$-6Tx+wAV|p{T;rph~o{n%T2~0wyQgX_1@J0A` zVv64nNXf4}Nsf&E0Wq=z_4kI%HLh`L0zH`K+SioAhnV3`&JAge-AOt|u^&?0T*nQr zG%J23yMwI9=_7M5(Y^E>Jv->1-zN)7dY}*s?c<~8wlP#tmCK3Vgs#4Nf}6V9o0v$y zwT;Yg$hJ1=fo)_9F+C=Uq31X^uPb9OkdNT*Q>65GL+l0K<^Jb{c=~$#C9W*#YIH(Z z^!N_0K4VY{u5m4(i|a8&ITgBizX9~)B#v|Z=&a&9gZD zevQv?2P(?6c$)G}&4oS91!^|s7byQZrG}xrW+43QiKsZyc+x8Pkmkw;$5ribx{2~C XGW}m*iC+cFSjCs5k_=Ur0Du1i3;Cx& literal 0 HcmV?d00001 diff --git a/target/test-classes/de/vimo/core/ParserTest.class b/target/test-classes/de/vimo/core/ParserTest.class new file mode 100644 index 0000000000000000000000000000000000000000..d2f70ba1c293fe2940e3b1bcdacc12101619d05e GIT binary patch literal 2559 zcmb_eYgZdp6x}yGGK5gdg;G(hQ$J;UGs{Qf6^3H*>i3@vfA zCeem=fxWBdx@kD3TQJUMSFKzi&^~Rub}%E*GMrk9LlYRtTgJLw^o*S6TgExlFI)aa zs~ij+Ng$4d3e_nvIGou9HPdlcDhXsVA;Smm|%JHB|@KJ%u;ccfy3U5EH=Gl?1h9TC5!N-ji%W*to!}FcI zh9?BN8eHnEVRcqYV5rGiO(KsnMns#@H&)C*Lz4U)0mSZe(p&H@p%7M_3uZ zsNpE{^EFHew5nAN$CMR9PSDEb^>GbT1m{ThX@WU@Mj&2X%iF$Mn-ypaCmQAi4wWk< z%h%IpHm9famY!bLBadt6EIn_!YnEOzD-`w=_k~LuUSQa)h6N5e4KH!vSub<2G@RwI ztTZ{VG`S#fvxz46Qj!0MX`=Q;%A&H-u*4L?lr+3br^-t)y`q@DCUE7xG2OwU6R+cq zINnU+EtmqmO)d|)mDIgvO}6u>-H%k`&Cb}a#T%JJJ`O91WfTN@8iFc>K%!s;b6&A% zx_N=V%}c%g;%Tt?HeT{Qx1i@DWCCk&;wUEJ!V}OvzhJCZ*pc`w*@5L7X2~{Y%j`jc z?YU)vq!~_5U8|T5rzf^2u?EBL#bxDCsP!Z^ z6e>>Ctgk>fm~I3zIcI(6ygVi7R!W?y6tnD@X4aucX1tu~ESbKo<~3()uwrx5K%>rE zot9TBp&DD{;cX3zw1A%(`zu(TvOH3xwXxXx~JSJ z5%aOGm-v;i^7XoQZF)kr*tMc+Jq>nD2)@o9ledz!*3{u6h4 zC%qZ6?^v`8t{GH(N`3pj_5Y@a-3y@Y61=qFwIY+(4 zWgO&(F2+wa&;r&1?R>t?nZZ$TY#X@?@e7R@-r-X%16_ER&twF^d$`G&z%8!E)Mn8N z_1Oo0{sZyL4A7Ao8I?(ytYQy;@1l>>2k97;2ddEPuE#=ze7uT75oV;0kz;k|xI8SM zMo!mJGxFI+$8+*|c|gv~)AB``k!PwnN5`UkMP91nGJ|a8I70S7 z4>~Z+uYU@o7{N53=P}0Kljcnv$7dAiCmarS=#O%(>Ck~6@jgDF9v?D_((5CRG4+2$ zqz?X~)N%UKqhr6}Y78ga(*y0lA}d#_SRH6pc1f0%-KOk{yiQxuYY9ux&nf{&NpAvu zn1qgFBz8QcayklJqrxL)jf4OI literal 0 HcmV?d00001