From bc4cc334bde5469087f7909bcdca8d9cc0847627 Mon Sep 17 00:00:00 2001 From: Marvin Kaiser Date: Mon, 28 Oct 2019 16:13:37 +0100 Subject: [PATCH] Added implementation for a visitor --- .settings/org.eclipse.core.resources.prefs | 1 - pom.xml | 2 + .../de/hsrm/compiler/Klang/EvalVisitor.java | 227 ++++++++++++ .../java/de/hsrm/compiler/Klang/Klang.java | 3 +- .../java/de/hsrm/compiler/Klang/Value.java | 59 +++ .../de/hsrm/compiler/Klang/EvalVisitor.class | Bin 0 -> 15173 bytes .../de/hsrm/compiler/Klang/Klang.class | Bin 1641 -> 1602 bytes .../compiler/Klang/KlangBaseListener.class | Bin 10187 -> 0 bytes .../compiler/Klang/KlangBaseVisitor.class | Bin 0 -> 10586 bytes .../hsrm/compiler/Klang/KlangListener.class | Bin 5044 -> 0 bytes .../KlangParser$AdditiveExprContext.class | Bin 1919 -> 2134 bytes .../Klang/KlangParser$AndExprContext.class | Bin 1771 -> 1991 bytes .../Klang/KlangParser$AssignmentContext.class | Bin 1788 -> 2017 bytes .../Klang/KlangParser$AtomContext.class | Bin 934 -> 934 bytes .../Klang/KlangParser$AtomExprContext.class | Bin 1409 -> 1640 bytes .../Klang/KlangParser$BlockContext.class | Bin 1688 -> 1910 bytes .../KlangParser$BooleanAtomContext.class | Bin 1392 -> 1620 bytes .../KlangParser$Condition_blockContext.class | Bin 1717 -> 1941 bytes .../KlangParser$EqualityExprContext.class | Bin 1913 -> 2128 bytes .../Klang/KlangParser$ExprContext.class | Bin 934 -> 934 bytes .../Klang/KlangParser$IdAtomContext.class | Bin 1288 -> 1521 bytes .../Klang/KlangParser$If_statContext.class | Bin 2503 -> 2723 bytes .../Klang/KlangParser$LogContext.class | Bin 1675 -> 1911 bytes ...langParser$MultiplicationExprContext.class | Bin 2023 -> 2232 bytes .../Klang/KlangParser$NilAtomContext.class | Bin 1295 -> 1527 bytes .../Klang/KlangParser$NotExprContext.class | Bin 1512 -> 1744 bytes .../Klang/KlangParser$NumberAtomContext.class | Bin 1385 -> 1614 bytes .../Klang/KlangParser$OrExprContext.class | Bin 1764 -> 1985 bytes .../Klang/KlangParser$ParExprContext.class | Bin 1658 -> 1890 bytes .../Klang/KlangParser$ParseContext.class | Bin 1618 -> 1852 bytes .../Klang/KlangParser$PowExprContext.class | Bin 1772 -> 1992 bytes .../KlangParser$RelationalExprContext.class | Bin 2067 -> 2280 bytes .../Klang/KlangParser$StatContext.class | Bin 2309 -> 2544 bytes .../Klang/KlangParser$Stat_blockContext.class | Bin 1927 -> 2156 bytes .../Klang/KlangParser$StringAtomContext.class | Bin 1316 -> 1545 bytes .../KlangParser$UnaryMinusExprContext.class | Bin 1556 -> 1781 bytes .../Klang/KlangParser$While_statContext.class | Bin 1873 -> 2102 bytes .../de/hsrm/compiler/Klang/KlangParser.class | Bin 20676 -> 20676 bytes .../de/hsrm/compiler/Klang/KlangVisitor.class | Bin 0 -> 6703 bytes .../de/hsrm/compiler/Klang/Value.class | Bin 0 -> 1453 bytes .../compiler/Klang/KlangBaseListener.java | 340 ------------------ .../hsrm/compiler/Klang/KlangBaseVisitor.java | 190 ++++++++++ .../de/hsrm/compiler/Klang/KlangListener.java | 293 --------------- .../de/hsrm/compiler/Klang/KlangParser.java | 225 ++++-------- .../de/hsrm/compiler/Klang/KlangVisitor.java | 180 ++++++++++ target/klang-1.0-jar-with-dependencies.jar | Bin 413317 -> 420506 bytes target/klang-1.0.jar | Bin 44352 -> 51572 bytes .../compile/default-compile/inputFiles.lst | 10 +- 48 files changed, 740 insertions(+), 790 deletions(-) create mode 100644 src/main/java/de/hsrm/compiler/Klang/EvalVisitor.java create mode 100644 src/main/java/de/hsrm/compiler/Klang/Value.java create mode 100644 target/classes/de/hsrm/compiler/Klang/EvalVisitor.class delete mode 100644 target/classes/de/hsrm/compiler/Klang/KlangBaseListener.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangBaseVisitor.class delete mode 100644 target/classes/de/hsrm/compiler/Klang/KlangListener.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangVisitor.class create mode 100644 target/classes/de/hsrm/compiler/Klang/Value.class delete mode 100644 target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangBaseListener.java create mode 100644 target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangBaseVisitor.java delete mode 100644 target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangListener.java create mode 100644 target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangVisitor.java diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs index 4fd796d..e9441bb 100644 --- a/.settings/org.eclipse.core.resources.prefs +++ b/.settings/org.eclipse.core.resources.prefs @@ -1,4 +1,3 @@ eclipse.preferences.version=1 encoding//src/main/java=UTF-8 -encoding//target/generated-sources/antlr4=UTF-8 encoding/=UTF-8 diff --git a/pom.xml b/pom.xml index e549dfc..1dba529 100644 --- a/pom.xml +++ b/pom.xml @@ -9,6 +9,8 @@ http://maven.apache.org UTF-8 + true + false diff --git a/src/main/java/de/hsrm/compiler/Klang/EvalVisitor.java b/src/main/java/de/hsrm/compiler/Klang/EvalVisitor.java new file mode 100644 index 0000000..2083b30 --- /dev/null +++ b/src/main/java/de/hsrm/compiler/Klang/EvalVisitor.java @@ -0,0 +1,227 @@ +package de.hsrm.compiler.Klang; + +import org.antlr.v4.runtime.misc.NotNull; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class EvalVisitor extends KlangBaseVisitor { + + // used to compare floating point numbers + public static final double SMALL_VALUE = 0.00000000001; + + // store variables (there's only one global scope!) + private Map memory = new HashMap(); + + // assignment/id overrides + @Override + public Value visitAssignment(KlangParser.AssignmentContext ctx) { + String id = ctx.ID().getText(); + Value value = this.visit(ctx.expr()); + return memory.put(id, value); + } + + @Override + public Value visitIdAtom(KlangParser.IdAtomContext ctx) { + String id = ctx.getText(); + Value value = memory.get(id); + if(value == null) { + throw new RuntimeException("no such variable: " + id); + } + return value; + } + + // atom overrides + @Override + public Value visitStringAtom(KlangParser.StringAtomContext ctx) { + String str = ctx.getText(); + // strip quotes + str = str.substring(1, str.length() - 1).replace("\"\"", "\""); + return new Value(str); + } + + @Override + public Value visitNumberAtom(KlangParser.NumberAtomContext ctx) { + return new Value(Double.valueOf(ctx.getText())); + } + + @Override + public Value visitBooleanAtom(KlangParser.BooleanAtomContext ctx) { + return new Value(Boolean.valueOf(ctx.getText())); + } + + @Override + public Value visitNilAtom(KlangParser.NilAtomContext ctx) { + return new Value(null); + } + + // expr overrides + @Override + public Value visitParExpr(KlangParser.ParExprContext ctx) { + return this.visit(ctx.expr()); + } + + @Override + public Value visitPowExpr(KlangParser.PowExprContext ctx) { + Value left = this.visit(ctx.expr(0)); + Value right = this.visit(ctx.expr(1)); + return new Value(Math.pow(left.asDouble(), right.asDouble())); + } + + @Override + public Value visitUnaryMinusExpr(KlangParser.UnaryMinusExprContext ctx) { + Value value = this.visit(ctx.expr()); + return new Value(-value.asDouble()); + } + + @Override + public Value visitNotExpr(KlangParser.NotExprContext ctx) { + Value value = this.visit(ctx.expr()); + return new Value(!value.asBoolean()); + } + + @Override + public Value visitMultiplicationExpr(@NotNull KlangParser.MultiplicationExprContext ctx) { + + Value left = this.visit(ctx.expr(0)); + Value right = this.visit(ctx.expr(1)); + + switch (ctx.op.getType()) { + case KlangParser.MULT: + return new Value(left.asDouble() * right.asDouble()); + case KlangParser.DIV: + return new Value(left.asDouble() / right.asDouble()); + case KlangParser.MOD: + return new Value(left.asDouble() % right.asDouble()); + default: + throw new RuntimeException("unknown operator: " + KlangParser.tokenNames[ctx.op.getType()]); + } + } + + @Override + public Value visitAdditiveExpr(@NotNull KlangParser.AdditiveExprContext ctx) { + + Value left = this.visit(ctx.expr(0)); + Value right = this.visit(ctx.expr(1)); + + switch (ctx.op.getType()) { + case KlangParser.PLUS: + return left.isDouble() && right.isDouble() ? + new Value(left.asDouble() + right.asDouble()) : + new Value(left.asString() + right.asString()); + case KlangParser.MINUS: + return new Value(left.asDouble() - right.asDouble()); + default: + throw new RuntimeException("unknown operator: " + KlangParser.tokenNames[ctx.op.getType()]); + } + } + + @Override + public Value visitRelationalExpr(@NotNull KlangParser.RelationalExprContext ctx) { + + Value left = this.visit(ctx.expr(0)); + Value right = this.visit(ctx.expr(1)); + + switch (ctx.op.getType()) { + case KlangParser.LT: + return new Value(left.asDouble() < right.asDouble()); + case KlangParser.LTEQ: + return new Value(left.asDouble() <= right.asDouble()); + case KlangParser.GT: + return new Value(left.asDouble() > right.asDouble()); + case KlangParser.GTEQ: + return new Value(left.asDouble() >= right.asDouble()); + default: + throw new RuntimeException("unknown operator: " + KlangParser.tokenNames[ctx.op.getType()]); + } + } + + @Override + public Value visitEqualityExpr(@NotNull KlangParser.EqualityExprContext ctx) { + + Value left = this.visit(ctx.expr(0)); + Value right = this.visit(ctx.expr(1)); + + switch (ctx.op.getType()) { + case KlangParser.EQ: + return left.isDouble() && right.isDouble() ? + new Value(Math.abs(left.asDouble() - right.asDouble()) < SMALL_VALUE) : + new Value(left.equals(right)); + case KlangParser.NEQ: + return left.isDouble() && right.isDouble() ? + new Value(Math.abs(left.asDouble() - right.asDouble()) >= SMALL_VALUE) : + new Value(!left.equals(right)); + default: + throw new RuntimeException("unknown operator: " + KlangParser.tokenNames[ctx.op.getType()]); + } + } + + @Override + public Value visitAndExpr(KlangParser.AndExprContext ctx) { + Value left = this.visit(ctx.expr(0)); + Value right = this.visit(ctx.expr(1)); + return new Value(left.asBoolean() && right.asBoolean()); + } + + @Override + public Value visitOrExpr(KlangParser.OrExprContext ctx) { + Value left = this.visit(ctx.expr(0)); + Value right = this.visit(ctx.expr(1)); + return new Value(left.asBoolean() || right.asBoolean()); + } + + // log override + @Override + public Value visitLog(KlangParser.LogContext ctx) { + Value value = this.visit(ctx.expr()); + System.out.println(value); + return value; + } + + // if override + @Override + public Value visitIf_stat(KlangParser.If_statContext ctx) { + + List conditions = ctx.condition_block(); + + boolean evaluatedBlock = false; + + for(KlangParser.Condition_blockContext condition : conditions) { + + Value evaluated = this.visit(condition.expr()); + + if(evaluated.asBoolean()) { + evaluatedBlock = true; + // evaluate this block whose expr==true + this.visit(condition.stat_block()); + break; + } + } + + if(!evaluatedBlock && ctx.stat_block() != null) { + // evaluate the else-stat_block (if present == not null) + this.visit(ctx.stat_block()); + } + + return Value.VOID; + } + + // while override + @Override + public Value visitWhile_stat(KlangParser.While_statContext ctx) { + + Value value = this.visit(ctx.expr()); + + while(value.asBoolean()) { + + // evaluate the code block + this.visit(ctx.stat_block()); + + // evaluate the expression + value = this.visit(ctx.expr()); + } + + return Value.VOID; + } +} \ No newline at end of file diff --git a/src/main/java/de/hsrm/compiler/Klang/Klang.java b/src/main/java/de/hsrm/compiler/Klang/Klang.java index a25a865..69ffe2c 100644 --- a/src/main/java/de/hsrm/compiler/Klang/Klang.java +++ b/src/main/java/de/hsrm/compiler/Klang/Klang.java @@ -19,6 +19,7 @@ public class Klang { KlangParser parser = new KlangParser(tokens); ParseTree tree = parser.parse(); // begin parsing at init rule - System.out.println(tree.toStringTree(parser)); // print LISP-style tree + EvalVisitor visitor = new EvalVisitor(); + visitor.visit(tree); } } diff --git a/src/main/java/de/hsrm/compiler/Klang/Value.java b/src/main/java/de/hsrm/compiler/Klang/Value.java new file mode 100644 index 0000000..c0d6a39 --- /dev/null +++ b/src/main/java/de/hsrm/compiler/Klang/Value.java @@ -0,0 +1,59 @@ +package de.hsrm.compiler.Klang; + +public class Value { + + public static Value VOID = new Value(new Object()); + + final Object value; + + public Value(Object value) { + this.value = value; + } + + public Boolean asBoolean() { + return (Boolean)value; + } + + public Double asDouble() { + return (Double)value; + } + + public String asString() { + return String.valueOf(value); + } + + public boolean isDouble() { + return value instanceof Double; + } + + @Override + public int hashCode() { + + if(value == null) { + return 0; + } + + return this.value.hashCode(); + } + + @Override + public boolean equals(Object o) { + + if(value == o) { + return true; + } + + if(value == null || o == null || o.getClass() != value.getClass()) { + return false; + } + + Value that = (Value)o; + + return this.value.equals(that.value); + } + + @Override + public String toString() { + return String.valueOf(value); + } +} diff --git a/target/classes/de/hsrm/compiler/Klang/EvalVisitor.class b/target/classes/de/hsrm/compiler/Klang/EvalVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..ec4f25b841d611868f28e3bdf76a899d08383fdb GIT binary patch literal 15173 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 b4d_2ce-8bx@kgB<_|wu(^sl0Sje`FRoHNJN literal 0 HcmV?d00001 diff --git a/target/classes/de/hsrm/compiler/Klang/Klang.class b/target/classes/de/hsrm/compiler/Klang/Klang.class index c768ae7934220d19ee326ce20d84ce26ac59129d..897e2205e0537d2f638d219651cbfc1a8d5eecc6 100644 GIT binary patch delta 470 zcmYk3Pfrt36vcmU+Uav113>{xW%yS_tP}=BEKvRwwF=s(3xi=fHWO1qfV54+&M)A` zyoC!B6F&kQNg!dt(r@D07mDa6Vqt@KFpH&c)ThZ>;C9M|~ zrhHh951O_8y@qDl{!yDHIHWO}?=kK^!dRBy!ZBr4`AJ5ehNccZmnB|6`p@UB0 z-3-#h1bwo;+Z0H%M!zuFxU%C81Hw9(Cy-txnmj`ci`yV$j4&z}PmmGcF_PkPi@VH@ i%Lf!>-}j`H;=ULpMVb@Q1Bo3bc_F8fTv@uF<6Quvo=}Vc delta 518 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 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangBaseVisitor.class b/target/classes/de/hsrm/compiler/Klang/KlangBaseVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..59ff9ef5e3838c37153fdd227c561cf671d2ebe1 GIT binary patch literal 10586 zcmbta`G3?z6n{gZ3#HtbAYOn%i*z~4*-|KlLSboj7sQ} z1bv#I&k}S}P-(4U8g`wal6e*Ff`&I_J9R+7EF8OzzmebpfoMC6J8bMQoe)@X)eN}Ot z)V8(N)WK6(uj6!^X65t*ofcH?UN&S+TR&u@*<_l!)sWG0IURG{FfZ1>YirH%yQry1 z?bCX-q^qQ*W1pV3!CI2G4+&Z{XlH^(wHjTfX6G%e=CUEo2D1A_ughf9`xEpzRJxa* zXr4;Hjans3U%(AlQ^2Ug)ilbzk*&67C+G`7qn#^H(R$WO`ApP;7IJQw-;1E7gJ*W- zjC1AG=W@8+-MR@;UkaKq(DtNlW)Xx8)dH7s1crSHsu}7mT(RY@*rq+ZbMEc?O3>Is z!;`s@MG&-7Yh1$7Sma31iXrj4>L$DDprq5VjjXx5Lq2zBkj9ESJ+&jIgMUJ?6sK`v-r%CR8+F@!|-&VuS=cLGQ1x*R|d0LxU ztEeY>lXm!`L64@$*9AWat*R*4qB;oveI;sBW{{5GV`bD?Rv(|Pg+Kb z{1It7*ym~GrD>(HS~4q5tNn4)wAxxOfQ;%52l86Ru=}L^pAgml9#1?ksuiYc>8z+$ zdE-X4%2vvjFG2NYr&RniqPo!V#PXs#Xr|F`^73ckdwx^NzauYIC%VfRWgne<(`(aBdcD%dmtjlII zx@JnXzoE3}>+s}mVP*QTrCRTD&X%KaCa8AE^Y9%YnmVP}-*JGD*Pc$^0U}_emdH9l z1pROi5J4+{+_u`5VRlJzf4DE@{cTSmFK!1M6%5rPS#cZo#f{srr9TBV8yTtePv`AU zHawZU1RJzcYh)$ZB1ha5RAeUA_0_hm3YVJeQdz4jshM`hO7>PKt-NU)-FnitbUj($ zk+Ur=EsNi6=xLYrby*sZebxfM#5;d$HgBc%MwB~nOmVCBzIuI?QvffgQc9H5Mfyw7 zTxOwP(Bi?*UeN3~_l21!=x;&ExE~_V=k#DLpJ(B(O$(}Ga5z;YF9fR@2B8Wpz9lfs zf<;ZdQ!#8XFMru`P}2-m$55DIP=@MEf)+5$1`0sD)dEuSwCaHZIHK|_iPN|!p;7o->UNH$GF+F-AJAxA5seA- zj71BzFPcQdTz4tpF!YsH&ObxLPT|V$Z;I=0s{BR4pTjkorohX9=TeM0o~Pp9Fq($3 z%jj}kITMa&m>J11Glt;`j9rOE;xNpPWSAAhFdJiYXfBJPGLm6l3_}IRDro_WVNoPQ zRSZKCV+--W891x7B9fsxhG8kjmeEQU!#V~BeSTo(gV%QbQusw#M6=Q9*lf}>x$#7!~!%Y~wnQmn< z7?BLO#W3u~*zJ^NG4w<-bjC2~7~4Yzi{W4-!@d}X{TRzomc?*SBtuUO!vTz0lxHy< zj%4VKVK|7fLv$yL;YcLIT`>%IW9%NfpT%%AlHq|Eh6geB5Iw?TI2Ot9Xbi(+7<-(a zWHB6%WOyou;c1LLLq}N*Cn6c1k70NLV=vMxEQXVj498*^Ud7mJ^d^hpOeDiwF$~8s z_BOr8VmKek@O})#2RL)dlhXM2b>SQ z9=Hg&7`Pm`0=ODj2W$YY2Q~pW16zRGfIEQgz+J#wfEus^*ah4R>;{^^9MA^#0q+3b i3%n0_82B*o3E&anv%u$oF9BZ$z7Bi?_zv)08ucF!`*E58 literal 0 HcmV?d00001 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangListener.class b/target/classes/de/hsrm/compiler/Klang/KlangListener.class deleted file mode 100644 index 637f9fd14c47cd334e4503a94e1e653199d148ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5044 zcmb7IX{)x7go*VIhc!}Wju`WpZS;ZFzNcHkWc-eu6@g{c?M zyK&+<@IHe!x}1nGx}GAP3PUfR2;3y`5(Y#2r^{YpIf<)xt z%im(`zy$`)-nySsG&39zqS9ptK0pV$REBmAd5w0UD0kyqT1eg0fe#t9@+)=!L8~3) zBy{^Gz5yO&&_Q=ECW&7Ot9b3eM+|mquAD}#oa%(+*UtU)5>|;^r!Flfw5^XBv`eD= zMy&iy6`8eiGZ|;Fi=6PTWk2`G-?W&g;G*Q*3qlyEc<2!;E%4fi;x>`X7 z4zDQ2vd)=}(#iGJ*nuywb0kp?cAaCY$b~vb#u;?e9?pkuyfNd4wL}HOd{O1iQqaL17{hu({L0J{k zs48;#8XGNRDubg|8Ele~ZyWc`7VwitZga8l`UdUAwQ?G^axz5Z)53j37+(spr!xOg zta-xgTWo`3E}|UAtQ;Fi$+wgCm%DG)*YnX;Vf-ETwIs^ZuCGlM*->B1c-Gfvy?}bj z4TRzM*wX2q`KPq#jM)Juq=#! z#A-{TJngD&s&utwJafWfK{)-ypQ|8SbTU=iNyf7;{cNqe|BhD>u8U)(Lf0^-|U~vwk2ff9I#1Aj;3KKTQ>xiBnG8 z4bSFNdCW251B+D}ps$K?JMcgp68ZUyb{iq2cx)B zaKki+3u{A#xE7{<)hnd2=M}JP6Ym^eWjAo(4+e!BS&_t?#_bgO>6$^mg$Ey?RH26~ z1bVhrvLhBUb9!YkYN0`c{3xsZY|_+&;g)22vQx4{7Mbc9j)6@z%!!P_F$)iKTvF+s zu#nczHA+5UA?I%<|E4R^VGEHlf-o4dkTjSf?8<2l0(RvzPieI^n>_OetPFD}4eeCz}GA-*^W5{@-dl0|qzY&&~KB zl!0vwwm}mBVza~+*g?EqVh3~)@0Pd=_7J~SVlUi5{7#8?!9B$HNxT>CC;ouM{cw=@ zLlO_cVd6(54!|(+5s63PIPo!wC*Wb?k4P-Sqr@jAo`xynPe?oiv&82l&cg!na}v+P zQ^cQ^_zXNx`~``NutdBhu?!XB%MyJEh*u?saD{j*F@ZJWS0%2)%fw%i_$s_X{7sJd zWZt6R*T6x%4!v*-ya(Iy>9iuYA$B6}MBI(ogLoU_?TC93??&uHybtjJ;)96&hy}z! z#396Eh@*%n5lEU5Aa z=(eIkLVyGvhzbe>Ee&1%1|1zCbB-xc*wyZQJM+!Vx4VCa_tVwy2cN$Hn8h^}7m`S! z5^hr}rb9cE1YtHr7gbzJA&$8e=CPon`k`7B$(Uu^jvo+Kq%Y3qH{C~W(CM0m=8n~~ zDxS4_uX1Z^$FT#Gp!SZUgtB}na=E``!f3N&Ti&MCb*(MWX+8CwRtN|)A#r{{td&|V zv(ANvHUi7Ozi#;h)_SeAc)VdfRHXl#Ti^=vm)M9e!qia1lDrd{OxLlj;S5$ZG%!KP z$~ujY4H7k6#;S@d8rE=?Fvqd1Jcy3SpOJl|7hb5*Zo7fobJm{tT|zT2r$vq#hH+dH zp(t-h4f%r<`Aj4-gC2aNex=oI*K2p3UBUuuAD_DW*mG`n+Rp!;6BGO=#2-gIH4HI| zNmD7)3%RY_pqKKaa-Cku-^wz*mP@e)y^(vd?4CfHnGYa%0-4e`#Ghlh^cC^qCnN;k zm)IuRax{t)yeC7Zcne*;gU;vCqfCr23P%R#Fv%M7jJ3X^&{JSkWKRU7V~l}7iP!0J VAD)N7R%b_wyPQOV*-@NA;t-0?k@Elm delta 538 zcma)2OD{t~7(L&V-m7k#KGKH7f++ez>rtwdN=OI`D)yy!(GZckq$_@c$gr^SAG%~A z>^$NTlKL6`0lx8yL?Y%(&YYP!bIvzYb-%h&S1%{00D3X5A?83mIu&$j=vH&w0YXBt z9u2+q(9x%$UqiBziU?Poxn`NA`OQ_65D)ET1M*(D8fS_dmbqq@(&0sdzWTW$bbbng z-vWX&XXTeyX7lR{`6cC|o8_XV4CTHprw?GzKng?h+1BAsW7t45Mhs-oLI}zXHTl1+ z42)vTKo(4zo=$-g>;RKk;%=^uI@AsSc=Jf}^4i~@eefS7q9=8p+CM--x z$Bco?ku8{DxDugR19KLVn742h*9=^LTl~wc0pa_y+heF^RYRMYy(hwL>4j2mw63S z4l~NG=aniXJ-FTz{*#929;7$Q-r~^`DsiYX3vmzG2hRez)@jP)#BiPl$7s5Mu6}DS=igOYU*-IV zdZ@2({!_iytDOH*eLb_wF+_P!!D#{G?iVCqV#xiBWd1!;9B*8*CRvJV7^c&VGWj1k zypI!fAKPbQ1fz5#4P-D$?@tl7<2oYGMM9UzlK^v&Ccu%UeJ&TnJWi5z$YIed4pNk@ Hk#g!Efa09w delta 514 zcma)&$w~u35QhKmHZzmS#4Lzg;*w;dS&YUl8g~yWf?kYx%OUChG>=#v*; zL4qeexPTz|DjvOy)ovF-q~Y(X?!W4*?kC@iH~;*0a|>V+%Q})KJV+@?>ljgc#stHt zipF$gJuon?WJ1SeEC0&8Zl~IC>N_VDhaoHPTw!^^-9207hsAx2BY$oF=XVu zE2JFukAuNmXp|0)woA3$(!OeAIL&fHb(BR>@JwOaLJl(wQR!#VpoLlFE%af|!aVvJ zY&s4Hzx!EOz@mjEEM5(?nauw&-fH!5ty!xxqLo}F2fxhk#p(ir>2SAfT zOLNgBv)U#Xz4BDs;36y^wG}S)G;{PLX3=@naAusjrceEo@ A2><{9 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$AssignmentContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$AssignmentContext.class index b5c022d2d95c89c3d8b44781883dcae83951595b..3218d89758ab44236bc42ab935470095d8161258 100644 GIT binary patch delta 689 zcmZvZ&u-H|5XQf;6B{Q^(xxQ^hYK_mCvF>BD71B&6sUwiNs*}4yX%_b;wDl4Nj<@V z7eIUB#v=eH;DF%DTkrr}I3vV3F$Y8sJKyZ?H@}_T{gwHiv%mfR^clbnY^zvILBo=Y z4MWG?+R6AI0a=Z5=kFK`b+-#P92PLvQb3gUkF^DgHq~6)zJ@lojt2 z4a$k1iMuo{){+gH5yNCXc^(QC#D`?-`5bcW)R$AW$SF?{MaHS#S0B}uN6vVt7x6gMz;yB zibx|nWN+K+;$SI`7iJbCGA)})kJp{8-4|aa> zbxb3xBZn*@U8$!|Elo?0GGISCPY-# zMZ=kJ61#;ep~h7iUPjHHpfLPoHq`>3jFuX65r)ZnLrn(xIUQ~pT>RJgv1NbL^j--VcFo~(l+bTNW3t{ znCPXME2F-HUg`zWTOL7Qz^5>NOUs3kOfu)peCM3`X69w?x9Obx`F0H8CKh#6vlzg& zEDTH~tfr%$LmG`7Y)tF8u4Cql^N6w;>3M!9CakCrRIP0XPlLD}HR~JuvMZfXw)UI{ zJNv#DHwk*TS0zlVk5s9gi3x>`wkN}F83l4D^xdP5?9so2$}a?l zc>e%`2QX^?K>9s~?C(f7z9J*=*=E!kxvC-0b2d?mH?YK84D-6sbK(Ln@`^KX1w|09 rGB+7}J7dhonWsP&CYT6rOJJ&WO3SQFbX-LRIqr6V(PA_hFT?l?6WWHH delta 493 zcma)1O)o=H5Iy&{&->_YwM7$EU+qIbwbg`$RTp+_RP2ODo}^LL)RS~4e#2c^S&D>2 zmn?)Wf5eLT17a>}BN4gDoHH|b=FE8(CxPPQ`|TZo3Mx9177U~;n6MR_(lH%?h8Y#o zIx;%4-Qp$-nQqf_+p9+nm!XuF1#S;7*AG3n>9!X$>kLNYJ7XxQuKm+x2-ZAjXK%%6 ztvTCj-f%m0Ppy(qJjrtMg;&CP6a)q_D^Ns?!Ip145$){|D4{Gchq82hui?*As@}o= zQm55sSdd%(`2^h{)ZShllVryvn}A>DwGum*8(NiJ$TKZ<%n+h_4V)ej%{@RnMKE^{ zEqjALjxJSw=%;9@AN&##euXgQv9Ae4FhCj2Vgv~=j1u>OMTm|ePVo-`efPJ*H7Rue cr@%2zVjL3?gmEQHW&>o_AdC{4ghMbt0A^%Q?EnA( diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$BlockContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$BlockContext.class index 0f2da33b7c43e9c4dc59fb4a8f578559daa0cfda..2a0309c5b5e16c68b986d2a9cbe7b90abc8e5a2b 100644 GIT binary patch delta 623 zcmZuu!A=uV6g_un=gBY~NyTa^8*I_GQ>+vfq@@}R2{9CnPS`(&7b%Risbixnac5#8 zCeMZX6}prVqFeX=f}h~hc&D8%2rk||ckVmq+&k}nO#N}HKmQ&c1DL}d0au`GVH7h_ zxMsmZMd11vOw5jU%e?kGR35kzlrODOBtl!*lSp@5KCYx^?TklmKt43zh>qr4~~REOmGm|S-~uhwA0 z)ZXrzQ`{6v+-j57Upd%;I@q{E)jBii6$pvu8l?11nM@H z(9jP@emlMBCzgY@ze`vt=sM-~cEUM-x-X%mGe#~OJMp-E>Ame%u+>$2goS9ZnXs!= z<OIaf!v=9QFphJK z#M;aJmE!yZ zO-e01T6+usfVGvSI2(^f5P9%1Gw(ZQ-pn&2^Z0&q3m}VG1u+G24IU(1NNUiKQZUv7 z8RIUb6-+3|bTUuO@YqeqZmsMzY=$)V3z1Nvw(ZzWyEPYEV^AAk9Yc!mvml?BOzVfi zV3eFnwO*`ju2$Av3)ODd9M_HK#kMbtoQ_FM>FCD*gT?p6!N9j#$29UfW{~Hv;)}Pt z$3kPHT4%^b3q%cbRWd`ggvT}Qeqo3X(&$V;=2udZ9q?yqnH_RVUXqUJv}3*{7a8Yw za%h*fBVGvtJs^;HfP4-kaSu6u4MjkQrXoy2t;;xpAE)qAAN*9nhhFMPi!dxOM5q?Q f{8Wx$nDCDPb@6w?1tnbmFG0X4g$aoAveNef#)nhL diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$BooleanAtomContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$BooleanAtomContext.class index be8756eed55f22fe7398e432e97fec48338cd758..7ac0694ab5c2fc739f334232c69cf99eed04f5f7 100644 GIT binary patch delta 615 zcmZvZT~E_c9LAq>x>3577aN#?p(q>Jt&=Km8n-O?l6c{O1RA(L>l!GOb(v*}SAGU_ zuDCJr69896E)3p!qa^q>jGw^x?=~-tq)DIWoc{h#pOf<|b*0;1f1iH_u!u)0@+k~r zHU$lHvAd_jOe2Xx8bw$tN-FN3**h#fAY9jLMGUK^ykvQE+kfpxVY^(Y?Te1E1JT^I zH|qPI8f~ya)Q4corkSs3=ecXM1~y<&kq`H zugUN@ZkIJTj{ jZF1A(6)*#L$Z+b%F+J0@Iou#MXk(DLQL3$xjzjwcp}mTy delta 479 zcma)1%SyvQ6g@Ldnl_!-rnJRJeblDfr>RI0R773qMi*Mqb(C2YYb!N^yMkX}n3bQ= zr7pDM&b5Ew5BLS*#211fGH^I&?mhS1`@~*!`|ED z`7o^^uc6Sh_lXhaEthw8&YGN{DlSQGXtQzZ@)qwb7WN22%}+&85gxIu?<#>&cb&td zE$3v{Iq>Zve%^5XN#cQS#EK{}Bv59kAVpw#{dDrn%rFC+p$eOz=JjjhBG65|FS6Ed zH@VYVb=$`T3wiHue!^cP>W}_WLq^^dmbU_`cvi|(i3n3&rV10=>Izj1A=GS_fXRkB zsC+=YbPx3kMyU_Ac#R-MPyPmANYwofB?eP5F(7s7!+|K`Qb{jHkOsl1jnkiV3k49DD;IMNt0$ diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$Condition_blockContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$Condition_blockContext.class index 0a7c4bd3b2e2d480a60cf7c452aff9a5ad3a2cb9..9e8d31b4461d2ed5203a08db4737ac7dda161bc7 100644 GIT binary patch delta 665 zcmZuu%Wl&^6g}fO9_pko3sNX7`l2LpNDvX&Yg44y>sW&=)rjH$Dc1p09J5=!{n&w7{L<9 zWgR-I9JL%YT*+Y>D;%pFS3lH#vYaMt+v!CNH;ZyYEy#*8R@`HLP=NVVW}cnv$M3rx_+2-01OGwC3+z3H&0;Gdoh_U=ma?2w z&&1O^pO&D9B~A}ruNyi(!`h(jr6_cq>b-r>xf^tylV*%r`Z%3_63EJrYK^^+ztmey z%EfFm`wAL+E!}MU`5R0UBM(Nq0t2TB8D>bWV4UJdgbLxb`5oF@jG5n{l|O?kcyAJ( zBBWat6SV6wlO4if?*^`gM47sh2j(zO?hC|CDo)Q*>LR5UDU|^;aESs1MOvjnRF((Y F%wNj4m+$}p delta 502 zcma)%ze@sP7{|Zwo!+aLW?B?MgXLBJ$h(-n2wU6Q`fH@;%o>WI<@x>net1p-_kR7g`}7PTjTMe4M@)qmagKxv6>}WP0VtSv zLW)D@SZM3-Y|v|1w$a#X)(i$cDvFXezG)uVhGjHXV>=9Y zN|hlix~{bd!G|5gA8Sm~TPpntDB{hnvoj$n>+D?Ql&t##3cD0XO8)Q)LAvmPQIrtE z2xW#asTl%P7icO`4kccooWh^zK#4zsOK8(n#t=o-xnS1_vYVdU=%=FZMp{fELVj9L f!Gcsy_W`?q5*^r_3B9zQ%&?Ac+!)NiRoLqJ(xO^nfJ|m-+S}Tyo2z^Na4fZx9=yDM?EN8!|_{nYMvdc|~Y zTMlH_k?jZB^{s8I*)Iy{gQKXxtjE7}%om8)I!)Nd#p0 z%t=uK8P%r5Ij=ImWmI7Gq3yJKR$CzNsn+K1?>N@oPRsh=mtvZGBe;Qrr-5-sewEWq zqED)&-68s{UTSMZ`|7v0O!P(N{1u|FYUocqCq$V37{n8pGT$Tc0%3Cxfy^76BD^x$ z2HA3S3=_NuT_$})l)fX%=lD@3PBU`H6q1->At}bjNS5nKGs>{X2NA_21A@s*pB=%= IO6q410S~5_Gynhq delta 561 zcma)2O)o=16g@Ljo%dc}t9@D_u^_5Neb-mjM@d8^x>2!|l)Ocw5$Z{>VQ+!VO8g2- z7Q({D%F5Cou(A}1xZ^7liI|(5Id|@zbMDMt_&JoheZ9B@kj9imhlKz-HFQaI>%GSU zL$79i66pX8^lKQ97(B})c+hm$Jhw8xRdyMA6!SNzhbpsvuC(d7Yi=dmw#ZF|99ChHkkG@Yhy|Gm+m%N?n?ez*nRz0zVI<1Pf(tKfU z__K~CdM=|sVH7rk#H7mmQ(XAeu78#bsc!r;T$m~($GEUmUgo$6s6*MjM{?9&0H*+) z)HRF~1XEWq+RtHfoYAR3gwWC*B7}&jhC_Mn#|_jF)5}2uNgAM)xB!a~Z9@y;9|qRa gZwH4QYX0ZI(N1O@Da76f;PekZL}8Mv4|Oo#0MWQy+W-In diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$ExprContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$ExprContext.class index 6b9d04a99b793ffe5af078828dd6800b1a48f97e..196380c97ce27ed75662c58fd1af5d6401268f5e 100644 GIT binary patch delta 39 vcmZ3+zKngtTqagO1~w-D$%~l$7y~AMWU^rlnyklc%NoMK$`m@efY}TH+}sK= delta 39 vcmZ3+zKngtTqf2`1~#Uw$%~l$7_%pTWU^t*ovg=f%bL%?%2Y79fY}TH=s*h7 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$IdAtomContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$IdAtomContext.class index d250fd9a0ef5aa7b91a1c9be0e2ab8ae7262a377..5faa7ada668bf6e63e42929312cf05d7657e9fa8 100644 GIT binary patch delta 587 zcmZuuO;6iE5Pf4OIB^_6K|n>*4{&IcIA98;st7_sky=#>Ac4hwajal4Nfb;ZPQZ-= zx4pFgf*$FiYA-$T4_c}H4ecL5j7fT^iblKhX6DV?8ST0LCuLvXeEJMv0k1TeIugj~ zNMbrd&on$wA&z_s1r#+{8cHASD(M5lb-i{-sK^tV&TspNe%R`i3$;Db6?Pz+4SQo} z&vU~vLF@Lagpxd^T<$NKFji~1BG?ukU+e^)bKLfv2oUBYVzp0Pwj8It!b0h-P`LYR zqTOdDxBNy^ghw6jSX*|M{(pQWnlAINPJz{ATzNY@gINP3uno*%lwitL%8vKB23}xZ z!-9dASR~AG&6JnQ#ZWieY#k8Z-_(kt{*Z~7d7{AJ$^jHMV8Z%}_y-JH zUl1=|VL-v9#a?62)fm!z>k(7^iH!OSgB*|bIx&O{N36m25QHpagMBaah|y!lDky^| R3=}-&qfOqyDfv70;1;1bgxdfB delta 489 zcma)1yG{Z@6g@M{y6mz%7R88wf~?9L5@Tfpu`njuh_Nyxs9O*b4X%lut%Z%5%C9h# zS{Q8o2EW0?A28klwJ|Yfk~`s%sbrv$*p6B*=F1jv5Ehla6#J4)YY>COrecw%Zw9DpE z!#h1;Sk1{gb8cTl3AKl*W{)XkD3C!x0U?K?#Knw!6Ll`)vZiIP7%XC%;BxU4sUt0BkpM%Iun){8m_nTD9|n5sw?mp7 aGXHbnm?JZedDx=`I7MZMP+WuVDHxyqoJt@7 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$If_statContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$If_statContext.class index 26b38373f3939dd9b521e1cb05b9ecd0c9904a50..f4ad2504e46afc450f7dbea010addd40b7795a41 100644 GIT binary patch delta 698 zcmZuuO>YuW6g_u3AT}MeC1FHt2)+jo3JQ1l^Llk zQB6k~>pC`2kt_Z@&2Zzw*`Z#?9aIHO9W~THy!Efrc+b1q#)JEZuEiTEOHvmmPmV&E zmBm2JTh-Lii*M1_mL9d7y{>&g$oA)rZ#{MFT6@p_-!3uD4;1DH1T?v+rpS=v;=FvJ zrfFIJ78m6&H9(F{Q5_NX(m@;*Od!fg zNFv35r#XMZs4&Ko-w=F>Q^~Ig&VGcZ;9Zh2#K>Jg&T!N`CT$@?+kMyQKsj_}4_rZ- i-80M`oEV$t(p4^9?L)`jvkwLumI(T8E+Rx! zHS|*@c+*a1b7wZQznIxj{kna;?IpZCAZcOos2{1mKXV5RXmTWJaTDN^M+o20l);IK$0Gi zry@vkd9PQ>8_`Hf`7RPP!*Q7$)7xlX9_a~6aU7>K*Q#Wl5uqiSHllgU$fp%~X3Ul!t>mjC zr^daApqcervK{2(V{6XfyZ794uitx<{gvDN_WRRk05!BUI6Bf;)=*7w zMTZVo!`%#2+{<7UH4XPQJRr#4-Zr6P+2RM?5bxx<58a4#)enMj7!w|g?^L!9qZd&; z7}ag>#2@=^&+m8Ly`z&bi0cGxJgpLz*`rkYD<;f)gTU_{`lHA{>V=(`!?2SO!fGOH z&x8%9)2TPvD0>k5!LuEII8&t$qHf=hPec@^FhEN9QL4RI#sA$rP`ZCsY<+l@={A zFNlSdowA`y6|t4tedS<|wFZczjLW#nNVv&960*#nGfIp_=L^)g$T{awD<7drICB^; zF>+Nwj-#F^r4{5Qcj7uf?VP!?2X4b;_Y!NT6N~GdDs$=%r({qbOH3qK{Mi#$L7p+s O=QPW%aAX+@NdEzcKaULn delta 532 zcma)&$w~u35QhJrNv7juCK^Ra(2H@KWK4{S8pRDG7|^(&;#HzF5)_v>f(OM1@D%#w zGkD5H(1XOQ&)_q76K`U*%PAnzP+e91SAA9e9=f)toqg&pIh52vrv;b^h9O->_9N29hvrZ#@0%eQ?XeQqF6rl z#G$B6#Y-T-tiU$RNv*l4(6AFZ57w z1fv!rh%)q2uB-hQXJHIE3**Rrq4ZewB`DwYJNs+Y;?W*M#wn^c)fX$GX5$J&59p@t zP5Kjn%S(TfP0Cw;o=wYF|16u8DPzVz2Sdxt6Jv$V%eoQ0qM1p(0gVpO>OR4^f$i2| zB<{gA)F`VXMAlRaZ2@7efM$w2zAMmzHj1bgG4z0zAzudzliNoF{Rs#xG!hnxu=GEI NhJJ!+7?9gM@(B$kU7r8| diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$MultiplicationExprContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$MultiplicationExprContext.class index 1a1947862690250670bb7ba36072dbadc26e82ff..1ce4bc3a0455a780918018e143490aa143a8fbe5 100644 GIT binary patch delta 625 zcmZuu&rcIU6#iz~-6`8ep_*bgT$B>pZlMS&v|Y1g4UhMoFOjsZ{2cDT5$vv>0a9D?XfEtv#-_>di`SaYMFc zF_N42i}%(x!k|@Q5beV(LqYBEOy)nCA-z}+WV9-qHMtgr{&pkuHDH*~#HlXPbA7*3 zrAECgEg3vql8r8F$@9y{53FiMsiUY&WnN}>YK##L06jE(foVAjTY%-NX71%{#B z{lS55os9)t6S!{U25vHVyZfFp;=hcxzKZ%2Kg*Z1YKLXsFeiQDrSs~2+)?j%kJIf) z@;k)~4{FhRGu&jDCZU7l%Ue-+x4s^p^mZgJN&f&^3^sZR2^AOx)>N;JJ8Vn+Hg2;g zYS^4%PgO{ETYWI+*fVut4!z{)BmN_Bnt)Z-Eo!bHWq!R9L zXU-3=H2Ut43qmLmafAXP$wpK?0lPack zOk;+jK(T^sC`XBU_?QjPUk)k<3?;eAXZqe=%#f1}mP)qWsP<;w%5Tr#t+{1}xv;Wi z=GUR`Zd7*N_kIo|)B=rK18{l5^9sL}H+)IqcQVnDI#Qrh5`mqYXA_A;uof6+}RSXJUtMV6l~tft?mc z8w+2;moTw2ey3<-V$3F!nVp@T?|Tbe>E-A5yL$jDsAx#)@FAtck42BAHCO?t$at`% zVOc|VRIW4A@AO<}uz%ih7%FneGOE?w(V7h1Qj_y=zJ6~;SlT^PyBd-vRT&pq$Hdr$R~%)Ot#zkUO-h=#y)8fn}V zFcVu!Lq$13mcWb-fmt1Ms0hpx)aIs5D4V62l>F!2J<>;{cxn*D+O9pOZf>4Nhm&S*w2JWCHaM!>xxRPqrtHw3;!&o=@TC*KKe$xpEYi9I) zF?VJY%F*g%{EJfgp&G*2MB2Kk~T|E zV@G>HyYWZuKJCS)TH&373`bu<;RQ@uKOo*?)apT$zu>%rPZrx0+e8DSe5Mno@(fw! vIWDlD8)RY(7ujPCT*eg;t}-^*4sNb7nqsVivbfGbL4mg@_Ti2An>-LIDnLPB&XG`3x=nMT>Du0#$9)>5w` z#95>3Kd%H=)-0Ty?i4Dy!m*TFjYiRwlf;{{rN*%!R@J0u5eX+ou;j!tMhSYW6YzZx zaWa3(i8NB;R()}QqU@fTn~h49kP)rEw4WIqa&E7UXcizmxE zoeOt=u*qQjnuWp#@Wr~&Zs3Y_phfRsRnX?HiUE#x`9ryYSGk0n>)|g2JQ(DPwHU_) t2$P(vATOs=2ypzvz;^W8;ffua|8r1yL1w}Xn@a$NAqigCBmjnB`vC39R6hU! diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$NumberAtomContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$NumberAtomContext.class index e771d1c98264f54ef3faa2b66b51d02a0060c80e..62b897bc3b1d8af2c0b4fca18d9109f88db2989f 100644 GIT binary patch delta 588 zcmZuu&rcIU6#izWW$Ci~NP)&+RkQ`#ZgCY*j3o_(1Bu~BfDQNQvVn!|kF47!p15*^ z%!&9<$i)N?M6Mq6&oJJ>1P+F`v>ps*l6l{o`QG=wdGkyEZdl*`d^ra&jady@9o-ny zk-&I_CN$)F5J$cT1(+I&8YWLIo9SKBaok48Ft3i-SZ>RE?}hcClwaPHEou3(wqvbT z_FN|{F=(y!EkjWqvuyS+nIW}Ycci~115Z|b*Z$CO?FcYTMa0Dpan7{uQkjH$H$&;{ zugFG+mDu!lYBFpFRIxH=zrEkQ9Jx#WtCJ@+mEubS&tVxD!V3d0kz&XkpQnd9R0C6( z)-Yq>6<({4{PSQddc$h7T5*GguwG?&ms9I3s}9BB@cq6F1@(hvMmln2{jPp-*Ymdn zx5n^>jHPoMP2XLuZ@d4S8=lhq6Z9`YOr41$7nka%D06Y8CSvnk{8nBpbHHH`p$bk5 z7%?vpKS7`Q74gCux;Q?W6g7&G40>tTBc`}UQrw`A@>IJL{YX+q8hD5_7#SwsD zMd-Fg|DYexpNQ^Q)*^^_aNa$abMLw5MSpWTwDyKpeS%{YQKJEnJu%uo;YD}G`<)^W~7LHD;V5m zt9o{RP`#{FYxW+8d0n^cm7>pgy-B2WOd_o#g8)NJ+)5$;Xj;cIvO03eGUSCJ=f#cG zofzJ9*lE_xcFDSEGOWeL5sQhYWQ2zod2ELt0U{Jpqv(JlUgb2GH-t+ma=9S(lua%d z#hnuEGUy~IgVO_isR5LGxKn*7$p?&a^r$PrP3W{0atVgK1rPDS=LE*#BSy0bA_RsR rswFUk%2`Yk{$Ze={&v_Vhn@d9aLkbzM;ONN08WV+yp&p_-w*8rhd)y- diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$OrExprContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$OrExprContext.class index ad94fe9e5a849c60cb1d35537c781c4c7fd425da..e72b3d39f5f72165cd6719fe311dd038c417f256 100644 GIT binary patch delta 651 zcmZuu?P?Q26g_vc+fB0DB!)JMUtm*plZ~dfek4tdtyK|8E!d^tFPUx^OfGJ!v;3Q$9 z6dh*_oQ-Tb3Bp8#&Ka0A5yzB?^SEH(;>YSAGKZw+`JFCd##U)9r|xOGdMOh2QtNT6 z+YW1m=Bn(;av<04mlu{-eXm<17`^Q*p|qPczC$A9nr%-8OEPT9<-m8Jb$mAhgvs56 z%79RJT({O>;o-%u^d8R3&Y*g}?oR*TKx0p<*}WnKmQr8EqIn4w3sp=L#?&t{mbFkr z-NG?kw$Q+FLY~7%M+R&QS1@B>*1}cHeR>{CP^K3>av{9_v=b6;*iE$_n>e`thZI#t z8{PT4BLhi(PG4f~K`U4Z{WU`6U*q$CJ)ZR+`TffUy~g5U)lb~X@yhm`Xj@#1GB1U@)ylWaMwApJY tKex@q0gSN68pvau?>@=c>h};uPBA*okr*h8Q3e7wZ==wMMfG#&&=zDgk{JL1 delta 519 zcma)%%Su8~6o&tGG|$E3wFm+$QY)`znU$GEgCN2PG8!}pEY3g@5j%pjdWO!Z$B+oh zz_MmNM-R{o6s@h*B#79s_PT%n>Uv&X*_V%Y2S6I@GNKxshzS#ykr01U17SvZvocan zD3}vwUPii=eIvJOR86D4*QgkTRK&WF!Xt(9nQ2swdMvq-bmTBb2y;5%|K6u#6?q+N z$X^HSDtUXlcI%tXTAh%I6u3DR=t*gOtrH>^%G`gRAc}E diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$ParExprContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$ParExprContext.class index 7de1dfc83080fcac799f2dcc9a61f664cf384b31..53cd00aa0d7103f37a43e677602cb8d11ac4376c 100644 GIT binary patch delta 629 zcmZuuK~EDw6#m|B%gAkXS)&`?c1MQ00cWh%?Zy8eZ$#Cl|J5n7nrdsy`VHJv>-yBCJA1vL)$N4t zUTC6<1rrx=%fuos60&NHCe9B9Ow>>pxNV|=B|=42Vii{SlIlkduE`)$A}lLO`DZ^< znG=7bq`p&je5lAh9p$zjdj3}6b_fex@kHVNuJ7LMZn-CYC@%A05$cZg-@o@$;Mp$Rzh2(}n8T95gar$e0twG2E%-6zMJa)4 zKLpaA$q38{WZQ)c3Yc!S?$&nBDlQ?LkgHl$uIOfDvwT{2t8Q&MxkvC-zA{4kyCeS7 zLFg*gox|fT=VaG8@b>uJM!D{-l(xEI5y66uJfeg+mxubkSJ^0_ zXk!sYLXK}@O+6qx>O=R3#%-sz-Z-fd^3tL4rXGy4G{1-Xy1^(v)XyIQ81hn2(~Er6 z*Qg^0j1_v5`^KuGLAH$8IU&GJB`AD=aOw`Cg|5^s#MBjh3ff#%(aqNKIy4m_O+%3L z{?7@7(90RmVuZ1TF^*MGh{G6$+5Q1AkA4#b6MX+8D2Ovm!8m%@4>HzbUKpk)fCZZT I2gG&r9hGZUf&c&j diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$ParseContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$ParseContext.class index 8e0c2507a607aff3fbcb7d1840aef0699c1fb04f..1e3a90ded1f7731cd5548baaa8ffb1801f19898e 100644 GIT binary patch delta 628 zcmZ`$O)mpc6g_WLN2gP?KBE%x-F7gvzFUn%>{^70jny+=m>O*}hQ!K`n3av+KqL|( z!q(Cs@K40;v@0c(_s+TR-gDl)^FGy=_Vma1^DBT1@-k8~GzB3{)wXE`3T9;JVFWQ7 z#vIZzGBW1x)3+=fbEUH+-vWhe7F(4g z@z*cKFujyQ?+3I#90Uf~wS*1|&LGhT3~28N-k@E3LooFOS;C!0*hWa%06J+`{K^ty zI7O7=-nx?FZi>i*E*Sw$PFy9dpNtV3C*A@U!vqltleC5sK20J*7^4G;>QrhnMA(JU E53Q1l&j0`b delta 490 zcma)%OD_Xa6vuzJqn*x}(TDdd@hJLGt*Vmv3YCb8rDVt~Xj9Tw!pg=sn3aw1&`2ai zgsr77;A>ckGo>~Xk(+z&Irp6Ne?0WPT7{R7`$u4fb)5yBq=`Yw4`~yVjLu>&A+mm0 z(#h%M+l6b@XSns2+t@y>xr%(!i>YyMGH8sJ51TEw?lv}3yNYn_yHaGk6N#S*gIoEmkR6tWi?rq%-5a_1NCK zb{pyF+Hx9A0W2oV-@VAF=rMf!PK#+VXo_tJ-CPF8)P*7f8TUZ?|1*|E&V?D`VGJY9+>bf*eIxD z)WmgVixwDeC^Tkb+(r@;Hg4jUiQBuSzs&C9K_J>4hUu(q=)+?RJlYa|B*b!atJ!Hq zfiV$_Z^ zDxU9`t0djM)ZxLi25%pwH!A+r$r7q@wZs2W$&r@)t}WSjFzKL#DTd4PN#dM5(7Id) zWmFuT$6W_iTwutk(7;i@4(?&vM9sl{%~s|MjFUqgxB27R;miEP54D;wG>ypE!S6rkhTPNkz EKhBMt(f|Me delta 510 zcma)&yGjE=6o&t^F}s`1#%zL!;ti9ixoW%{uUIH33Sz`AMU*XqA%+++VBtedW#cm_ zR$6!|1o0IFQBY8@vlq{3v=KxG{yAsnKj%9$*WOo8>gN6Q3_w4oG(-%z5tS0t5SM$x z0HIq(JsOg3=;)Qwr=kBS^+q0-T`1e7VNt+uVgxA@Ef_U1 zhE_s|kDLA9{Y;Ew!o(ydj@xPsvOdRK+T59`6ibAmu<%kyWSmwL59XGj>K)qoiNyZ^ zsKTMf=~g7wdAbw3>KxsRD|MP4gr)`e2(|1JusW`7f&neg&If`TrFDF};0t>FX5 CEm>s% diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$RelationalExprContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$RelationalExprContext.class index 64a5a7e281f3d7367533381ecaa754ca485c5f88..1099149da4690bf3e5c2f8ff8d47bd2c478a0458 100644 GIT binary patch delta 727 zcmaJ;T~8BH5IuL7?QYuz%T`*0CMq?dUs^3fDXoQypd@^yYIK`bHE6`}me1SI)_AW^S*zP~=T~V2n_v51ryTW@s=8&=anD2p^YXDenOH#6#02h} zSVV>)Be{Ad-Ir|Q0hV+un|O#v46~G*kRw`3o~nP+q41V)x$ks4++BLv^BC5%vdM19 z3tD>Y{E7^Dd8lMA_q&s_u*c$4$KCZrhXw>1rb7*_7p_?E?utQw9oOk18QnIcV`7+) zAvd)mJCeU6N%>lIU>e#oSrIaH7!=5r`?fbqgH zjCU9*e1?(#h^T`11@bZSlpVq-*;r7ioWN3k!J_Zf852oD!8495a=Nxu8td%knNbMLv2z47Ch{R0547*^5XMiClqXj0K^?=5Z+ zT5Z;*qP++jI&A1v(X|`zREk|@)-v-`D;bl}6j@J}@?~Lh#YB49GP7pBr*?**Wj;@Y z`cFaVTR`xnEMsnQ(#TC4vvwEFTuobcL*87}fZ8ClKc34IYxQb;sqQJK;IZu&!l zDtR=?&ya);k1!X{JL~9z*PY{Z#b?ejy5<@+K{vc0c+1;rKix^Tgdfxfy63PKTqAg; zG6h8f@W+mzZNL*dgcjX{OTn((I^Yv@+Y03oKII91IhTG^phTFx{D`1dW{C=SfP6w@ c2n+sU;2!<$@FEVc|8r1KCuR!j`9v#!12%tdZ~y=R diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$StatContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$StatContext.class index b42d807ffe22439de410325d4b558f95ae1f5d2f..dac393878badd1f6cddee254fda40c6801f7a7aa 100644 GIT binary patch delta 719 zcmZ`%J#W)c6g|&L{F>MaB9IhPma0W+^Uw95WmSM?G9!N+FE~$E=1V<}_T!JjVjZ;v3_$qN&2Rold|oHzpg((By65Z#kCl zIIHfK8?=36ytyfMMAZ|mjq0tnO~(!l2ENm+GL%DBrH{psZ?Nr*y zFieFE^B|*MvMi%P(&?2z*bhw6>9r?U+>Mq9wtb?Sb!(>IP9t(Y^dH4>(v?qRk7HMG zRUVB$*RJ8Zj!~Ru7?Hd2Q-i%hb=<&BjwKyUm<$tC8YKl@Zuq^$pp^vllo{OUM^5;P9AI!k2vj6}9 delta 543 zcma)2%PvDv6kX@GdhTiOt$4K3Fz~3PNGYvny&q*j2x4MXatA^XuEdCuxnz$de1TCX z5+s6{Fc6QBF!2k%K4TDGmV$&DpTAQqufN4GW?Y=@FM+*__b^wX*Pz&C(F17TDPgz3y( z7WgJGFocwWVWb4=xl=`l9v@xh9r?4?nA;YJM@Dlkv)pmyC^#Kd@C!};0Kwr$K39rn zWQ+_wNc)oQ^7$sC;+iJ(09EQyDpv;0>Ird6yLxxt9Xze0ZiVqCi*3b<@Ul=B|~ XzSM7p7gl)vpMr)a7Sj-?a~1mpn#X2* diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$Stat_blockContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$Stat_blockContext.class index e60e649797ccf7cff71b5801f148ec806dc7c2be..70b2cb952d1e959399e8d7a48691ea73ec5205b4 100644 GIT binary patch delta 659 zcmZuuL2nX47=5$bWn{sE1ZzStkw`7DZLuwA1*Ei?m>60UyXncq4BHKEyRrngL{A?5 z0dw+C7<<#kG**)u{VjU-*7z-~2h$#Q-piZ!-h8w3Ht{Q2{dsnD3}6KhILbP7+~!yc zaG7I8M+_B?Y788AVz`S{j(Z%n!|EB+Bf_%mfzQyAEoHW_XV{ZGnB1OWFoIlD@Xa zJ`=wxe~@}C|7cC^1QGUC)*@SPz9C78I2f%et{_dwkjE?(OcQ@Ws1Rn16YzJKHokzD zKH-vr4+deBkank#pj8i?>=Y^XecU=TNrtV|fm@iP_5yh)CuVXa6-g?Qq=Kbj5K%Bs M-@=$J${xS*7cnoEe*gdg delta 509 zcma)1%PvDv6kYq?>bbprP-%!TsH7fkm7?{mN(`8kf!9ESw9OqfEtTN}TqoSXvaM^d0mhmMFqw{`aj zM0GgPE70eJK)(esfw;iHQM^KKhp}!NrP-~5L5T7bHS&StX-efbO=I0CjRqG9TH%us zBK%AZR!88wgW#Ss)7kuVx;UTCST>rmoii;*E~-=NAcpuvjj6*J;Wu@N0=z~o^iQ`pGn3B#Q!Ube;j)j>R#@y{<><$_MRHlT5bJwg|}V4t8% z-m{O>6_;gw&CMcNa|1iw@`{+DJ3bUmI|Pr^%t4U{s1Kh*?86;Cg9sf%Q*b0-Rn$t< ztqv-~OZTXgyx~IuFMN_oE!xomLZ_@%kXM#Lv`PFUz%ltd;Xx)m{x3m6NQNm0b4v5S E1A4(@T>t<8 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$StringAtomContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$StringAtomContext.class index 15f7cff6bf8ed600dda1fe9fc6bdf72978f78982..cdbc7eca6e01959d25eba94854262d6d19897285 100644 GIT binary patch delta 636 zcmZ`$K~EDw6#iz0vbJ5YtpN;06kD|I7FM7VLkWR+FfkO2-Ebe4NnKppW?4u$app+o z6y70wWBC)853` z^^hj!FmGVNL=7()YNx%LzU0Tbc*vlALB zR(k!x^LGN(W_T61TzY@ttBuZ%x=RdGw6-Lz6A=1~sB&?ouf!@BzjSe+aLi#+W)GYU z7`J*ze8RAGfkfpi206|w@&~t?z#8Mx-s3S*SiM*i>MozH4#M4L&M?WY5Ki( z_i)ueIc8XrQC5(yNMvb|h#LN*B1cz+=vqL?XW?*R%YeSZML}-p`96b1N)wzO5U-4& zUn5+3gkHWyfMZBq4PmOL`XP#li4r2jCq5h)N1PaWF@gUeew-l3{Fr0 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$UnaryMinusExprContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$UnaryMinusExprContext.class index e52b303403844a05b1bd3b45c772886fa5526235..7e53d6879d161898eed345437e23f66b5e1aaf91 100644 GIT binary patch delta 620 zcmZuuK~EDw6#m|}Fw$-jtF}Zyg{`{nLaSI6X+s1xUMM88l6V}pD=e(rX4y7!@+X)& zUcC4l^r#1;SC1zC3$EUb@oifVMlzXs-<$WnZ{EE3M*o?qe*69DGk}|@3tUYhg=+$4 zY>O!*P>PWyFrS9NLK7lj8-tWy+bc*g|*`PzU<11FN596 z=FYzBL^Xow4x)tlm|XZvCgj#zj`X)>=*b=5wU64a9RtE*OnfjT)-Btvt*}sLE0WGZ zL$-&ku`O>mkWnY(j7HsF{{QinetFq{g^Dbvo@$RqZ(xy7Rx?!2>fD5?jy!JZxQ$7I z!PnFIVWN&ZSQ5CaV;Nk>632|*@p-kGc$e?SpL-I>@TlPhox_JO+96@XRMS-G9p`c< zcBG_!kTEqB=YRDz?(cbiGjs#iH+!p7=Hrg2NlnEpk0!yR1CmN67pSRTCD-Vg z`kq{+J#}uxc&Q=7(dW>30T-;V5N|PVeSs)_#3>E$Ew*E9V-1Y+nTna(0kWEp)9mL4 qnV7&?_E-ZmxCp`}#yZ=<&1FWjj1!RPtt%%nCM0_D$)A5>& z$e*PJcEk;TVvh_HTZBLd&@#7>FA>hPAg8Yo5YVJo5p5I|uR=IRL^we^<O~KF!O%xo1d9;tN1Wmx0>S0q3a6xS_CE!I79>v?kWjvO} z4a{PDUk+u}lij`Q{hfWs_Du#c99J1C>NU$wO!E^HL$=+srME2yuH5k)>sjBif`DQ9 zq@fiW>SfC^8w5^n`O*`Zo5~C7So@M01{Zz!*!7%82fm~&-7U07 zoMUZz_Uz@9)EhQ4SxGLW)73_(7NK?rPM2YIGI-&^q33jZyUtlS%+VXh>16>!CG`qt zKb5I(aP~_b=`%_Nncozy8|*I(4izyv&l#quKLJLkhG}F-8SyJjye*SPNvRsac{*c3CyyY_^$|5Yc7{}9;1U*yewlj5f6UEMsz9kCr8KZK RN)&LE>8p&QD{4tx{0C~-1E3Ix4}2P^!joC0HA;>Lt2H33`5qfiwsLD{Kzrn z{a{#jp}qM~6EF#=OuV&N|%4eO|A*g$1K zo8^}yFXP@?ho?>3s&}1+Lr_le7BR)lhWH zi^1RJs!T(WX_zP2?nMMa!PP(nN-z)-m0%X8Kwb1TP;r2<^fTBs0_i8P)EyLxzNZ)! zsJaXqg+V7gx5z*-bQ4<4VP5zxcnV^OHZcr1`ZK}zJ7G#BO#d%|A}PWsQaqx>KLOJg BSF!*A diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser.class b/target/classes/de/hsrm/compiler/Klang/KlangParser.class index cd696b5b67c1d048973442cd2d79846ba94a8f08..c180c0b32cac29e7ec4cf8a12602c97edbc3e730 100644 GIT binary patch delta 1813 zcmWNRdsJ3s7RI0bKKoFj))zVonjk7E0s;;Q$i;<GN`DfC??A1g);Nr zR~mU67{g4=;?tbfby=-(Dw|rf)Um}HyNqL*N~M-rneBhh@0@3!^?RRv{y6V9%lpmp z%IArBkHCjV(Ho1<4~sDnOE3g=7>1=t!78L>{V<) zJGNWC!}8t6y~cew8vJ|m$KpR_`qQRAWBSi910AOMFKTes`hQ`%udoc~uoC~rFfV4G~IL zQR!t*(P1`-vB3~yf-zA-gS}GHWO9G_BpTr|5RnptL2?h`WH6Ft2+}1MIWiPuB@X!# zk77y1WEp`HNkpk6pU?)@TAPgMp=k}EW$3S#bH^3*QE|$$TFOl zdR&&}xGF2~v#i5!@)T~#8i6$0!jFrumpmbTWt~LHQ!>Cf*cdD81DDcn<~3Wj7OS?` zsY&nS0@-m9#kZs+LGRvnMD~(lhI5;e0rT9;n>SIL6 zCy0_y?L+(<4RR8VatiC^G`7lruuaZjr+kLLNe5cxOSH-V&@Sh2RLs_TO)%jZ}=&$!T7>!O0QvYZs9 zm@?IrX{O9DrhQG2VvbydD2y z7o21$I@k?oc_%K=hwpe7t}+Za*h9dc62d=8clH(^qopqgNHhmZ32 ze-`7Ui1G3O6J#2P$s#671CykY$+DTlCBPJEVyc{Bx_rwFxyF(53o~69vs^f{T@-U% z3`e0;~xK+$|8(H95Sm=)OKKCXkxp!IYKHvj>cY+VP zvz+3-VTtQxDMR=WyKyQbS;nE9#&njmh%*?g0I~1)l;DN<^umRzt8tZ^Ihxf^`~-E!q{^v>SG6ceLmo*sngcX%8IHo_Irh z;h6Tu2@S^?jlg;Bi;EhGPL0NO9e|rUNT@M#hu$N7bg&H3SV_=$Nz!4Gp@}j|lVy6I z4wphrk%>A&N;FN%HA5Tcq%nx>%jGj6Lky;vPEI1uqhIlPUn$Eyzorxl?#1yT< q!&;5GYClA+3Dy^eF=C4wqg!2}23(0g<0|!8x7666+k>qWBjpcbwws^; delta 1813 zcmWNPd2r8n8pq%7&-?jhySr^CYj><;D^yJ#i6kl#BhkgCyUo#Hi)e_J2cWwk=7!P5Q^byRhgI<|Xh*NmMwMp=UGs2}__nLwan%M_z3Zw?NWx}UyoX$DMIUTKf9${@>_jQv_oe%N;Q?Q?8?&&-#dWB{ zUaanarQZ8h1`-zeL0{2~C)c7EHwx?1T<{3aRXj45pzwyWlrWM-DU4 zhdt1bJyFPR7|2W%GYg~G9c7+R^L(arj&m-1#cI=bGdjZ6BV9e()ni>f&eh{x{R+Bp z0x~%f&u|i6U>SySGDdP5#&J3(bB3#Cx@Hz$<7_Np1*$n0f8adq;(YAmt2obvxXeYk z!NvH7RrrB#;vQ@8KfXb*+RtCX_{Lnx=6sV0tl{I%C!Ov1R`vDt``IzCw#%#S@oIa$ z+J|V*eMsScr11#4@>8$(5wds)J^3;6dDyQ$fl{WexauOB@)8pG zl|RH4l=CVoc@2x%faSc7RlI?a=gK*jNYo6b5-g4d!5Bd85Eg_slb1w4hLv>QOhWy77A6lbnXoH0CB-(_wNDS@J zDYQpM=z#7a5xqhhejBKR#j{};^1>kGhr#F@iZM70!AQ@?cs|})=A05rs&{2g4Qdxl z>V7X0RT3iVh@U7KO_YLPDHSc{zn!|ElQNK@uGpqb)F}%G)g6cRYaCM#e6F52tzI~* zY}D&_xTHR=2<0vxAD6q8Is;hBBI|66R|- zf3H#w)(B40NS139EA=v$YBZ}gmNgp3Gn&9_n#kLl#Q&-+G}7eIL{mb7riM0}77{fh zBx`o)q4JQcXy~IkVU#Muc+CwJnirO+GSq5*sMCUQKnuesS`?0}DjH5{X{gt-@NX>- zH}!_%RIP`#LM^mX?X^l7TCIH5sIS(jP-`_r>oipBRi;{%YlAAa(I@YEvPm&*)*-#8 z)7qk|+Nzt{uG{*f?rNtVC}#26WzDqPT56A_tIo0%-D?H<(2BIrMrgmy(m|`xAzPr2 zZHYdyW%|@=b=0=$n0=tn?6{8GUv$F0&`CS1Q+7e0+a>+YzSG|$&_5z^IvsgTUqo8# z%Sb!@Gm@+`ku=puy6IdbTjwLix)vFxhDfO{MMmnY$oOWu9GR&rkp(`e^1)K)Drb$Z z$DV#>tD=^Jc*{jodkzU!fHLcY+13~H?0GD-epqJxvC0Nutreoy24ag9VVf0Ww++F5 zdkKeaC{EchoUsyIwo)|MDBQF$_}<3izKy5s6+UVc*vuxft(7s!rZUB*v#ZVE(>9Ak zvTZi=EXo3_V4=-ru~o9f=5w?y;5b{zskVsaR>ewN!o{|fuiJ92wzs&()^MGz;M=y6 z8*LSL*lOMo(?+%RgF8do)s1XThNILa!yPji9+vo{plMS`Vg%0Qls-& z<1uDd9$zw#0KLdrW%u>LgoNK9Bd1vpo=gEU2O6 zHRmPP15$xz+Kx(-N#+{K+<$#CFT3;;LEDQ)(_UabAQ@#wZL27g|J;T$#%d%g!IdU_h8ih(P0y>5RG=B0S0jdGG3Kjt7@3M? z@;R7Gex1yzz>P2)l1b*RvR(%L*$jPwQ4JTGvWN8+OA%(gmUU;5Tr7kGz@gglwVzm0OCc&k52?OGoBIc0QLKCVFaYkCtQCnI##Ery_DjPPi{h$d+L0*)|( z5^H!IPclLb%V=JACfA_6?ldm_c$|iH7mqW!2I9pe*CV_tPAv%pwKDoYJ;4j&yz0aZ z$sFQ#AA>(mC$v8a-$otUcfy~hbJ};o zcT=zSeef6PlJ*1egEXT3DEt#Nq5Wm}D|Ai!r{JHa=d_=Mf1akbpMke&PJ0J_o^slI z@ID3F=ix)TrTr58GQFhz%kZzz>)OA8x1!#}oAj1^BX3g%dYhW)PI{lV;D2kNwa^CW z4(M*^9_T&Ld!Y|PAA&v%eFS<4`WQ3|JpyfkwnE#Xr=Vw`XQ4gN^U#aXe&`T%7&-Ux2;{eHHo|Rs9FhYmxo{ literal 0 HcmV?d00001 diff --git a/target/classes/de/hsrm/compiler/Klang/Value.class b/target/classes/de/hsrm/compiler/Klang/Value.class new file mode 100644 index 0000000000000000000000000000000000000000..505dfae40e16479a7f2a9036ae03dd0d5041c324 GIT binary patch literal 1453 zcma)6TTc^F5dKbYdtoVUxrm4eUa;LoRsm52eGo!IEcOA@1m6y2rHe}!+bw^@-=I%C zXjCwg7<|FRA7z}gyU>dp<35}@GiT-V?s0A}%6g$hG~j426sBuuL?aaS1c ziDO2>tdMgO?yKZ9FFYSGB+8|=6^60mwq;fu^*yuV?(N%-RX3kGytZSOxzn^38IlL$ z!jLQO@&j)AZ>6nWtK!jPYRRtI-V=tw{NK-oGG$qIw<)-S;l*hAi?L`jBDBw)nnaBh#`4eM)$!VF8acT*J7AMJzFl z{%fKduHyzn8&EJzkvXTK7wL}2^A03`3repTCZi_ZHlh~0JC?WX@CLEf-!UQIxQGeb zLzOl-21TT$TShcaQUP_39G(57t&&HKq^ci->BbktK9Uy00G(;X=~R#)Bn3SfByA}0 zCMhr}&PS!u;1Y&I%o&o5-emnVVyB3IpnHIr^6hCKNeg^JB!uSj;s4@Jgb#aLAQ4K}=Wrxgj~izG$=S<(MbB;$wTa)gusinmca4v7Y( z;AR_OHY8-i_hn*Qv{NDSTjEj7WL^Lo?~zRS&}SGl&X6^ZAO)GEcOt8C3VB@^ru_6u zEBy#kgrd`q7&O6Y!Z&e?c-JxKmogq?xtQ`im6)L#bZF$4rYb~vNyOD*(dy)XQ@_yG tsT{(~xQ%?+piavszT64q%@e4bw3Wx``2The default implementation does nothing.

- */ - @Override public void enterParse(KlangParser.ParseContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitParse(KlangParser.ParseContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterBlock(KlangParser.BlockContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitBlock(KlangParser.BlockContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterStat(KlangParser.StatContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitStat(KlangParser.StatContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterAssignment(KlangParser.AssignmentContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitAssignment(KlangParser.AssignmentContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterIf_stat(KlangParser.If_statContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitIf_stat(KlangParser.If_statContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterCondition_block(KlangParser.Condition_blockContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitCondition_block(KlangParser.Condition_blockContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterStat_block(KlangParser.Stat_blockContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitStat_block(KlangParser.Stat_blockContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterWhile_stat(KlangParser.While_statContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitWhile_stat(KlangParser.While_statContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterLog(KlangParser.LogContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitLog(KlangParser.LogContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterNotExpr(KlangParser.NotExprContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitNotExpr(KlangParser.NotExprContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterUnaryMinusExpr(KlangParser.UnaryMinusExprContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitUnaryMinusExpr(KlangParser.UnaryMinusExprContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterMultiplicationExpr(KlangParser.MultiplicationExprContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitMultiplicationExpr(KlangParser.MultiplicationExprContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterAtomExpr(KlangParser.AtomExprContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitAtomExpr(KlangParser.AtomExprContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterOrExpr(KlangParser.OrExprContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitOrExpr(KlangParser.OrExprContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterAdditiveExpr(KlangParser.AdditiveExprContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitAdditiveExpr(KlangParser.AdditiveExprContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterPowExpr(KlangParser.PowExprContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitPowExpr(KlangParser.PowExprContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterRelationalExpr(KlangParser.RelationalExprContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitRelationalExpr(KlangParser.RelationalExprContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterEqualityExpr(KlangParser.EqualityExprContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitEqualityExpr(KlangParser.EqualityExprContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterAndExpr(KlangParser.AndExprContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitAndExpr(KlangParser.AndExprContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterParExpr(KlangParser.ParExprContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitParExpr(KlangParser.ParExprContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterNumberAtom(KlangParser.NumberAtomContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitNumberAtom(KlangParser.NumberAtomContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterBooleanAtom(KlangParser.BooleanAtomContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitBooleanAtom(KlangParser.BooleanAtomContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterIdAtom(KlangParser.IdAtomContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitIdAtom(KlangParser.IdAtomContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterStringAtom(KlangParser.StringAtomContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitStringAtom(KlangParser.StringAtomContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterNilAtom(KlangParser.NilAtomContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitNilAtom(KlangParser.NilAtomContext ctx) { } - - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void enterEveryRule(ParserRuleContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void exitEveryRule(ParserRuleContext ctx) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void visitTerminal(TerminalNode node) { } - /** - * {@inheritDoc} - * - *

The default implementation does nothing.

- */ - @Override public void visitErrorNode(ErrorNode node) { } -} \ No newline at end of file diff --git a/target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangBaseVisitor.java b/target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangBaseVisitor.java new file mode 100644 index 0000000..955accb --- /dev/null +++ b/target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangBaseVisitor.java @@ -0,0 +1,190 @@ +// Generated from de/hsrm/compiler/Klang/Klang.g4 by ANTLR 4.5 +package de.hsrm.compiler.Klang; +import org.antlr.v4.runtime.misc.NotNull; +import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor; + +/** + * This class provides an empty implementation of {@link KlangVisitor}, + * which can be extended to create a visitor which only needs to handle a subset + * of the available methods. + * + * @param The return type of the visit operation. Use {@link Void} for + * operations with no return type. + */ +public class KlangBaseVisitor extends AbstractParseTreeVisitor implements KlangVisitor { + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitParse(KlangParser.ParseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBlock(KlangParser.BlockContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitStat(KlangParser.StatContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAssignment(KlangParser.AssignmentContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIf_stat(KlangParser.If_statContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCondition_block(KlangParser.Condition_blockContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitStat_block(KlangParser.Stat_blockContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitWhile_stat(KlangParser.While_statContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLog(KlangParser.LogContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNotExpr(KlangParser.NotExprContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitUnaryMinusExpr(KlangParser.UnaryMinusExprContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMultiplicationExpr(KlangParser.MultiplicationExprContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAtomExpr(KlangParser.AtomExprContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitOrExpr(KlangParser.OrExprContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAdditiveExpr(KlangParser.AdditiveExprContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPowExpr(KlangParser.PowExprContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRelationalExpr(KlangParser.RelationalExprContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEqualityExpr(KlangParser.EqualityExprContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAndExpr(KlangParser.AndExprContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitParExpr(KlangParser.ParExprContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNumberAtom(KlangParser.NumberAtomContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBooleanAtom(KlangParser.BooleanAtomContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIdAtom(KlangParser.IdAtomContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitStringAtom(KlangParser.StringAtomContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNilAtom(KlangParser.NilAtomContext ctx) { return visitChildren(ctx); } +} \ No newline at end of file diff --git a/target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangListener.java b/target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangListener.java deleted file mode 100644 index 9eafcbe..0000000 --- a/target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangListener.java +++ /dev/null @@ -1,293 +0,0 @@ -// Generated from de/hsrm/compiler/Klang/Klang.g4 by ANTLR 4.5 -package de.hsrm.compiler.Klang; -import org.antlr.v4.runtime.misc.NotNull; -import org.antlr.v4.runtime.tree.ParseTreeListener; - -/** - * This interface defines a complete listener for a parse tree produced by - * {@link KlangParser}. - */ -public interface KlangListener extends ParseTreeListener { - /** - * Enter a parse tree produced by {@link KlangParser#parse}. - * @param ctx the parse tree - */ - void enterParse(KlangParser.ParseContext ctx); - /** - * Exit a parse tree produced by {@link KlangParser#parse}. - * @param ctx the parse tree - */ - void exitParse(KlangParser.ParseContext ctx); - /** - * Enter a parse tree produced by {@link KlangParser#block}. - * @param ctx the parse tree - */ - void enterBlock(KlangParser.BlockContext ctx); - /** - * Exit a parse tree produced by {@link KlangParser#block}. - * @param ctx the parse tree - */ - void exitBlock(KlangParser.BlockContext ctx); - /** - * Enter a parse tree produced by {@link KlangParser#stat}. - * @param ctx the parse tree - */ - void enterStat(KlangParser.StatContext ctx); - /** - * Exit a parse tree produced by {@link KlangParser#stat}. - * @param ctx the parse tree - */ - void exitStat(KlangParser.StatContext ctx); - /** - * Enter a parse tree produced by {@link KlangParser#assignment}. - * @param ctx the parse tree - */ - void enterAssignment(KlangParser.AssignmentContext ctx); - /** - * Exit a parse tree produced by {@link KlangParser#assignment}. - * @param ctx the parse tree - */ - void exitAssignment(KlangParser.AssignmentContext ctx); - /** - * Enter a parse tree produced by {@link KlangParser#if_stat}. - * @param ctx the parse tree - */ - void enterIf_stat(KlangParser.If_statContext ctx); - /** - * Exit a parse tree produced by {@link KlangParser#if_stat}. - * @param ctx the parse tree - */ - void exitIf_stat(KlangParser.If_statContext ctx); - /** - * Enter a parse tree produced by {@link KlangParser#condition_block}. - * @param ctx the parse tree - */ - void enterCondition_block(KlangParser.Condition_blockContext ctx); - /** - * Exit a parse tree produced by {@link KlangParser#condition_block}. - * @param ctx the parse tree - */ - void exitCondition_block(KlangParser.Condition_blockContext ctx); - /** - * Enter a parse tree produced by {@link KlangParser#stat_block}. - * @param ctx the parse tree - */ - void enterStat_block(KlangParser.Stat_blockContext ctx); - /** - * Exit a parse tree produced by {@link KlangParser#stat_block}. - * @param ctx the parse tree - */ - void exitStat_block(KlangParser.Stat_blockContext ctx); - /** - * Enter a parse tree produced by {@link KlangParser#while_stat}. - * @param ctx the parse tree - */ - void enterWhile_stat(KlangParser.While_statContext ctx); - /** - * Exit a parse tree produced by {@link KlangParser#while_stat}. - * @param ctx the parse tree - */ - void exitWhile_stat(KlangParser.While_statContext ctx); - /** - * Enter a parse tree produced by {@link KlangParser#log}. - * @param ctx the parse tree - */ - void enterLog(KlangParser.LogContext ctx); - /** - * Exit a parse tree produced by {@link KlangParser#log}. - * @param ctx the parse tree - */ - void exitLog(KlangParser.LogContext ctx); - /** - * Enter a parse tree produced by the {@code notExpr} - * labeled alternative in {@link KlangParser#expr}. - * @param ctx the parse tree - */ - void enterNotExpr(KlangParser.NotExprContext ctx); - /** - * Exit a parse tree produced by the {@code notExpr} - * labeled alternative in {@link KlangParser#expr}. - * @param ctx the parse tree - */ - void exitNotExpr(KlangParser.NotExprContext ctx); - /** - * Enter a parse tree produced by the {@code unaryMinusExpr} - * labeled alternative in {@link KlangParser#expr}. - * @param ctx the parse tree - */ - void enterUnaryMinusExpr(KlangParser.UnaryMinusExprContext ctx); - /** - * Exit a parse tree produced by the {@code unaryMinusExpr} - * labeled alternative in {@link KlangParser#expr}. - * @param ctx the parse tree - */ - void exitUnaryMinusExpr(KlangParser.UnaryMinusExprContext ctx); - /** - * Enter a parse tree produced by the {@code multiplicationExpr} - * labeled alternative in {@link KlangParser#expr}. - * @param ctx the parse tree - */ - void enterMultiplicationExpr(KlangParser.MultiplicationExprContext ctx); - /** - * Exit a parse tree produced by the {@code multiplicationExpr} - * labeled alternative in {@link KlangParser#expr}. - * @param ctx the parse tree - */ - void exitMultiplicationExpr(KlangParser.MultiplicationExprContext ctx); - /** - * Enter a parse tree produced by the {@code atomExpr} - * labeled alternative in {@link KlangParser#expr}. - * @param ctx the parse tree - */ - void enterAtomExpr(KlangParser.AtomExprContext ctx); - /** - * Exit a parse tree produced by the {@code atomExpr} - * labeled alternative in {@link KlangParser#expr}. - * @param ctx the parse tree - */ - void exitAtomExpr(KlangParser.AtomExprContext ctx); - /** - * Enter a parse tree produced by the {@code orExpr} - * labeled alternative in {@link KlangParser#expr}. - * @param ctx the parse tree - */ - void enterOrExpr(KlangParser.OrExprContext ctx); - /** - * Exit a parse tree produced by the {@code orExpr} - * labeled alternative in {@link KlangParser#expr}. - * @param ctx the parse tree - */ - void exitOrExpr(KlangParser.OrExprContext ctx); - /** - * Enter a parse tree produced by the {@code additiveExpr} - * labeled alternative in {@link KlangParser#expr}. - * @param ctx the parse tree - */ - void enterAdditiveExpr(KlangParser.AdditiveExprContext ctx); - /** - * Exit a parse tree produced by the {@code additiveExpr} - * labeled alternative in {@link KlangParser#expr}. - * @param ctx the parse tree - */ - void exitAdditiveExpr(KlangParser.AdditiveExprContext ctx); - /** - * Enter a parse tree produced by the {@code powExpr} - * labeled alternative in {@link KlangParser#expr}. - * @param ctx the parse tree - */ - void enterPowExpr(KlangParser.PowExprContext ctx); - /** - * Exit a parse tree produced by the {@code powExpr} - * labeled alternative in {@link KlangParser#expr}. - * @param ctx the parse tree - */ - void exitPowExpr(KlangParser.PowExprContext ctx); - /** - * Enter a parse tree produced by the {@code relationalExpr} - * labeled alternative in {@link KlangParser#expr}. - * @param ctx the parse tree - */ - void enterRelationalExpr(KlangParser.RelationalExprContext ctx); - /** - * Exit a parse tree produced by the {@code relationalExpr} - * labeled alternative in {@link KlangParser#expr}. - * @param ctx the parse tree - */ - void exitRelationalExpr(KlangParser.RelationalExprContext ctx); - /** - * Enter a parse tree produced by the {@code equalityExpr} - * labeled alternative in {@link KlangParser#expr}. - * @param ctx the parse tree - */ - void enterEqualityExpr(KlangParser.EqualityExprContext ctx); - /** - * Exit a parse tree produced by the {@code equalityExpr} - * labeled alternative in {@link KlangParser#expr}. - * @param ctx the parse tree - */ - void exitEqualityExpr(KlangParser.EqualityExprContext ctx); - /** - * Enter a parse tree produced by the {@code andExpr} - * labeled alternative in {@link KlangParser#expr}. - * @param ctx the parse tree - */ - void enterAndExpr(KlangParser.AndExprContext ctx); - /** - * Exit a parse tree produced by the {@code andExpr} - * labeled alternative in {@link KlangParser#expr}. - * @param ctx the parse tree - */ - void exitAndExpr(KlangParser.AndExprContext ctx); - /** - * Enter a parse tree produced by the {@code parExpr} - * labeled alternative in {@link KlangParser#atom}. - * @param ctx the parse tree - */ - void enterParExpr(KlangParser.ParExprContext ctx); - /** - * Exit a parse tree produced by the {@code parExpr} - * labeled alternative in {@link KlangParser#atom}. - * @param ctx the parse tree - */ - void exitParExpr(KlangParser.ParExprContext ctx); - /** - * Enter a parse tree produced by the {@code numberAtom} - * labeled alternative in {@link KlangParser#atom}. - * @param ctx the parse tree - */ - void enterNumberAtom(KlangParser.NumberAtomContext ctx); - /** - * Exit a parse tree produced by the {@code numberAtom} - * labeled alternative in {@link KlangParser#atom}. - * @param ctx the parse tree - */ - void exitNumberAtom(KlangParser.NumberAtomContext ctx); - /** - * Enter a parse tree produced by the {@code booleanAtom} - * labeled alternative in {@link KlangParser#atom}. - * @param ctx the parse tree - */ - void enterBooleanAtom(KlangParser.BooleanAtomContext ctx); - /** - * Exit a parse tree produced by the {@code booleanAtom} - * labeled alternative in {@link KlangParser#atom}. - * @param ctx the parse tree - */ - void exitBooleanAtom(KlangParser.BooleanAtomContext ctx); - /** - * Enter a parse tree produced by the {@code idAtom} - * labeled alternative in {@link KlangParser#atom}. - * @param ctx the parse tree - */ - void enterIdAtom(KlangParser.IdAtomContext ctx); - /** - * Exit a parse tree produced by the {@code idAtom} - * labeled alternative in {@link KlangParser#atom}. - * @param ctx the parse tree - */ - void exitIdAtom(KlangParser.IdAtomContext ctx); - /** - * Enter a parse tree produced by the {@code stringAtom} - * labeled alternative in {@link KlangParser#atom}. - * @param ctx the parse tree - */ - void enterStringAtom(KlangParser.StringAtomContext ctx); - /** - * Exit a parse tree produced by the {@code stringAtom} - * labeled alternative in {@link KlangParser#atom}. - * @param ctx the parse tree - */ - void exitStringAtom(KlangParser.StringAtomContext ctx); - /** - * Enter a parse tree produced by the {@code nilAtom} - * labeled alternative in {@link KlangParser#atom}. - * @param ctx the parse tree - */ - void enterNilAtom(KlangParser.NilAtomContext ctx); - /** - * Exit a parse tree produced by the {@code nilAtom} - * labeled alternative in {@link KlangParser#atom}. - * @param ctx the parse tree - */ - void exitNilAtom(KlangParser.NilAtomContext ctx); -} \ No newline at end of file diff --git a/target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangParser.java b/target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangParser.java index 59fa897..3ee43ca 100644 --- a/target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangParser.java +++ b/target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangParser.java @@ -102,12 +102,9 @@ public class KlangParser extends Parser { } @Override public int getRuleIndex() { return RULE_parse; } @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).enterParse(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).exitParse(this); + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof KlangVisitor ) return ((KlangVisitor)visitor).visitParse(this); + else return visitor.visitChildren(this); } } @@ -146,12 +143,9 @@ public class KlangParser extends Parser { } @Override public int getRuleIndex() { return RULE_block; } @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).enterBlock(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).exitBlock(this); + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof KlangVisitor ) return ((KlangVisitor)visitor).visitBlock(this); + else return visitor.visitChildren(this); } } @@ -209,12 +203,9 @@ public class KlangParser extends Parser { } @Override public int getRuleIndex() { return RULE_stat; } @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).enterStat(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).exitStat(this); + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof KlangVisitor ) return ((KlangVisitor)visitor).visitStat(this); + else return visitor.visitChildren(this); } } @@ -287,12 +278,9 @@ public class KlangParser extends Parser { } @Override public int getRuleIndex() { return RULE_assignment; } @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).enterAssignment(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).exitAssignment(this); + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof KlangVisitor ) return ((KlangVisitor)visitor).visitAssignment(this); + else return visitor.visitChildren(this); } } @@ -346,12 +334,9 @@ public class KlangParser extends Parser { } @Override public int getRuleIndex() { return RULE_if_stat; } @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).enterIf_stat(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).exitIf_stat(this); + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof KlangVisitor ) return ((KlangVisitor)visitor).visitIf_stat(this); + else return visitor.visitChildren(this); } } @@ -422,12 +407,9 @@ public class KlangParser extends Parser { } @Override public int getRuleIndex() { return RULE_condition_block; } @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).enterCondition_block(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).exitCondition_block(this); + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof KlangVisitor ) return ((KlangVisitor)visitor).visitCondition_block(this); + else return visitor.visitChildren(this); } } @@ -468,12 +450,9 @@ public class KlangParser extends Parser { } @Override public int getRuleIndex() { return RULE_stat_block; } @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).enterStat_block(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).exitStat_block(this); + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof KlangVisitor ) return ((KlangVisitor)visitor).visitStat_block(this); + else return visitor.visitChildren(this); } } @@ -533,12 +512,9 @@ public class KlangParser extends Parser { } @Override public int getRuleIndex() { return RULE_while_stat; } @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).enterWhile_stat(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).exitWhile_stat(this); + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof KlangVisitor ) return ((KlangVisitor)visitor).visitWhile_stat(this); + else return visitor.visitChildren(this); } } @@ -578,12 +554,9 @@ public class KlangParser extends Parser { } @Override public int getRuleIndex() { return RULE_log; } @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).enterLog(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).exitLog(this); + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof KlangVisitor ) return ((KlangVisitor)visitor).visitLog(this); + else return visitor.visitChildren(this); } } @@ -630,12 +603,9 @@ public class KlangParser extends Parser { } public NotExprContext(ExprContext ctx) { copyFrom(ctx); } @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).enterNotExpr(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).exitNotExpr(this); + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof KlangVisitor ) return ((KlangVisitor)visitor).visitNotExpr(this); + else return visitor.visitChildren(this); } } public static class UnaryMinusExprContext extends ExprContext { @@ -645,12 +615,9 @@ public class KlangParser extends Parser { } public UnaryMinusExprContext(ExprContext ctx) { copyFrom(ctx); } @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).enterUnaryMinusExpr(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).exitUnaryMinusExpr(this); + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof KlangVisitor ) return ((KlangVisitor)visitor).visitUnaryMinusExpr(this); + else return visitor.visitChildren(this); } } public static class MultiplicationExprContext extends ExprContext { @@ -666,12 +633,9 @@ public class KlangParser extends Parser { public TerminalNode MOD() { return getToken(KlangParser.MOD, 0); } public MultiplicationExprContext(ExprContext ctx) { copyFrom(ctx); } @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).enterMultiplicationExpr(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).exitMultiplicationExpr(this); + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof KlangVisitor ) return ((KlangVisitor)visitor).visitMultiplicationExpr(this); + else return visitor.visitChildren(this); } } public static class AtomExprContext extends ExprContext { @@ -680,12 +644,9 @@ public class KlangParser extends Parser { } public AtomExprContext(ExprContext ctx) { copyFrom(ctx); } @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).enterAtomExpr(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).exitAtomExpr(this); + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof KlangVisitor ) return ((KlangVisitor)visitor).visitAtomExpr(this); + else return visitor.visitChildren(this); } } public static class OrExprContext extends ExprContext { @@ -698,12 +659,9 @@ public class KlangParser extends Parser { public TerminalNode OR() { return getToken(KlangParser.OR, 0); } public OrExprContext(ExprContext ctx) { copyFrom(ctx); } @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).enterOrExpr(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).exitOrExpr(this); + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof KlangVisitor ) return ((KlangVisitor)visitor).visitOrExpr(this); + else return visitor.visitChildren(this); } } public static class AdditiveExprContext extends ExprContext { @@ -718,12 +676,9 @@ public class KlangParser extends Parser { public TerminalNode MINUS() { return getToken(KlangParser.MINUS, 0); } public AdditiveExprContext(ExprContext ctx) { copyFrom(ctx); } @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).enterAdditiveExpr(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).exitAdditiveExpr(this); + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof KlangVisitor ) return ((KlangVisitor)visitor).visitAdditiveExpr(this); + else return visitor.visitChildren(this); } } public static class PowExprContext extends ExprContext { @@ -736,12 +691,9 @@ public class KlangParser extends Parser { public TerminalNode POW() { return getToken(KlangParser.POW, 0); } public PowExprContext(ExprContext ctx) { copyFrom(ctx); } @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).enterPowExpr(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).exitPowExpr(this); + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof KlangVisitor ) return ((KlangVisitor)visitor).visitPowExpr(this); + else return visitor.visitChildren(this); } } public static class RelationalExprContext extends ExprContext { @@ -758,12 +710,9 @@ public class KlangParser extends Parser { public TerminalNode GT() { return getToken(KlangParser.GT, 0); } public RelationalExprContext(ExprContext ctx) { copyFrom(ctx); } @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).enterRelationalExpr(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).exitRelationalExpr(this); + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof KlangVisitor ) return ((KlangVisitor)visitor).visitRelationalExpr(this); + else return visitor.visitChildren(this); } } public static class EqualityExprContext extends ExprContext { @@ -778,12 +727,9 @@ public class KlangParser extends Parser { public TerminalNode NEQ() { return getToken(KlangParser.NEQ, 0); } public EqualityExprContext(ExprContext ctx) { copyFrom(ctx); } @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).enterEqualityExpr(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).exitEqualityExpr(this); + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof KlangVisitor ) return ((KlangVisitor)visitor).visitEqualityExpr(this); + else return visitor.visitChildren(this); } } public static class AndExprContext extends ExprContext { @@ -796,12 +742,9 @@ public class KlangParser extends Parser { public TerminalNode AND() { return getToken(KlangParser.AND, 0); } public AndExprContext(ExprContext ctx) { copyFrom(ctx); } @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).enterAndExpr(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).exitAndExpr(this); + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof KlangVisitor ) return ((KlangVisitor)visitor).visitAndExpr(this); + else return visitor.visitChildren(this); } } @@ -1023,12 +966,9 @@ public class KlangParser extends Parser { public TerminalNode CPAR() { return getToken(KlangParser.CPAR, 0); } public ParExprContext(AtomContext ctx) { copyFrom(ctx); } @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).enterParExpr(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).exitParExpr(this); + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof KlangVisitor ) return ((KlangVisitor)visitor).visitParExpr(this); + else return visitor.visitChildren(this); } } public static class BooleanAtomContext extends AtomContext { @@ -1036,48 +976,36 @@ public class KlangParser extends Parser { public TerminalNode FALSE() { return getToken(KlangParser.FALSE, 0); } public BooleanAtomContext(AtomContext ctx) { copyFrom(ctx); } @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).enterBooleanAtom(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).exitBooleanAtom(this); + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof KlangVisitor ) return ((KlangVisitor)visitor).visitBooleanAtom(this); + else return visitor.visitChildren(this); } } public static class IdAtomContext extends AtomContext { public TerminalNode ID() { return getToken(KlangParser.ID, 0); } public IdAtomContext(AtomContext ctx) { copyFrom(ctx); } @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).enterIdAtom(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).exitIdAtom(this); + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof KlangVisitor ) return ((KlangVisitor)visitor).visitIdAtom(this); + else return visitor.visitChildren(this); } } public static class StringAtomContext extends AtomContext { public TerminalNode STRING() { return getToken(KlangParser.STRING, 0); } public StringAtomContext(AtomContext ctx) { copyFrom(ctx); } @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).enterStringAtom(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).exitStringAtom(this); + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof KlangVisitor ) return ((KlangVisitor)visitor).visitStringAtom(this); + else return visitor.visitChildren(this); } } public static class NilAtomContext extends AtomContext { public TerminalNode NIL() { return getToken(KlangParser.NIL, 0); } public NilAtomContext(AtomContext ctx) { copyFrom(ctx); } @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).enterNilAtom(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).exitNilAtom(this); + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof KlangVisitor ) return ((KlangVisitor)visitor).visitNilAtom(this); + else return visitor.visitChildren(this); } } public static class NumberAtomContext extends AtomContext { @@ -1085,12 +1013,9 @@ public class KlangParser extends Parser { public TerminalNode FLOAT() { return getToken(KlangParser.FLOAT, 0); } public NumberAtomContext(AtomContext ctx) { copyFrom(ctx); } @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).enterNumberAtom(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof KlangListener ) ((KlangListener)listener).exitNumberAtom(this); + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof KlangVisitor ) return ((KlangVisitor)visitor).visitNumberAtom(this); + else return visitor.visitChildren(this); } } diff --git a/target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangVisitor.java b/target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangVisitor.java new file mode 100644 index 0000000..3ce2539 --- /dev/null +++ b/target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangVisitor.java @@ -0,0 +1,180 @@ +// Generated from de/hsrm/compiler/Klang/Klang.g4 by ANTLR 4.5 +package de.hsrm.compiler.Klang; +import org.antlr.v4.runtime.misc.NotNull; +import org.antlr.v4.runtime.tree.ParseTreeVisitor; + +/** + * This interface defines a complete generic visitor for a parse tree produced + * by {@link KlangParser}. + * + * @param The return type of the visit operation. Use {@link Void} for + * operations with no return type. + */ +public interface KlangVisitor extends ParseTreeVisitor { + /** + * Visit a parse tree produced by {@link KlangParser#parse}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitParse(KlangParser.ParseContext ctx); + /** + * Visit a parse tree produced by {@link KlangParser#block}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBlock(KlangParser.BlockContext ctx); + /** + * Visit a parse tree produced by {@link KlangParser#stat}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitStat(KlangParser.StatContext ctx); + /** + * Visit a parse tree produced by {@link KlangParser#assignment}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAssignment(KlangParser.AssignmentContext ctx); + /** + * Visit a parse tree produced by {@link KlangParser#if_stat}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIf_stat(KlangParser.If_statContext ctx); + /** + * Visit a parse tree produced by {@link KlangParser#condition_block}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCondition_block(KlangParser.Condition_blockContext ctx); + /** + * Visit a parse tree produced by {@link KlangParser#stat_block}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitStat_block(KlangParser.Stat_blockContext ctx); + /** + * Visit a parse tree produced by {@link KlangParser#while_stat}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitWhile_stat(KlangParser.While_statContext ctx); + /** + * Visit a parse tree produced by {@link KlangParser#log}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLog(KlangParser.LogContext ctx); + /** + * Visit a parse tree produced by the {@code notExpr} + * labeled alternative in {@link KlangParser#expr}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNotExpr(KlangParser.NotExprContext ctx); + /** + * Visit a parse tree produced by the {@code unaryMinusExpr} + * labeled alternative in {@link KlangParser#expr}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitUnaryMinusExpr(KlangParser.UnaryMinusExprContext ctx); + /** + * Visit a parse tree produced by the {@code multiplicationExpr} + * labeled alternative in {@link KlangParser#expr}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMultiplicationExpr(KlangParser.MultiplicationExprContext ctx); + /** + * Visit a parse tree produced by the {@code atomExpr} + * labeled alternative in {@link KlangParser#expr}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAtomExpr(KlangParser.AtomExprContext ctx); + /** + * Visit a parse tree produced by the {@code orExpr} + * labeled alternative in {@link KlangParser#expr}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitOrExpr(KlangParser.OrExprContext ctx); + /** + * Visit a parse tree produced by the {@code additiveExpr} + * labeled alternative in {@link KlangParser#expr}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAdditiveExpr(KlangParser.AdditiveExprContext ctx); + /** + * Visit a parse tree produced by the {@code powExpr} + * labeled alternative in {@link KlangParser#expr}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPowExpr(KlangParser.PowExprContext ctx); + /** + * Visit a parse tree produced by the {@code relationalExpr} + * labeled alternative in {@link KlangParser#expr}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRelationalExpr(KlangParser.RelationalExprContext ctx); + /** + * Visit a parse tree produced by the {@code equalityExpr} + * labeled alternative in {@link KlangParser#expr}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEqualityExpr(KlangParser.EqualityExprContext ctx); + /** + * Visit a parse tree produced by the {@code andExpr} + * labeled alternative in {@link KlangParser#expr}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAndExpr(KlangParser.AndExprContext ctx); + /** + * Visit a parse tree produced by the {@code parExpr} + * labeled alternative in {@link KlangParser#atom}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitParExpr(KlangParser.ParExprContext ctx); + /** + * Visit a parse tree produced by the {@code numberAtom} + * labeled alternative in {@link KlangParser#atom}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNumberAtom(KlangParser.NumberAtomContext ctx); + /** + * Visit a parse tree produced by the {@code booleanAtom} + * labeled alternative in {@link KlangParser#atom}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBooleanAtom(KlangParser.BooleanAtomContext ctx); + /** + * Visit a parse tree produced by the {@code idAtom} + * labeled alternative in {@link KlangParser#atom}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIdAtom(KlangParser.IdAtomContext ctx); + /** + * Visit a parse tree produced by the {@code stringAtom} + * labeled alternative in {@link KlangParser#atom}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitStringAtom(KlangParser.StringAtomContext ctx); + /** + * Visit a parse tree produced by the {@code nilAtom} + * labeled alternative in {@link KlangParser#atom}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNilAtom(KlangParser.NilAtomContext ctx); +} \ No newline at end of file diff --git a/target/klang-1.0-jar-with-dependencies.jar b/target/klang-1.0-jar-with-dependencies.jar index b45f1682426a513b700c9b77160a520f6059de40..82685b87e08644d620c842cc92d3dec782103bd6 100644 GIT binary patch delta 41176 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 delta 34111 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 Xu!JRe&Gm}w)rbT5X3OBP5aRy;P;^67 diff --git a/target/klang-1.0.jar b/target/klang-1.0.jar index c829dd100711707368e93f47787017275753b654..d6d34349e7f25f706a771841fa3d117e0598515e 100644 GIT binary patch delta 42240 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 z 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