From 0a9d70219883b2697af9ec52bd62cc66f6bd87fb Mon Sep 17 00:00:00 2001 From: Marvin Kaiser Date: Mon, 28 Oct 2019 15:55:18 +0100 Subject: [PATCH] Initial commit --- .classpath | 50 + .project | 23 + .settings/org.eclipse.core.resources.prefs | 4 + .settings/org.eclipse.jdt.apt.core.prefs | 2 + .settings/org.eclipse.jdt.core.prefs | 9 + .settings/org.eclipse.m2e.core.prefs | 4 + .vscode/settings.json | 3 + pom.xml | 74 + .../hsrm/compiler/Klang/.antlr/Klang.interp | 92 ++ .../hsrm/compiler/Klang/.antlr/Klang.tokens | 63 + .../compiler/Klang/.antlr/KlangLexer.interp | 122 ++ .../compiler/Klang/.antlr/KlangLexer.java | 183 +++ .../compiler/Klang/.antlr/KlangLexer.tokens | 63 + .../compiler/Klang/.antlr/KlangParser.java | 1074 ++++++++++++++ .../Klang/.antlr/calculatorLexer.interp | 122 ++ .../Klang/.antlr/calculatorLexer.java | 183 +++ .../Klang/.antlr/calculatorLexer.tokens | 63 + .../antlr4/de/hsrm/compiler/Klang/Klang.g4 | 124 ++ .../java/de/hsrm/compiler/Klang/Klang.java | 24 + target/classes/Klang.tokens | 63 + target/classes/KlangLexer.tokens | 63 + .../de/hsrm/compiler/Klang/Klang.class | Bin 0 -> 1641 bytes .../compiler/Klang/KlangBaseListener.class | Bin 0 -> 10187 bytes .../de/hsrm/compiler/Klang/KlangLexer.class | Bin 0 -> 7318 bytes .../hsrm/compiler/Klang/KlangListener.class | Bin 0 -> 5044 bytes .../KlangParser$AdditiveExprContext.class | Bin 0 -> 1919 bytes .../Klang/KlangParser$AndExprContext.class | Bin 0 -> 1771 bytes .../Klang/KlangParser$AssignmentContext.class | Bin 0 -> 1788 bytes .../Klang/KlangParser$AtomContext.class | Bin 0 -> 934 bytes .../Klang/KlangParser$AtomExprContext.class | Bin 0 -> 1409 bytes .../Klang/KlangParser$BlockContext.class | Bin 0 -> 1688 bytes .../KlangParser$BooleanAtomContext.class | Bin 0 -> 1392 bytes .../KlangParser$Condition_blockContext.class | Bin 0 -> 1717 bytes .../KlangParser$EqualityExprContext.class | Bin 0 -> 1913 bytes .../Klang/KlangParser$ExprContext.class | Bin 0 -> 934 bytes .../Klang/KlangParser$IdAtomContext.class | Bin 0 -> 1288 bytes .../Klang/KlangParser$If_statContext.class | Bin 0 -> 2503 bytes .../Klang/KlangParser$LogContext.class | Bin 0 -> 1675 bytes ...langParser$MultiplicationExprContext.class | Bin 0 -> 2023 bytes .../Klang/KlangParser$NilAtomContext.class | Bin 0 -> 1295 bytes .../Klang/KlangParser$NotExprContext.class | Bin 0 -> 1512 bytes .../Klang/KlangParser$NumberAtomContext.class | Bin 0 -> 1385 bytes .../Klang/KlangParser$OrExprContext.class | Bin 0 -> 1764 bytes .../Klang/KlangParser$ParExprContext.class | Bin 0 -> 1658 bytes .../Klang/KlangParser$ParseContext.class | Bin 0 -> 1618 bytes .../Klang/KlangParser$PowExprContext.class | Bin 0 -> 1772 bytes .../KlangParser$RelationalExprContext.class | Bin 0 -> 2067 bytes .../Klang/KlangParser$StatContext.class | Bin 0 -> 2309 bytes .../Klang/KlangParser$Stat_blockContext.class | Bin 0 -> 1927 bytes .../Klang/KlangParser$StringAtomContext.class | Bin 0 -> 1316 bytes .../KlangParser$UnaryMinusExprContext.class | Bin 0 -> 1556 bytes .../Klang/KlangParser$While_statContext.class | Bin 0 -> 1873 bytes .../de/hsrm/compiler/Klang/KlangParser.class | Bin 0 -> 20676 bytes target/generated-sources/antlr4/Klang.tokens | 63 + .../antlr4/KlangLexer.tokens | 63 + .../compiler/Klang/KlangBaseListener.java | 340 +++++ .../de/hsrm/compiler/Klang/KlangLexer.java | 177 +++ .../de/hsrm/compiler/Klang/KlangListener.java | 293 ++++ .../de/hsrm/compiler/Klang/KlangParser.java | 1251 +++++++++++++++++ target/klang-1.0-jar-with-dependencies.jar | Bin 0 -> 413317 bytes target/klang-1.0.jar | Bin 0 -> 44352 bytes target/maven-archiver/pom.properties | 5 + .../compile/default-compile/createdFiles.lst | 0 .../compile/default-compile/inputFiles.lst | 5 + .../default-testCompile/createdFiles.lst | 0 .../default-testCompile/inputFiles.lst | 1 + 66 files changed, 4606 insertions(+) create mode 100644 .classpath create mode 100644 .project create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 .settings/org.eclipse.jdt.apt.core.prefs create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 .settings/org.eclipse.m2e.core.prefs create mode 100644 .vscode/settings.json create mode 100644 pom.xml create mode 100644 src/main/antlr4/de/hsrm/compiler/Klang/.antlr/Klang.interp create mode 100644 src/main/antlr4/de/hsrm/compiler/Klang/.antlr/Klang.tokens create mode 100644 src/main/antlr4/de/hsrm/compiler/Klang/.antlr/KlangLexer.interp create mode 100644 src/main/antlr4/de/hsrm/compiler/Klang/.antlr/KlangLexer.java create mode 100644 src/main/antlr4/de/hsrm/compiler/Klang/.antlr/KlangLexer.tokens create mode 100644 src/main/antlr4/de/hsrm/compiler/Klang/.antlr/KlangParser.java create mode 100644 src/main/antlr4/de/hsrm/compiler/Klang/.antlr/calculatorLexer.interp create mode 100644 src/main/antlr4/de/hsrm/compiler/Klang/.antlr/calculatorLexer.java create mode 100644 src/main/antlr4/de/hsrm/compiler/Klang/.antlr/calculatorLexer.tokens create mode 100644 src/main/antlr4/de/hsrm/compiler/Klang/Klang.g4 create mode 100644 src/main/java/de/hsrm/compiler/Klang/Klang.java create mode 100644 target/classes/Klang.tokens create mode 100644 target/classes/KlangLexer.tokens create mode 100644 target/classes/de/hsrm/compiler/Klang/Klang.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangBaseListener.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangLexer.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangListener.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$AdditiveExprContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$AndExprContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$AssignmentContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$AtomContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$AtomExprContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$BlockContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$BooleanAtomContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$Condition_blockContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$EqualityExprContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$ExprContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$IdAtomContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$If_statContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$LogContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$MultiplicationExprContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$NilAtomContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$NotExprContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$NumberAtomContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$OrExprContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$ParExprContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$ParseContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$PowExprContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$RelationalExprContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$StatContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$Stat_blockContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$StringAtomContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$UnaryMinusExprContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser$While_statContext.class create mode 100644 target/classes/de/hsrm/compiler/Klang/KlangParser.class create mode 100644 target/generated-sources/antlr4/Klang.tokens create mode 100644 target/generated-sources/antlr4/KlangLexer.tokens create mode 100644 target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangBaseListener.java create mode 100644 target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangLexer.java create mode 100644 target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangListener.java create mode 100644 target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangParser.java create mode 100644 target/klang-1.0-jar-with-dependencies.jar create mode 100644 target/klang-1.0.jar create mode 100644 target/maven-archiver/pom.properties create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..06b8208 --- /dev/null +++ b/.classpath @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..61d6617 --- /dev/null +++ b/.project @@ -0,0 +1,23 @@ + + + klang + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..4fd796d --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//target/generated-sources/antlr4=UTF-8 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.apt.core.prefs b/.settings/org.eclipse.jdt.apt.core.prefs new file mode 100644 index 0000000..d4313d4 --- /dev/null +++ b/.settings/org.eclipse.jdt.apt.core.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.apt.aptEnabled=false diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..b11489f --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,9 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.processAnnotations=disabled +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..1133129 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.configuration.updateBuildConfiguration": "automatic" +} \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..e549dfc --- /dev/null +++ b/pom.xml @@ -0,0 +1,74 @@ + + 4.0.0 + de.hsrm.compiler + klang + 1.0 + jar + klang + http://maven.apache.org + + UTF-8 + + + + org.antlr + antlr4-runtime + 4.5 + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.1 + + 1.7 + 1.7 + + + + + org.antlr + antlr4-maven-plugin + 4.5 + + + + antlr4 + + + + + + + maven-assembly-plugin + + + jar-with-dependencies + + + + + simple-command + package + + attached + + + + + + + \ No newline at end of file diff --git a/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/Klang.interp b/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/Klang.interp new file mode 100644 index 0000000..2873b74 --- /dev/null +++ b/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/Klang.interp @@ -0,0 +1,92 @@ +token literal names: +null +'||' +'&&' +'==' +'!=' +'>' +'<' +'>=' +'<=' +'+' +'-' +'*' +'/' +'%' +'^' +'!' +';' +'=' +'(' +')' +'{' +'}' +'true' +'false' +'nil' +'if' +'else' +'while' +'log' +null +null +null +null +null +null +null + +token symbolic names: +null +OR +AND +EQ +NEQ +GT +LT +GTEQ +LTEQ +PLUS +MINUS +MULT +DIV +MOD +POW +NOT +SCOL +ASSIGN +OPAR +CPAR +OBRACE +CBRACE +TRUE +FALSE +NIL +IF +ELSE +WHILE +LOG +ID +INT +FLOAT +STRING +COMMENT +SPACE +OTHER + +rule names: +parse +block +stat +assignment +if_stat +condition_block +stat_block +while_stat +log +expr +atom + + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 37, 124, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 3, 2, 3, 2, 3, 2, 3, 3, 7, 3, 29, 10, 3, 12, 3, 14, 3, 32, 11, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 40, 10, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 7, 6, 52, 10, 6, 12, 6, 14, 6, 55, 11, 6, 3, 6, 3, 6, 5, 6, 59, 10, 6, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 5, 8, 69, 10, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 5, 11, 85, 10, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 7, 11, 108, 10, 11, 12, 11, 14, 11, 111, 11, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 5, 12, 122, 10, 12, 3, 12, 2, 3, 20, 13, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 2, 8, 3, 2, 13, 15, 3, 2, 11, 12, 3, 2, 7, 10, 3, 2, 5, 6, 3, 2, 32, 33, 3, 2, 24, 25, 2, 134, 2, 24, 3, 2, 2, 2, 4, 30, 3, 2, 2, 2, 6, 39, 3, 2, 2, 2, 8, 41, 3, 2, 2, 2, 10, 46, 3, 2, 2, 2, 12, 60, 3, 2, 2, 2, 14, 68, 3, 2, 2, 2, 16, 70, 3, 2, 2, 2, 18, 74, 3, 2, 2, 2, 20, 84, 3, 2, 2, 2, 22, 121, 3, 2, 2, 2, 24, 25, 5, 4, 3, 2, 25, 26, 7, 2, 2, 3, 26, 3, 3, 2, 2, 2, 27, 29, 5, 6, 4, 2, 28, 27, 3, 2, 2, 2, 29, 32, 3, 2, 2, 2, 30, 28, 3, 2, 2, 2, 30, 31, 3, 2, 2, 2, 31, 5, 3, 2, 2, 2, 32, 30, 3, 2, 2, 2, 33, 40, 5, 8, 5, 2, 34, 40, 5, 10, 6, 2, 35, 40, 5, 16, 9, 2, 36, 40, 5, 18, 10, 2, 37, 38, 7, 37, 2, 2, 38, 40, 8, 4, 1, 2, 39, 33, 3, 2, 2, 2, 39, 34, 3, 2, 2, 2, 39, 35, 3, 2, 2, 2, 39, 36, 3, 2, 2, 2, 39, 37, 3, 2, 2, 2, 40, 7, 3, 2, 2, 2, 41, 42, 7, 31, 2, 2, 42, 43, 7, 19, 2, 2, 43, 44, 5, 20, 11, 2, 44, 45, 7, 18, 2, 2, 45, 9, 3, 2, 2, 2, 46, 47, 7, 27, 2, 2, 47, 53, 5, 12, 7, 2, 48, 49, 7, 28, 2, 2, 49, 50, 7, 27, 2, 2, 50, 52, 5, 12, 7, 2, 51, 48, 3, 2, 2, 2, 52, 55, 3, 2, 2, 2, 53, 51, 3, 2, 2, 2, 53, 54, 3, 2, 2, 2, 54, 58, 3, 2, 2, 2, 55, 53, 3, 2, 2, 2, 56, 57, 7, 28, 2, 2, 57, 59, 5, 14, 8, 2, 58, 56, 3, 2, 2, 2, 58, 59, 3, 2, 2, 2, 59, 11, 3, 2, 2, 2, 60, 61, 5, 20, 11, 2, 61, 62, 5, 14, 8, 2, 62, 13, 3, 2, 2, 2, 63, 64, 7, 22, 2, 2, 64, 65, 5, 4, 3, 2, 65, 66, 7, 23, 2, 2, 66, 69, 3, 2, 2, 2, 67, 69, 5, 6, 4, 2, 68, 63, 3, 2, 2, 2, 68, 67, 3, 2, 2, 2, 69, 15, 3, 2, 2, 2, 70, 71, 7, 29, 2, 2, 71, 72, 5, 20, 11, 2, 72, 73, 5, 14, 8, 2, 73, 17, 3, 2, 2, 2, 74, 75, 7, 30, 2, 2, 75, 76, 5, 20, 11, 2, 76, 77, 7, 18, 2, 2, 77, 19, 3, 2, 2, 2, 78, 79, 8, 11, 1, 2, 79, 80, 7, 12, 2, 2, 80, 85, 5, 20, 11, 11, 81, 82, 7, 17, 2, 2, 82, 85, 5, 20, 11, 10, 83, 85, 5, 22, 12, 2, 84, 78, 3, 2, 2, 2, 84, 81, 3, 2, 2, 2, 84, 83, 3, 2, 2, 2, 85, 109, 3, 2, 2, 2, 86, 87, 12, 12, 2, 2, 87, 88, 7, 16, 2, 2, 88, 108, 5, 20, 11, 13, 89, 90, 12, 9, 2, 2, 90, 91, 9, 2, 2, 2, 91, 108, 5, 20, 11, 10, 92, 93, 12, 8, 2, 2, 93, 94, 9, 3, 2, 2, 94, 108, 5, 20, 11, 9, 95, 96, 12, 7, 2, 2, 96, 97, 9, 4, 2, 2, 97, 108, 5, 20, 11, 8, 98, 99, 12, 6, 2, 2, 99, 100, 9, 5, 2, 2, 100, 108, 5, 20, 11, 7, 101, 102, 12, 5, 2, 2, 102, 103, 7, 4, 2, 2, 103, 108, 5, 20, 11, 6, 104, 105, 12, 4, 2, 2, 105, 106, 7, 3, 2, 2, 106, 108, 5, 20, 11, 5, 107, 86, 3, 2, 2, 2, 107, 89, 3, 2, 2, 2, 107, 92, 3, 2, 2, 2, 107, 95, 3, 2, 2, 2, 107, 98, 3, 2, 2, 2, 107, 101, 3, 2, 2, 2, 107, 104, 3, 2, 2, 2, 108, 111, 3, 2, 2, 2, 109, 107, 3, 2, 2, 2, 109, 110, 3, 2, 2, 2, 110, 21, 3, 2, 2, 2, 111, 109, 3, 2, 2, 2, 112, 113, 7, 20, 2, 2, 113, 114, 5, 20, 11, 2, 114, 115, 7, 21, 2, 2, 115, 122, 3, 2, 2, 2, 116, 122, 9, 6, 2, 2, 117, 122, 9, 7, 2, 2, 118, 122, 7, 31, 2, 2, 119, 122, 7, 34, 2, 2, 120, 122, 7, 26, 2, 2, 121, 112, 3, 2, 2, 2, 121, 116, 3, 2, 2, 2, 121, 117, 3, 2, 2, 2, 121, 118, 3, 2, 2, 2, 121, 119, 3, 2, 2, 2, 121, 120, 3, 2, 2, 2, 122, 23, 3, 2, 2, 2, 11, 30, 39, 53, 58, 68, 84, 107, 109, 121] \ No newline at end of file diff --git a/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/Klang.tokens b/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/Klang.tokens new file mode 100644 index 0000000..d69c013 --- /dev/null +++ b/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/Klang.tokens @@ -0,0 +1,63 @@ +OR=1 +AND=2 +EQ=3 +NEQ=4 +GT=5 +LT=6 +GTEQ=7 +LTEQ=8 +PLUS=9 +MINUS=10 +MULT=11 +DIV=12 +MOD=13 +POW=14 +NOT=15 +SCOL=16 +ASSIGN=17 +OPAR=18 +CPAR=19 +OBRACE=20 +CBRACE=21 +TRUE=22 +FALSE=23 +NIL=24 +IF=25 +ELSE=26 +WHILE=27 +LOG=28 +ID=29 +INT=30 +FLOAT=31 +STRING=32 +COMMENT=33 +SPACE=34 +OTHER=35 +'||'=1 +'&&'=2 +'=='=3 +'!='=4 +'>'=5 +'<'=6 +'>='=7 +'<='=8 +'+'=9 +'-'=10 +'*'=11 +'/'=12 +'%'=13 +'^'=14 +'!'=15 +';'=16 +'='=17 +'('=18 +')'=19 +'{'=20 +'}'=21 +'true'=22 +'false'=23 +'nil'=24 +'if'=25 +'else'=26 +'while'=27 +'log'=28 diff --git a/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/KlangLexer.interp b/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/KlangLexer.interp new file mode 100644 index 0000000..b819235 --- /dev/null +++ b/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/KlangLexer.interp @@ -0,0 +1,122 @@ +token literal names: +null +'||' +'&&' +'==' +'!=' +'>' +'<' +'>=' +'<=' +'+' +'-' +'*' +'/' +'%' +'^' +'!' +';' +'=' +'(' +')' +'{' +'}' +'true' +'false' +'nil' +'if' +'else' +'while' +'log' +null +null +null +null +null +null +null + +token symbolic names: +null +OR +AND +EQ +NEQ +GT +LT +GTEQ +LTEQ +PLUS +MINUS +MULT +DIV +MOD +POW +NOT +SCOL +ASSIGN +OPAR +CPAR +OBRACE +CBRACE +TRUE +FALSE +NIL +IF +ELSE +WHILE +LOG +ID +INT +FLOAT +STRING +COMMENT +SPACE +OTHER + +rule names: +OR +AND +EQ +NEQ +GT +LT +GTEQ +LTEQ +PLUS +MINUS +MULT +DIV +MOD +POW +NOT +SCOL +ASSIGN +OPAR +CPAR +OBRACE +CBRACE +TRUE +FALSE +NIL +IF +ELSE +WHILE +LOG +ID +INT +FLOAT +STRING +COMMENT +SPACE +OTHER + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 37, 212, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 11, 3, 11, 3, 12, 3, 12, 3, 13, 3, 13, 3, 14, 3, 14, 3, 15, 3, 15, 3, 16, 3, 16, 3, 17, 3, 17, 3, 18, 3, 18, 3, 19, 3, 19, 3, 20, 3, 20, 3, 21, 3, 21, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 7, 30, 157, 10, 30, 12, 30, 14, 30, 160, 11, 30, 3, 31, 6, 31, 163, 10, 31, 13, 31, 14, 31, 164, 3, 32, 6, 32, 168, 10, 32, 13, 32, 14, 32, 169, 3, 32, 3, 32, 7, 32, 174, 10, 32, 12, 32, 14, 32, 177, 11, 32, 3, 32, 3, 32, 6, 32, 181, 10, 32, 13, 32, 14, 32, 182, 5, 32, 185, 10, 32, 3, 33, 3, 33, 3, 33, 3, 33, 7, 33, 191, 10, 33, 12, 33, 14, 33, 194, 11, 33, 3, 33, 3, 33, 3, 34, 3, 34, 7, 34, 200, 10, 34, 12, 34, 14, 34, 203, 11, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 2, 2, 37, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 29, 16, 31, 17, 33, 18, 35, 19, 37, 20, 39, 21, 41, 22, 43, 23, 45, 24, 47, 25, 49, 26, 51, 27, 53, 28, 55, 29, 57, 30, 59, 31, 61, 32, 63, 33, 65, 34, 67, 35, 69, 36, 71, 37, 3, 2, 8, 5, 2, 67, 92, 97, 97, 99, 124, 6, 2, 50, 59, 67, 92, 97, 97, 99, 124, 3, 2, 50, 59, 5, 2, 12, 12, 15, 15, 36, 36, 4, 2, 12, 12, 15, 15, 5, 2, 11, 12, 15, 15, 34, 34, 2, 220, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 2, 57, 3, 2, 2, 2, 2, 59, 3, 2, 2, 2, 2, 61, 3, 2, 2, 2, 2, 63, 3, 2, 2, 2, 2, 65, 3, 2, 2, 2, 2, 67, 3, 2, 2, 2, 2, 69, 3, 2, 2, 2, 2, 71, 3, 2, 2, 2, 3, 73, 3, 2, 2, 2, 5, 76, 3, 2, 2, 2, 7, 79, 3, 2, 2, 2, 9, 82, 3, 2, 2, 2, 11, 85, 3, 2, 2, 2, 13, 87, 3, 2, 2, 2, 15, 89, 3, 2, 2, 2, 17, 92, 3, 2, 2, 2, 19, 95, 3, 2, 2, 2, 21, 97, 3, 2, 2, 2, 23, 99, 3, 2, 2, 2, 25, 101, 3, 2, 2, 2, 27, 103, 3, 2, 2, 2, 29, 105, 3, 2, 2, 2, 31, 107, 3, 2, 2, 2, 33, 109, 3, 2, 2, 2, 35, 111, 3, 2, 2, 2, 37, 113, 3, 2, 2, 2, 39, 115, 3, 2, 2, 2, 41, 117, 3, 2, 2, 2, 43, 119, 3, 2, 2, 2, 45, 121, 3, 2, 2, 2, 47, 126, 3, 2, 2, 2, 49, 132, 3, 2, 2, 2, 51, 136, 3, 2, 2, 2, 53, 139, 3, 2, 2, 2, 55, 144, 3, 2, 2, 2, 57, 150, 3, 2, 2, 2, 59, 154, 3, 2, 2, 2, 61, 162, 3, 2, 2, 2, 63, 184, 3, 2, 2, 2, 65, 186, 3, 2, 2, 2, 67, 197, 3, 2, 2, 2, 69, 206, 3, 2, 2, 2, 71, 210, 3, 2, 2, 2, 73, 74, 7, 126, 2, 2, 74, 75, 7, 126, 2, 2, 75, 4, 3, 2, 2, 2, 76, 77, 7, 40, 2, 2, 77, 78, 7, 40, 2, 2, 78, 6, 3, 2, 2, 2, 79, 80, 7, 63, 2, 2, 80, 81, 7, 63, 2, 2, 81, 8, 3, 2, 2, 2, 82, 83, 7, 35, 2, 2, 83, 84, 7, 63, 2, 2, 84, 10, 3, 2, 2, 2, 85, 86, 7, 64, 2, 2, 86, 12, 3, 2, 2, 2, 87, 88, 7, 62, 2, 2, 88, 14, 3, 2, 2, 2, 89, 90, 7, 64, 2, 2, 90, 91, 7, 63, 2, 2, 91, 16, 3, 2, 2, 2, 92, 93, 7, 62, 2, 2, 93, 94, 7, 63, 2, 2, 94, 18, 3, 2, 2, 2, 95, 96, 7, 45, 2, 2, 96, 20, 3, 2, 2, 2, 97, 98, 7, 47, 2, 2, 98, 22, 3, 2, 2, 2, 99, 100, 7, 44, 2, 2, 100, 24, 3, 2, 2, 2, 101, 102, 7, 49, 2, 2, 102, 26, 3, 2, 2, 2, 103, 104, 7, 39, 2, 2, 104, 28, 3, 2, 2, 2, 105, 106, 7, 96, 2, 2, 106, 30, 3, 2, 2, 2, 107, 108, 7, 35, 2, 2, 108, 32, 3, 2, 2, 2, 109, 110, 7, 61, 2, 2, 110, 34, 3, 2, 2, 2, 111, 112, 7, 63, 2, 2, 112, 36, 3, 2, 2, 2, 113, 114, 7, 42, 2, 2, 114, 38, 3, 2, 2, 2, 115, 116, 7, 43, 2, 2, 116, 40, 3, 2, 2, 2, 117, 118, 7, 125, 2, 2, 118, 42, 3, 2, 2, 2, 119, 120, 7, 127, 2, 2, 120, 44, 3, 2, 2, 2, 121, 122, 7, 118, 2, 2, 122, 123, 7, 116, 2, 2, 123, 124, 7, 119, 2, 2, 124, 125, 7, 103, 2, 2, 125, 46, 3, 2, 2, 2, 126, 127, 7, 104, 2, 2, 127, 128, 7, 99, 2, 2, 128, 129, 7, 110, 2, 2, 129, 130, 7, 117, 2, 2, 130, 131, 7, 103, 2, 2, 131, 48, 3, 2, 2, 2, 132, 133, 7, 112, 2, 2, 133, 134, 7, 107, 2, 2, 134, 135, 7, 110, 2, 2, 135, 50, 3, 2, 2, 2, 136, 137, 7, 107, 2, 2, 137, 138, 7, 104, 2, 2, 138, 52, 3, 2, 2, 2, 139, 140, 7, 103, 2, 2, 140, 141, 7, 110, 2, 2, 141, 142, 7, 117, 2, 2, 142, 143, 7, 103, 2, 2, 143, 54, 3, 2, 2, 2, 144, 145, 7, 121, 2, 2, 145, 146, 7, 106, 2, 2, 146, 147, 7, 107, 2, 2, 147, 148, 7, 110, 2, 2, 148, 149, 7, 103, 2, 2, 149, 56, 3, 2, 2, 2, 150, 151, 7, 110, 2, 2, 151, 152, 7, 113, 2, 2, 152, 153, 7, 105, 2, 2, 153, 58, 3, 2, 2, 2, 154, 158, 9, 2, 2, 2, 155, 157, 9, 3, 2, 2, 156, 155, 3, 2, 2, 2, 157, 160, 3, 2, 2, 2, 158, 156, 3, 2, 2, 2, 158, 159, 3, 2, 2, 2, 159, 60, 3, 2, 2, 2, 160, 158, 3, 2, 2, 2, 161, 163, 9, 4, 2, 2, 162, 161, 3, 2, 2, 2, 163, 164, 3, 2, 2, 2, 164, 162, 3, 2, 2, 2, 164, 165, 3, 2, 2, 2, 165, 62, 3, 2, 2, 2, 166, 168, 9, 4, 2, 2, 167, 166, 3, 2, 2, 2, 168, 169, 3, 2, 2, 2, 169, 167, 3, 2, 2, 2, 169, 170, 3, 2, 2, 2, 170, 171, 3, 2, 2, 2, 171, 175, 7, 48, 2, 2, 172, 174, 9, 4, 2, 2, 173, 172, 3, 2, 2, 2, 174, 177, 3, 2, 2, 2, 175, 173, 3, 2, 2, 2, 175, 176, 3, 2, 2, 2, 176, 185, 3, 2, 2, 2, 177, 175, 3, 2, 2, 2, 178, 180, 7, 48, 2, 2, 179, 181, 9, 4, 2, 2, 180, 179, 3, 2, 2, 2, 181, 182, 3, 2, 2, 2, 182, 180, 3, 2, 2, 2, 182, 183, 3, 2, 2, 2, 183, 185, 3, 2, 2, 2, 184, 167, 3, 2, 2, 2, 184, 178, 3, 2, 2, 2, 185, 64, 3, 2, 2, 2, 186, 192, 7, 36, 2, 2, 187, 191, 10, 5, 2, 2, 188, 189, 7, 36, 2, 2, 189, 191, 7, 36, 2, 2, 190, 187, 3, 2, 2, 2, 190, 188, 3, 2, 2, 2, 191, 194, 3, 2, 2, 2, 192, 190, 3, 2, 2, 2, 192, 193, 3, 2, 2, 2, 193, 195, 3, 2, 2, 2, 194, 192, 3, 2, 2, 2, 195, 196, 7, 36, 2, 2, 196, 66, 3, 2, 2, 2, 197, 201, 7, 37, 2, 2, 198, 200, 10, 6, 2, 2, 199, 198, 3, 2, 2, 2, 200, 203, 3, 2, 2, 2, 201, 199, 3, 2, 2, 2, 201, 202, 3, 2, 2, 2, 202, 204, 3, 2, 2, 2, 203, 201, 3, 2, 2, 2, 204, 205, 8, 34, 2, 2, 205, 68, 3, 2, 2, 2, 206, 207, 9, 7, 2, 2, 207, 208, 3, 2, 2, 2, 208, 209, 8, 35, 2, 2, 209, 70, 3, 2, 2, 2, 210, 211, 11, 2, 2, 2, 211, 72, 3, 2, 2, 2, 12, 2, 158, 164, 169, 175, 182, 184, 190, 192, 201, 3, 8, 2, 2] \ No newline at end of file diff --git a/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/KlangLexer.java b/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/KlangLexer.java new file mode 100644 index 0000000..a6c6af3 --- /dev/null +++ b/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/KlangLexer.java @@ -0,0 +1,183 @@ +// Generated from /home/marvin/Documents/university/compiler/antlr_test/klang/klang/src/main/antlr4/de/hsrm/compiler/Klang/Klang.g4 by ANTLR 4.7.1 +import org.antlr.v4.runtime.Lexer; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.Token; +import org.antlr.v4.runtime.TokenStream; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.misc.*; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +public class KlangLexer extends Lexer { + static { RuntimeMetaData.checkVersion("4.7.1", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + OR=1, AND=2, EQ=3, NEQ=4, GT=5, LT=6, GTEQ=7, LTEQ=8, PLUS=9, MINUS=10, + MULT=11, DIV=12, MOD=13, POW=14, NOT=15, SCOL=16, ASSIGN=17, OPAR=18, + CPAR=19, OBRACE=20, CBRACE=21, TRUE=22, FALSE=23, NIL=24, IF=25, ELSE=26, + WHILE=27, LOG=28, ID=29, INT=30, FLOAT=31, STRING=32, COMMENT=33, SPACE=34, + OTHER=35; + public static String[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + + public static String[] modeNames = { + "DEFAULT_MODE" + }; + + public static final String[] ruleNames = { + "OR", "AND", "EQ", "NEQ", "GT", "LT", "GTEQ", "LTEQ", "PLUS", "MINUS", + "MULT", "DIV", "MOD", "POW", "NOT", "SCOL", "ASSIGN", "OPAR", "CPAR", + "OBRACE", "CBRACE", "TRUE", "FALSE", "NIL", "IF", "ELSE", "WHILE", "LOG", + "ID", "INT", "FLOAT", "STRING", "COMMENT", "SPACE", "OTHER" + }; + + private static final String[] _LITERAL_NAMES = { + null, "'||'", "'&&'", "'=='", "'!='", "'>'", "'<'", "'>='", "'<='", "'+'", + "'-'", "'*'", "'/'", "'%'", "'^'", "'!'", "';'", "'='", "'('", "')'", + "'{'", "'}'", "'true'", "'false'", "'nil'", "'if'", "'else'", "'while'", + "'log'" + }; + private static final String[] _SYMBOLIC_NAMES = { + null, "OR", "AND", "EQ", "NEQ", "GT", "LT", "GTEQ", "LTEQ", "PLUS", "MINUS", + "MULT", "DIV", "MOD", "POW", "NOT", "SCOL", "ASSIGN", "OPAR", "CPAR", + "OBRACE", "CBRACE", "TRUE", "FALSE", "NIL", "IF", "ELSE", "WHILE", "LOG", + "ID", "INT", "FLOAT", "STRING", "COMMENT", "SPACE", "OTHER" + }; + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + + public KlangLexer(CharStream input) { + super(input); + _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + @Override + public String getGrammarFileName() { return "Klang.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public String[] getChannelNames() { return channelNames; } + + @Override + public String[] getModeNames() { return modeNames; } + + @Override + public ATN getATN() { return _ATN; } + + public static final String _serializedATN = + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2%\u00d4\b\1\4\2\t"+ + "\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+ + "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ + "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ + "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+ + "\t!\4\"\t\"\4#\t#\4$\t$\3\2\3\2\3\2\3\3\3\3\3\3\3\4\3\4\3\4\3\5\3\5\3"+ + "\5\3\6\3\6\3\7\3\7\3\b\3\b\3\b\3\t\3\t\3\t\3\n\3\n\3\13\3\13\3\f\3\f\3"+ + "\r\3\r\3\16\3\16\3\17\3\17\3\20\3\20\3\21\3\21\3\22\3\22\3\23\3\23\3\24"+ + "\3\24\3\25\3\25\3\26\3\26\3\27\3\27\3\27\3\27\3\27\3\30\3\30\3\30\3\30"+ + "\3\30\3\30\3\31\3\31\3\31\3\31\3\32\3\32\3\32\3\33\3\33\3\33\3\33\3\33"+ + "\3\34\3\34\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\36\3\36\7\36\u009d"+ + "\n\36\f\36\16\36\u00a0\13\36\3\37\6\37\u00a3\n\37\r\37\16\37\u00a4\3 "+ + "\6 \u00a8\n \r \16 \u00a9\3 \3 \7 \u00ae\n \f \16 \u00b1\13 \3 \3 \6 "+ + "\u00b5\n \r \16 \u00b6\5 \u00b9\n \3!\3!\3!\3!\7!\u00bf\n!\f!\16!\u00c2"+ + "\13!\3!\3!\3\"\3\"\7\"\u00c8\n\"\f\"\16\"\u00cb\13\"\3\"\3\"\3#\3#\3#"+ + "\3#\3$\3$\2\2%\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16"+ + "\33\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63\33\65\34"+ + "\67\359\36;\37= ?!A\"C#E$G%\3\2\b\5\2C\\aac|\6\2\62;C\\aac|\3\2\62;\5"+ + "\2\f\f\17\17$$\4\2\f\f\17\17\5\2\13\f\17\17\"\"\2\u00dc\2\3\3\2\2\2\2"+ + "\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2"+ + "\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2"+ + "\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2"+ + "\2\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2"+ + "\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2"+ + "\2\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\3I\3\2\2\2\5"+ + "L\3\2\2\2\7O\3\2\2\2\tR\3\2\2\2\13U\3\2\2\2\rW\3\2\2\2\17Y\3\2\2\2\21"+ + "\\\3\2\2\2\23_\3\2\2\2\25a\3\2\2\2\27c\3\2\2\2\31e\3\2\2\2\33g\3\2\2\2"+ + "\35i\3\2\2\2\37k\3\2\2\2!m\3\2\2\2#o\3\2\2\2%q\3\2\2\2\'s\3\2\2\2)u\3"+ + "\2\2\2+w\3\2\2\2-y\3\2\2\2/~\3\2\2\2\61\u0084\3\2\2\2\63\u0088\3\2\2\2"+ + "\65\u008b\3\2\2\2\67\u0090\3\2\2\29\u0096\3\2\2\2;\u009a\3\2\2\2=\u00a2"+ + "\3\2\2\2?\u00b8\3\2\2\2A\u00ba\3\2\2\2C\u00c5\3\2\2\2E\u00ce\3\2\2\2G"+ + "\u00d2\3\2\2\2IJ\7~\2\2JK\7~\2\2K\4\3\2\2\2LM\7(\2\2MN\7(\2\2N\6\3\2\2"+ + "\2OP\7?\2\2PQ\7?\2\2Q\b\3\2\2\2RS\7#\2\2ST\7?\2\2T\n\3\2\2\2UV\7@\2\2"+ + "V\f\3\2\2\2WX\7>\2\2X\16\3\2\2\2YZ\7@\2\2Z[\7?\2\2[\20\3\2\2\2\\]\7>\2"+ + "\2]^\7?\2\2^\22\3\2\2\2_`\7-\2\2`\24\3\2\2\2ab\7/\2\2b\26\3\2\2\2cd\7"+ + ",\2\2d\30\3\2\2\2ef\7\61\2\2f\32\3\2\2\2gh\7\'\2\2h\34\3\2\2\2ij\7`\2"+ + "\2j\36\3\2\2\2kl\7#\2\2l \3\2\2\2mn\7=\2\2n\"\3\2\2\2op\7?\2\2p$\3\2\2"+ + "\2qr\7*\2\2r&\3\2\2\2st\7+\2\2t(\3\2\2\2uv\7}\2\2v*\3\2\2\2wx\7\177\2"+ + "\2x,\3\2\2\2yz\7v\2\2z{\7t\2\2{|\7w\2\2|}\7g\2\2}.\3\2\2\2~\177\7h\2\2"+ + "\177\u0080\7c\2\2\u0080\u0081\7n\2\2\u0081\u0082\7u\2\2\u0082\u0083\7"+ + "g\2\2\u0083\60\3\2\2\2\u0084\u0085\7p\2\2\u0085\u0086\7k\2\2\u0086\u0087"+ + "\7n\2\2\u0087\62\3\2\2\2\u0088\u0089\7k\2\2\u0089\u008a\7h\2\2\u008a\64"+ + "\3\2\2\2\u008b\u008c\7g\2\2\u008c\u008d\7n\2\2\u008d\u008e\7u\2\2\u008e"+ + "\u008f\7g\2\2\u008f\66\3\2\2\2\u0090\u0091\7y\2\2\u0091\u0092\7j\2\2\u0092"+ + "\u0093\7k\2\2\u0093\u0094\7n\2\2\u0094\u0095\7g\2\2\u00958\3\2\2\2\u0096"+ + "\u0097\7n\2\2\u0097\u0098\7q\2\2\u0098\u0099\7i\2\2\u0099:\3\2\2\2\u009a"+ + "\u009e\t\2\2\2\u009b\u009d\t\3\2\2\u009c\u009b\3\2\2\2\u009d\u00a0\3\2"+ + "\2\2\u009e\u009c\3\2\2\2\u009e\u009f\3\2\2\2\u009f<\3\2\2\2\u00a0\u009e"+ + "\3\2\2\2\u00a1\u00a3\t\4\2\2\u00a2\u00a1\3\2\2\2\u00a3\u00a4\3\2\2\2\u00a4"+ + "\u00a2\3\2\2\2\u00a4\u00a5\3\2\2\2\u00a5>\3\2\2\2\u00a6\u00a8\t\4\2\2"+ + "\u00a7\u00a6\3\2\2\2\u00a8\u00a9\3\2\2\2\u00a9\u00a7\3\2\2\2\u00a9\u00aa"+ + "\3\2\2\2\u00aa\u00ab\3\2\2\2\u00ab\u00af\7\60\2\2\u00ac\u00ae\t\4\2\2"+ + "\u00ad\u00ac\3\2\2\2\u00ae\u00b1\3\2\2\2\u00af\u00ad\3\2\2\2\u00af\u00b0"+ + "\3\2\2\2\u00b0\u00b9\3\2\2\2\u00b1\u00af\3\2\2\2\u00b2\u00b4\7\60\2\2"+ + "\u00b3\u00b5\t\4\2\2\u00b4\u00b3\3\2\2\2\u00b5\u00b6\3\2\2\2\u00b6\u00b4"+ + "\3\2\2\2\u00b6\u00b7\3\2\2\2\u00b7\u00b9\3\2\2\2\u00b8\u00a7\3\2\2\2\u00b8"+ + "\u00b2\3\2\2\2\u00b9@\3\2\2\2\u00ba\u00c0\7$\2\2\u00bb\u00bf\n\5\2\2\u00bc"+ + "\u00bd\7$\2\2\u00bd\u00bf\7$\2\2\u00be\u00bb\3\2\2\2\u00be\u00bc\3\2\2"+ + "\2\u00bf\u00c2\3\2\2\2\u00c0\u00be\3\2\2\2\u00c0\u00c1\3\2\2\2\u00c1\u00c3"+ + "\3\2\2\2\u00c2\u00c0\3\2\2\2\u00c3\u00c4\7$\2\2\u00c4B\3\2\2\2\u00c5\u00c9"+ + "\7%\2\2\u00c6\u00c8\n\6\2\2\u00c7\u00c6\3\2\2\2\u00c8\u00cb\3\2\2\2\u00c9"+ + "\u00c7\3\2\2\2\u00c9\u00ca\3\2\2\2\u00ca\u00cc\3\2\2\2\u00cb\u00c9\3\2"+ + "\2\2\u00cc\u00cd\b\"\2\2\u00cdD\3\2\2\2\u00ce\u00cf\t\7\2\2\u00cf\u00d0"+ + "\3\2\2\2\u00d0\u00d1\b#\2\2\u00d1F\3\2\2\2\u00d2\u00d3\13\2\2\2\u00d3"+ + "H\3\2\2\2\f\2\u009e\u00a4\u00a9\u00af\u00b6\u00b8\u00be\u00c0\u00c9\3"+ + "\b\2\2"; + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/KlangLexer.tokens b/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/KlangLexer.tokens new file mode 100644 index 0000000..d69c013 --- /dev/null +++ b/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/KlangLexer.tokens @@ -0,0 +1,63 @@ +OR=1 +AND=2 +EQ=3 +NEQ=4 +GT=5 +LT=6 +GTEQ=7 +LTEQ=8 +PLUS=9 +MINUS=10 +MULT=11 +DIV=12 +MOD=13 +POW=14 +NOT=15 +SCOL=16 +ASSIGN=17 +OPAR=18 +CPAR=19 +OBRACE=20 +CBRACE=21 +TRUE=22 +FALSE=23 +NIL=24 +IF=25 +ELSE=26 +WHILE=27 +LOG=28 +ID=29 +INT=30 +FLOAT=31 +STRING=32 +COMMENT=33 +SPACE=34 +OTHER=35 +'||'=1 +'&&'=2 +'=='=3 +'!='=4 +'>'=5 +'<'=6 +'>='=7 +'<='=8 +'+'=9 +'-'=10 +'*'=11 +'/'=12 +'%'=13 +'^'=14 +'!'=15 +';'=16 +'='=17 +'('=18 +')'=19 +'{'=20 +'}'=21 +'true'=22 +'false'=23 +'nil'=24 +'if'=25 +'else'=26 +'while'=27 +'log'=28 diff --git a/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/KlangParser.java b/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/KlangParser.java new file mode 100644 index 0000000..eec12e5 --- /dev/null +++ b/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/KlangParser.java @@ -0,0 +1,1074 @@ +// Generated from /home/marvin/Documents/university/compiler/antlr_test/klang/klang/src/main/antlr4/de/hsrm/compiler/Klang/Klang.g4 by ANTLR 4.7.1 +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.misc.*; +import org.antlr.v4.runtime.tree.*; +import java.util.List; +import java.util.Iterator; +import java.util.ArrayList; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +public class KlangParser extends Parser { + static { RuntimeMetaData.checkVersion("4.7.1", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + OR=1, AND=2, EQ=3, NEQ=4, GT=5, LT=6, GTEQ=7, LTEQ=8, PLUS=9, MINUS=10, + MULT=11, DIV=12, MOD=13, POW=14, NOT=15, SCOL=16, ASSIGN=17, OPAR=18, + CPAR=19, OBRACE=20, CBRACE=21, TRUE=22, FALSE=23, NIL=24, IF=25, ELSE=26, + WHILE=27, LOG=28, ID=29, INT=30, FLOAT=31, STRING=32, COMMENT=33, SPACE=34, + OTHER=35; + public static final int + RULE_parse = 0, RULE_block = 1, RULE_stat = 2, RULE_assignment = 3, RULE_if_stat = 4, + RULE_condition_block = 5, RULE_stat_block = 6, RULE_while_stat = 7, RULE_log = 8, + RULE_expr = 9, RULE_atom = 10; + public static final String[] ruleNames = { + "parse", "block", "stat", "assignment", "if_stat", "condition_block", + "stat_block", "while_stat", "log", "expr", "atom" + }; + + private static final String[] _LITERAL_NAMES = { + null, "'||'", "'&&'", "'=='", "'!='", "'>'", "'<'", "'>='", "'<='", "'+'", + "'-'", "'*'", "'/'", "'%'", "'^'", "'!'", "';'", "'='", "'('", "')'", + "'{'", "'}'", "'true'", "'false'", "'nil'", "'if'", "'else'", "'while'", + "'log'" + }; + private static final String[] _SYMBOLIC_NAMES = { + null, "OR", "AND", "EQ", "NEQ", "GT", "LT", "GTEQ", "LTEQ", "PLUS", "MINUS", + "MULT", "DIV", "MOD", "POW", "NOT", "SCOL", "ASSIGN", "OPAR", "CPAR", + "OBRACE", "CBRACE", "TRUE", "FALSE", "NIL", "IF", "ELSE", "WHILE", "LOG", + "ID", "INT", "FLOAT", "STRING", "COMMENT", "SPACE", "OTHER" + }; + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + @Override + public String getGrammarFileName() { return "Klang.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public ATN getATN() { return _ATN; } + + public KlangParser(TokenStream input) { + super(input); + _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + public static class ParseContext extends ParserRuleContext { + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public TerminalNode EOF() { return getToken(KlangParser.EOF, 0); } + public ParseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_parse; } + } + + public final ParseContext parse() throws RecognitionException { + ParseContext _localctx = new ParseContext(_ctx, getState()); + enterRule(_localctx, 0, RULE_parse); + try { + enterOuterAlt(_localctx, 1); + { + setState(22); + block(); + setState(23); + match(EOF); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class BlockContext extends ParserRuleContext { + public List stat() { + return getRuleContexts(StatContext.class); + } + public StatContext stat(int i) { + return getRuleContext(StatContext.class,i); + } + public BlockContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_block; } + } + + public final BlockContext block() throws RecognitionException { + BlockContext _localctx = new BlockContext(_ctx, getState()); + enterRule(_localctx, 2, RULE_block); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(28); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << IF) | (1L << WHILE) | (1L << LOG) | (1L << ID) | (1L << OTHER))) != 0)) { + { + { + setState(25); + stat(); + } + } + setState(30); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class StatContext extends ParserRuleContext { + public Token OTHER; + public AssignmentContext assignment() { + return getRuleContext(AssignmentContext.class,0); + } + public If_statContext if_stat() { + return getRuleContext(If_statContext.class,0); + } + public While_statContext while_stat() { + return getRuleContext(While_statContext.class,0); + } + public LogContext log() { + return getRuleContext(LogContext.class,0); + } + public TerminalNode OTHER() { return getToken(KlangParser.OTHER, 0); } + public StatContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_stat; } + } + + public final StatContext stat() throws RecognitionException { + StatContext _localctx = new StatContext(_ctx, getState()); + enterRule(_localctx, 4, RULE_stat); + try { + setState(37); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ID: + enterOuterAlt(_localctx, 1); + { + setState(31); + assignment(); + } + break; + case IF: + enterOuterAlt(_localctx, 2); + { + setState(32); + if_stat(); + } + break; + case WHILE: + enterOuterAlt(_localctx, 3); + { + setState(33); + while_stat(); + } + break; + case LOG: + enterOuterAlt(_localctx, 4); + { + setState(34); + log(); + } + break; + case OTHER: + enterOuterAlt(_localctx, 5); + { + setState(35); + ((StatContext)_localctx).OTHER = match(OTHER); + System.err.println("unknown char: " + (((StatContext)_localctx).OTHER!=null?((StatContext)_localctx).OTHER.getText():null)); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class AssignmentContext extends ParserRuleContext { + public TerminalNode ID() { return getToken(KlangParser.ID, 0); } + public TerminalNode ASSIGN() { return getToken(KlangParser.ASSIGN, 0); } + public ExprContext expr() { + return getRuleContext(ExprContext.class,0); + } + public TerminalNode SCOL() { return getToken(KlangParser.SCOL, 0); } + public AssignmentContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_assignment; } + } + + public final AssignmentContext assignment() throws RecognitionException { + AssignmentContext _localctx = new AssignmentContext(_ctx, getState()); + enterRule(_localctx, 6, RULE_assignment); + try { + enterOuterAlt(_localctx, 1); + { + setState(39); + match(ID); + setState(40); + match(ASSIGN); + setState(41); + expr(0); + setState(42); + match(SCOL); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class If_statContext extends ParserRuleContext { + public List IF() { return getTokens(KlangParser.IF); } + public TerminalNode IF(int i) { + return getToken(KlangParser.IF, i); + } + public List condition_block() { + return getRuleContexts(Condition_blockContext.class); + } + public Condition_blockContext condition_block(int i) { + return getRuleContext(Condition_blockContext.class,i); + } + public List ELSE() { return getTokens(KlangParser.ELSE); } + public TerminalNode ELSE(int i) { + return getToken(KlangParser.ELSE, i); + } + public Stat_blockContext stat_block() { + return getRuleContext(Stat_blockContext.class,0); + } + public If_statContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_if_stat; } + } + + public final If_statContext if_stat() throws RecognitionException { + If_statContext _localctx = new If_statContext(_ctx, getState()); + enterRule(_localctx, 8, RULE_if_stat); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(44); + match(IF); + setState(45); + condition_block(); + setState(51); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,2,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(46); + match(ELSE); + setState(47); + match(IF); + setState(48); + condition_block(); + } + } + } + setState(53); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,2,_ctx); + } + setState(56); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,3,_ctx) ) { + case 1: + { + setState(54); + match(ELSE); + setState(55); + stat_block(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Condition_blockContext extends ParserRuleContext { + public ExprContext expr() { + return getRuleContext(ExprContext.class,0); + } + public Stat_blockContext stat_block() { + return getRuleContext(Stat_blockContext.class,0); + } + public Condition_blockContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_condition_block; } + } + + public final Condition_blockContext condition_block() throws RecognitionException { + Condition_blockContext _localctx = new Condition_blockContext(_ctx, getState()); + enterRule(_localctx, 10, RULE_condition_block); + try { + enterOuterAlt(_localctx, 1); + { + setState(58); + expr(0); + setState(59); + stat_block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Stat_blockContext extends ParserRuleContext { + public TerminalNode OBRACE() { return getToken(KlangParser.OBRACE, 0); } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public TerminalNode CBRACE() { return getToken(KlangParser.CBRACE, 0); } + public StatContext stat() { + return getRuleContext(StatContext.class,0); + } + public Stat_blockContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_stat_block; } + } + + public final Stat_blockContext stat_block() throws RecognitionException { + Stat_blockContext _localctx = new Stat_blockContext(_ctx, getState()); + enterRule(_localctx, 12, RULE_stat_block); + try { + setState(66); + _errHandler.sync(this); + switch (_input.LA(1)) { + case OBRACE: + enterOuterAlt(_localctx, 1); + { + setState(61); + match(OBRACE); + setState(62); + block(); + setState(63); + match(CBRACE); + } + break; + case IF: + case WHILE: + case LOG: + case ID: + case OTHER: + enterOuterAlt(_localctx, 2); + { + setState(65); + stat(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class While_statContext extends ParserRuleContext { + public TerminalNode WHILE() { return getToken(KlangParser.WHILE, 0); } + public ExprContext expr() { + return getRuleContext(ExprContext.class,0); + } + public Stat_blockContext stat_block() { + return getRuleContext(Stat_blockContext.class,0); + } + public While_statContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_while_stat; } + } + + public final While_statContext while_stat() throws RecognitionException { + While_statContext _localctx = new While_statContext(_ctx, getState()); + enterRule(_localctx, 14, RULE_while_stat); + try { + enterOuterAlt(_localctx, 1); + { + setState(68); + match(WHILE); + setState(69); + expr(0); + setState(70); + stat_block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class LogContext extends ParserRuleContext { + public TerminalNode LOG() { return getToken(KlangParser.LOG, 0); } + public ExprContext expr() { + return getRuleContext(ExprContext.class,0); + } + public TerminalNode SCOL() { return getToken(KlangParser.SCOL, 0); } + public LogContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_log; } + } + + public final LogContext log() throws RecognitionException { + LogContext _localctx = new LogContext(_ctx, getState()); + enterRule(_localctx, 16, RULE_log); + try { + enterOuterAlt(_localctx, 1); + { + setState(72); + match(LOG); + setState(73); + expr(0); + setState(74); + match(SCOL); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ExprContext extends ParserRuleContext { + public ExprContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_expr; } + + public ExprContext() { } + public void copyFrom(ExprContext ctx) { + super.copyFrom(ctx); + } + } + public static class NotExprContext extends ExprContext { + public TerminalNode NOT() { return getToken(KlangParser.NOT, 0); } + public ExprContext expr() { + return getRuleContext(ExprContext.class,0); + } + public NotExprContext(ExprContext ctx) { copyFrom(ctx); } + } + public static class UnaryMinusExprContext extends ExprContext { + public TerminalNode MINUS() { return getToken(KlangParser.MINUS, 0); } + public ExprContext expr() { + return getRuleContext(ExprContext.class,0); + } + public UnaryMinusExprContext(ExprContext ctx) { copyFrom(ctx); } + } + public static class MultiplicationExprContext extends ExprContext { + public Token op; + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + public TerminalNode MULT() { return getToken(KlangParser.MULT, 0); } + public TerminalNode DIV() { return getToken(KlangParser.DIV, 0); } + public TerminalNode MOD() { return getToken(KlangParser.MOD, 0); } + public MultiplicationExprContext(ExprContext ctx) { copyFrom(ctx); } + } + public static class AtomExprContext extends ExprContext { + public AtomContext atom() { + return getRuleContext(AtomContext.class,0); + } + public AtomExprContext(ExprContext ctx) { copyFrom(ctx); } + } + public static class OrExprContext extends ExprContext { + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + public TerminalNode OR() { return getToken(KlangParser.OR, 0); } + public OrExprContext(ExprContext ctx) { copyFrom(ctx); } + } + public static class AdditiveExprContext extends ExprContext { + public Token op; + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + public TerminalNode PLUS() { return getToken(KlangParser.PLUS, 0); } + public TerminalNode MINUS() { return getToken(KlangParser.MINUS, 0); } + public AdditiveExprContext(ExprContext ctx) { copyFrom(ctx); } + } + public static class PowExprContext extends ExprContext { + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + public TerminalNode POW() { return getToken(KlangParser.POW, 0); } + public PowExprContext(ExprContext ctx) { copyFrom(ctx); } + } + public static class RelationalExprContext extends ExprContext { + public Token op; + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + public TerminalNode LTEQ() { return getToken(KlangParser.LTEQ, 0); } + public TerminalNode GTEQ() { return getToken(KlangParser.GTEQ, 0); } + public TerminalNode LT() { return getToken(KlangParser.LT, 0); } + public TerminalNode GT() { return getToken(KlangParser.GT, 0); } + public RelationalExprContext(ExprContext ctx) { copyFrom(ctx); } + } + public static class EqualityExprContext extends ExprContext { + public Token op; + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + public TerminalNode EQ() { return getToken(KlangParser.EQ, 0); } + public TerminalNode NEQ() { return getToken(KlangParser.NEQ, 0); } + public EqualityExprContext(ExprContext ctx) { copyFrom(ctx); } + } + public static class AndExprContext extends ExprContext { + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + public TerminalNode AND() { return getToken(KlangParser.AND, 0); } + public AndExprContext(ExprContext ctx) { copyFrom(ctx); } + } + + public final ExprContext expr() throws RecognitionException { + return expr(0); + } + + private ExprContext expr(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + ExprContext _localctx = new ExprContext(_ctx, _parentState); + ExprContext _prevctx = _localctx; + int _startState = 18; + enterRecursionRule(_localctx, 18, RULE_expr, _p); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(82); + _errHandler.sync(this); + switch (_input.LA(1)) { + case MINUS: + { + _localctx = new UnaryMinusExprContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + + setState(77); + match(MINUS); + setState(78); + expr(9); + } + break; + case NOT: + { + _localctx = new NotExprContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(79); + match(NOT); + setState(80); + expr(8); + } + break; + case OPAR: + case TRUE: + case FALSE: + case NIL: + case ID: + case INT: + case FLOAT: + case STRING: + { + _localctx = new AtomExprContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(81); + atom(); + } + break; + default: + throw new NoViableAltException(this); + } + _ctx.stop = _input.LT(-1); + setState(107); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,7,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(105); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) { + case 1: + { + _localctx = new PowExprContext(new ExprContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(84); + if (!(precpred(_ctx, 10))) throw new FailedPredicateException(this, "precpred(_ctx, 10)"); + setState(85); + match(POW); + setState(86); + expr(11); + } + break; + case 2: + { + _localctx = new MultiplicationExprContext(new ExprContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(87); + if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)"); + setState(88); + ((MultiplicationExprContext)_localctx).op = _input.LT(1); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << MULT) | (1L << DIV) | (1L << MOD))) != 0)) ) { + ((MultiplicationExprContext)_localctx).op = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(89); + expr(8); + } + break; + case 3: + { + _localctx = new AdditiveExprContext(new ExprContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(90); + if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)"); + setState(91); + ((AdditiveExprContext)_localctx).op = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==PLUS || _la==MINUS) ) { + ((AdditiveExprContext)_localctx).op = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(92); + expr(7); + } + break; + case 4: + { + _localctx = new RelationalExprContext(new ExprContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(93); + if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)"); + setState(94); + ((RelationalExprContext)_localctx).op = _input.LT(1); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << GT) | (1L << LT) | (1L << GTEQ) | (1L << LTEQ))) != 0)) ) { + ((RelationalExprContext)_localctx).op = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(95); + expr(6); + } + break; + case 5: + { + _localctx = new EqualityExprContext(new ExprContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(96); + if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)"); + setState(97); + ((EqualityExprContext)_localctx).op = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==EQ || _la==NEQ) ) { + ((EqualityExprContext)_localctx).op = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(98); + expr(5); + } + break; + case 6: + { + _localctx = new AndExprContext(new ExprContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(99); + if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); + setState(100); + match(AND); + setState(101); + expr(4); + } + break; + case 7: + { + _localctx = new OrExprContext(new ExprContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(102); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(103); + match(OR); + setState(104); + expr(3); + } + break; + } + } + } + setState(109); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,7,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class AtomContext extends ParserRuleContext { + public AtomContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_atom; } + + public AtomContext() { } + public void copyFrom(AtomContext ctx) { + super.copyFrom(ctx); + } + } + public static class ParExprContext extends AtomContext { + public TerminalNode OPAR() { return getToken(KlangParser.OPAR, 0); } + public ExprContext expr() { + return getRuleContext(ExprContext.class,0); + } + public TerminalNode CPAR() { return getToken(KlangParser.CPAR, 0); } + public ParExprContext(AtomContext ctx) { copyFrom(ctx); } + } + public static class BooleanAtomContext extends AtomContext { + public TerminalNode TRUE() { return getToken(KlangParser.TRUE, 0); } + public TerminalNode FALSE() { return getToken(KlangParser.FALSE, 0); } + public BooleanAtomContext(AtomContext ctx) { copyFrom(ctx); } + } + public static class IdAtomContext extends AtomContext { + public TerminalNode ID() { return getToken(KlangParser.ID, 0); } + public IdAtomContext(AtomContext ctx) { copyFrom(ctx); } + } + public static class StringAtomContext extends AtomContext { + public TerminalNode STRING() { return getToken(KlangParser.STRING, 0); } + public StringAtomContext(AtomContext ctx) { copyFrom(ctx); } + } + public static class NilAtomContext extends AtomContext { + public TerminalNode NIL() { return getToken(KlangParser.NIL, 0); } + public NilAtomContext(AtomContext ctx) { copyFrom(ctx); } + } + public static class NumberAtomContext extends AtomContext { + public TerminalNode INT() { return getToken(KlangParser.INT, 0); } + public TerminalNode FLOAT() { return getToken(KlangParser.FLOAT, 0); } + public NumberAtomContext(AtomContext ctx) { copyFrom(ctx); } + } + + public final AtomContext atom() throws RecognitionException { + AtomContext _localctx = new AtomContext(_ctx, getState()); + enterRule(_localctx, 20, RULE_atom); + int _la; + try { + setState(119); + _errHandler.sync(this); + switch (_input.LA(1)) { + case OPAR: + _localctx = new ParExprContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(110); + match(OPAR); + setState(111); + expr(0); + setState(112); + match(CPAR); + } + break; + case INT: + case FLOAT: + _localctx = new NumberAtomContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(114); + _la = _input.LA(1); + if ( !(_la==INT || _la==FLOAT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + case TRUE: + case FALSE: + _localctx = new BooleanAtomContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(115); + _la = _input.LA(1); + if ( !(_la==TRUE || _la==FALSE) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + case ID: + _localctx = new IdAtomContext(_localctx); + enterOuterAlt(_localctx, 4); + { + setState(116); + match(ID); + } + break; + case STRING: + _localctx = new StringAtomContext(_localctx); + enterOuterAlt(_localctx, 5); + { + setState(117); + match(STRING); + } + break; + case NIL: + _localctx = new NilAtomContext(_localctx); + enterOuterAlt(_localctx, 6); + { + setState(118); + match(NIL); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { + switch (ruleIndex) { + case 9: + return expr_sempred((ExprContext)_localctx, predIndex); + } + return true; + } + private boolean expr_sempred(ExprContext _localctx, int predIndex) { + switch (predIndex) { + case 0: + return precpred(_ctx, 10); + case 1: + return precpred(_ctx, 7); + case 2: + return precpred(_ctx, 6); + case 3: + return precpred(_ctx, 5); + case 4: + return precpred(_ctx, 4); + case 5: + return precpred(_ctx, 3); + case 6: + return precpred(_ctx, 2); + } + return true; + } + + public static final String _serializedATN = + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3%|\4\2\t\2\4\3\t\3"+ + "\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f"+ + "\t\f\3\2\3\2\3\2\3\3\7\3\35\n\3\f\3\16\3 \13\3\3\4\3\4\3\4\3\4\3\4\3\4"+ + "\5\4(\n\4\3\5\3\5\3\5\3\5\3\5\3\6\3\6\3\6\3\6\3\6\7\6\64\n\6\f\6\16\6"+ + "\67\13\6\3\6\3\6\5\6;\n\6\3\7\3\7\3\7\3\b\3\b\3\b\3\b\3\b\5\bE\n\b\3\t"+ + "\3\t\3\t\3\t\3\n\3\n\3\n\3\n\3\13\3\13\3\13\3\13\3\13\3\13\5\13U\n\13"+ + "\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13"+ + "\3\13\3\13\3\13\3\13\3\13\3\13\3\13\7\13l\n\13\f\13\16\13o\13\13\3\f\3"+ + "\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\5\fz\n\f\3\f\2\3\24\r\2\4\6\b\n\f\16\20"+ + "\22\24\26\2\b\3\2\r\17\3\2\13\f\3\2\7\n\3\2\5\6\3\2 !\3\2\30\31\2\u0086"+ + "\2\30\3\2\2\2\4\36\3\2\2\2\6\'\3\2\2\2\b)\3\2\2\2\n.\3\2\2\2\f<\3\2\2"+ + "\2\16D\3\2\2\2\20F\3\2\2\2\22J\3\2\2\2\24T\3\2\2\2\26y\3\2\2\2\30\31\5"+ + "\4\3\2\31\32\7\2\2\3\32\3\3\2\2\2\33\35\5\6\4\2\34\33\3\2\2\2\35 \3\2"+ + "\2\2\36\34\3\2\2\2\36\37\3\2\2\2\37\5\3\2\2\2 \36\3\2\2\2!(\5\b\5\2\""+ + "(\5\n\6\2#(\5\20\t\2$(\5\22\n\2%&\7%\2\2&(\b\4\1\2\'!\3\2\2\2\'\"\3\2"+ + "\2\2\'#\3\2\2\2\'$\3\2\2\2\'%\3\2\2\2(\7\3\2\2\2)*\7\37\2\2*+\7\23\2\2"+ + "+,\5\24\13\2,-\7\22\2\2-\t\3\2\2\2./\7\33\2\2/\65\5\f\7\2\60\61\7\34\2"+ + "\2\61\62\7\33\2\2\62\64\5\f\7\2\63\60\3\2\2\2\64\67\3\2\2\2\65\63\3\2"+ + "\2\2\65\66\3\2\2\2\66:\3\2\2\2\67\65\3\2\2\289\7\34\2\29;\5\16\b\2:8\3"+ + "\2\2\2:;\3\2\2\2;\13\3\2\2\2<=\5\24\13\2=>\5\16\b\2>\r\3\2\2\2?@\7\26"+ + "\2\2@A\5\4\3\2AB\7\27\2\2BE\3\2\2\2CE\5\6\4\2D?\3\2\2\2DC\3\2\2\2E\17"+ + "\3\2\2\2FG\7\35\2\2GH\5\24\13\2HI\5\16\b\2I\21\3\2\2\2JK\7\36\2\2KL\5"+ + "\24\13\2LM\7\22\2\2M\23\3\2\2\2NO\b\13\1\2OP\7\f\2\2PU\5\24\13\13QR\7"+ + "\21\2\2RU\5\24\13\nSU\5\26\f\2TN\3\2\2\2TQ\3\2\2\2TS\3\2\2\2Um\3\2\2\2"+ + "VW\f\f\2\2WX\7\20\2\2Xl\5\24\13\rYZ\f\t\2\2Z[\t\2\2\2[l\5\24\13\n\\]\f"+ + "\b\2\2]^\t\3\2\2^l\5\24\13\t_`\f\7\2\2`a\t\4\2\2al\5\24\13\bbc\f\6\2\2"+ + "cd\t\5\2\2dl\5\24\13\7ef\f\5\2\2fg\7\4\2\2gl\5\24\13\6hi\f\4\2\2ij\7\3"+ + "\2\2jl\5\24\13\5kV\3\2\2\2kY\3\2\2\2k\\\3\2\2\2k_\3\2\2\2kb\3\2\2\2ke"+ + "\3\2\2\2kh\3\2\2\2lo\3\2\2\2mk\3\2\2\2mn\3\2\2\2n\25\3\2\2\2om\3\2\2\2"+ + "pq\7\24\2\2qr\5\24\13\2rs\7\25\2\2sz\3\2\2\2tz\t\6\2\2uz\t\7\2\2vz\7\37"+ + "\2\2wz\7\"\2\2xz\7\32\2\2yp\3\2\2\2yt\3\2\2\2yu\3\2\2\2yv\3\2\2\2yw\3"+ + "\2\2\2yx\3\2\2\2z\27\3\2\2\2\13\36\'\65:DTkmy"; + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/calculatorLexer.interp b/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/calculatorLexer.interp new file mode 100644 index 0000000..b819235 --- /dev/null +++ b/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/calculatorLexer.interp @@ -0,0 +1,122 @@ +token literal names: +null +'||' +'&&' +'==' +'!=' +'>' +'<' +'>=' +'<=' +'+' +'-' +'*' +'/' +'%' +'^' +'!' +';' +'=' +'(' +')' +'{' +'}' +'true' +'false' +'nil' +'if' +'else' +'while' +'log' +null +null +null +null +null +null +null + +token symbolic names: +null +OR +AND +EQ +NEQ +GT +LT +GTEQ +LTEQ +PLUS +MINUS +MULT +DIV +MOD +POW +NOT +SCOL +ASSIGN +OPAR +CPAR +OBRACE +CBRACE +TRUE +FALSE +NIL +IF +ELSE +WHILE +LOG +ID +INT +FLOAT +STRING +COMMENT +SPACE +OTHER + +rule names: +OR +AND +EQ +NEQ +GT +LT +GTEQ +LTEQ +PLUS +MINUS +MULT +DIV +MOD +POW +NOT +SCOL +ASSIGN +OPAR +CPAR +OBRACE +CBRACE +TRUE +FALSE +NIL +IF +ELSE +WHILE +LOG +ID +INT +FLOAT +STRING +COMMENT +SPACE +OTHER + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 37, 212, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 11, 3, 11, 3, 12, 3, 12, 3, 13, 3, 13, 3, 14, 3, 14, 3, 15, 3, 15, 3, 16, 3, 16, 3, 17, 3, 17, 3, 18, 3, 18, 3, 19, 3, 19, 3, 20, 3, 20, 3, 21, 3, 21, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 7, 30, 157, 10, 30, 12, 30, 14, 30, 160, 11, 30, 3, 31, 6, 31, 163, 10, 31, 13, 31, 14, 31, 164, 3, 32, 6, 32, 168, 10, 32, 13, 32, 14, 32, 169, 3, 32, 3, 32, 7, 32, 174, 10, 32, 12, 32, 14, 32, 177, 11, 32, 3, 32, 3, 32, 6, 32, 181, 10, 32, 13, 32, 14, 32, 182, 5, 32, 185, 10, 32, 3, 33, 3, 33, 3, 33, 3, 33, 7, 33, 191, 10, 33, 12, 33, 14, 33, 194, 11, 33, 3, 33, 3, 33, 3, 34, 3, 34, 7, 34, 200, 10, 34, 12, 34, 14, 34, 203, 11, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 2, 2, 37, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 29, 16, 31, 17, 33, 18, 35, 19, 37, 20, 39, 21, 41, 22, 43, 23, 45, 24, 47, 25, 49, 26, 51, 27, 53, 28, 55, 29, 57, 30, 59, 31, 61, 32, 63, 33, 65, 34, 67, 35, 69, 36, 71, 37, 3, 2, 8, 5, 2, 67, 92, 97, 97, 99, 124, 6, 2, 50, 59, 67, 92, 97, 97, 99, 124, 3, 2, 50, 59, 5, 2, 12, 12, 15, 15, 36, 36, 4, 2, 12, 12, 15, 15, 5, 2, 11, 12, 15, 15, 34, 34, 2, 220, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 2, 57, 3, 2, 2, 2, 2, 59, 3, 2, 2, 2, 2, 61, 3, 2, 2, 2, 2, 63, 3, 2, 2, 2, 2, 65, 3, 2, 2, 2, 2, 67, 3, 2, 2, 2, 2, 69, 3, 2, 2, 2, 2, 71, 3, 2, 2, 2, 3, 73, 3, 2, 2, 2, 5, 76, 3, 2, 2, 2, 7, 79, 3, 2, 2, 2, 9, 82, 3, 2, 2, 2, 11, 85, 3, 2, 2, 2, 13, 87, 3, 2, 2, 2, 15, 89, 3, 2, 2, 2, 17, 92, 3, 2, 2, 2, 19, 95, 3, 2, 2, 2, 21, 97, 3, 2, 2, 2, 23, 99, 3, 2, 2, 2, 25, 101, 3, 2, 2, 2, 27, 103, 3, 2, 2, 2, 29, 105, 3, 2, 2, 2, 31, 107, 3, 2, 2, 2, 33, 109, 3, 2, 2, 2, 35, 111, 3, 2, 2, 2, 37, 113, 3, 2, 2, 2, 39, 115, 3, 2, 2, 2, 41, 117, 3, 2, 2, 2, 43, 119, 3, 2, 2, 2, 45, 121, 3, 2, 2, 2, 47, 126, 3, 2, 2, 2, 49, 132, 3, 2, 2, 2, 51, 136, 3, 2, 2, 2, 53, 139, 3, 2, 2, 2, 55, 144, 3, 2, 2, 2, 57, 150, 3, 2, 2, 2, 59, 154, 3, 2, 2, 2, 61, 162, 3, 2, 2, 2, 63, 184, 3, 2, 2, 2, 65, 186, 3, 2, 2, 2, 67, 197, 3, 2, 2, 2, 69, 206, 3, 2, 2, 2, 71, 210, 3, 2, 2, 2, 73, 74, 7, 126, 2, 2, 74, 75, 7, 126, 2, 2, 75, 4, 3, 2, 2, 2, 76, 77, 7, 40, 2, 2, 77, 78, 7, 40, 2, 2, 78, 6, 3, 2, 2, 2, 79, 80, 7, 63, 2, 2, 80, 81, 7, 63, 2, 2, 81, 8, 3, 2, 2, 2, 82, 83, 7, 35, 2, 2, 83, 84, 7, 63, 2, 2, 84, 10, 3, 2, 2, 2, 85, 86, 7, 64, 2, 2, 86, 12, 3, 2, 2, 2, 87, 88, 7, 62, 2, 2, 88, 14, 3, 2, 2, 2, 89, 90, 7, 64, 2, 2, 90, 91, 7, 63, 2, 2, 91, 16, 3, 2, 2, 2, 92, 93, 7, 62, 2, 2, 93, 94, 7, 63, 2, 2, 94, 18, 3, 2, 2, 2, 95, 96, 7, 45, 2, 2, 96, 20, 3, 2, 2, 2, 97, 98, 7, 47, 2, 2, 98, 22, 3, 2, 2, 2, 99, 100, 7, 44, 2, 2, 100, 24, 3, 2, 2, 2, 101, 102, 7, 49, 2, 2, 102, 26, 3, 2, 2, 2, 103, 104, 7, 39, 2, 2, 104, 28, 3, 2, 2, 2, 105, 106, 7, 96, 2, 2, 106, 30, 3, 2, 2, 2, 107, 108, 7, 35, 2, 2, 108, 32, 3, 2, 2, 2, 109, 110, 7, 61, 2, 2, 110, 34, 3, 2, 2, 2, 111, 112, 7, 63, 2, 2, 112, 36, 3, 2, 2, 2, 113, 114, 7, 42, 2, 2, 114, 38, 3, 2, 2, 2, 115, 116, 7, 43, 2, 2, 116, 40, 3, 2, 2, 2, 117, 118, 7, 125, 2, 2, 118, 42, 3, 2, 2, 2, 119, 120, 7, 127, 2, 2, 120, 44, 3, 2, 2, 2, 121, 122, 7, 118, 2, 2, 122, 123, 7, 116, 2, 2, 123, 124, 7, 119, 2, 2, 124, 125, 7, 103, 2, 2, 125, 46, 3, 2, 2, 2, 126, 127, 7, 104, 2, 2, 127, 128, 7, 99, 2, 2, 128, 129, 7, 110, 2, 2, 129, 130, 7, 117, 2, 2, 130, 131, 7, 103, 2, 2, 131, 48, 3, 2, 2, 2, 132, 133, 7, 112, 2, 2, 133, 134, 7, 107, 2, 2, 134, 135, 7, 110, 2, 2, 135, 50, 3, 2, 2, 2, 136, 137, 7, 107, 2, 2, 137, 138, 7, 104, 2, 2, 138, 52, 3, 2, 2, 2, 139, 140, 7, 103, 2, 2, 140, 141, 7, 110, 2, 2, 141, 142, 7, 117, 2, 2, 142, 143, 7, 103, 2, 2, 143, 54, 3, 2, 2, 2, 144, 145, 7, 121, 2, 2, 145, 146, 7, 106, 2, 2, 146, 147, 7, 107, 2, 2, 147, 148, 7, 110, 2, 2, 148, 149, 7, 103, 2, 2, 149, 56, 3, 2, 2, 2, 150, 151, 7, 110, 2, 2, 151, 152, 7, 113, 2, 2, 152, 153, 7, 105, 2, 2, 153, 58, 3, 2, 2, 2, 154, 158, 9, 2, 2, 2, 155, 157, 9, 3, 2, 2, 156, 155, 3, 2, 2, 2, 157, 160, 3, 2, 2, 2, 158, 156, 3, 2, 2, 2, 158, 159, 3, 2, 2, 2, 159, 60, 3, 2, 2, 2, 160, 158, 3, 2, 2, 2, 161, 163, 9, 4, 2, 2, 162, 161, 3, 2, 2, 2, 163, 164, 3, 2, 2, 2, 164, 162, 3, 2, 2, 2, 164, 165, 3, 2, 2, 2, 165, 62, 3, 2, 2, 2, 166, 168, 9, 4, 2, 2, 167, 166, 3, 2, 2, 2, 168, 169, 3, 2, 2, 2, 169, 167, 3, 2, 2, 2, 169, 170, 3, 2, 2, 2, 170, 171, 3, 2, 2, 2, 171, 175, 7, 48, 2, 2, 172, 174, 9, 4, 2, 2, 173, 172, 3, 2, 2, 2, 174, 177, 3, 2, 2, 2, 175, 173, 3, 2, 2, 2, 175, 176, 3, 2, 2, 2, 176, 185, 3, 2, 2, 2, 177, 175, 3, 2, 2, 2, 178, 180, 7, 48, 2, 2, 179, 181, 9, 4, 2, 2, 180, 179, 3, 2, 2, 2, 181, 182, 3, 2, 2, 2, 182, 180, 3, 2, 2, 2, 182, 183, 3, 2, 2, 2, 183, 185, 3, 2, 2, 2, 184, 167, 3, 2, 2, 2, 184, 178, 3, 2, 2, 2, 185, 64, 3, 2, 2, 2, 186, 192, 7, 36, 2, 2, 187, 191, 10, 5, 2, 2, 188, 189, 7, 36, 2, 2, 189, 191, 7, 36, 2, 2, 190, 187, 3, 2, 2, 2, 190, 188, 3, 2, 2, 2, 191, 194, 3, 2, 2, 2, 192, 190, 3, 2, 2, 2, 192, 193, 3, 2, 2, 2, 193, 195, 3, 2, 2, 2, 194, 192, 3, 2, 2, 2, 195, 196, 7, 36, 2, 2, 196, 66, 3, 2, 2, 2, 197, 201, 7, 37, 2, 2, 198, 200, 10, 6, 2, 2, 199, 198, 3, 2, 2, 2, 200, 203, 3, 2, 2, 2, 201, 199, 3, 2, 2, 2, 201, 202, 3, 2, 2, 2, 202, 204, 3, 2, 2, 2, 203, 201, 3, 2, 2, 2, 204, 205, 8, 34, 2, 2, 205, 68, 3, 2, 2, 2, 206, 207, 9, 7, 2, 2, 207, 208, 3, 2, 2, 2, 208, 209, 8, 35, 2, 2, 209, 70, 3, 2, 2, 2, 210, 211, 11, 2, 2, 2, 211, 72, 3, 2, 2, 2, 12, 2, 158, 164, 169, 175, 182, 184, 190, 192, 201, 3, 8, 2, 2] \ No newline at end of file diff --git a/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/calculatorLexer.java b/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/calculatorLexer.java new file mode 100644 index 0000000..1c4e2f4 --- /dev/null +++ b/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/calculatorLexer.java @@ -0,0 +1,183 @@ +// Generated from /home/marvin/Documents/university/compiler/antlr_test/klang/klang/src/main/antlr4/de/hsrm/compiler/Klang/Klang.g4 by ANTLR 4.7.1 +import org.antlr.v4.runtime.Lexer; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.Token; +import org.antlr.v4.runtime.TokenStream; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.misc.*; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +public class calculatorLexer extends Lexer { + static { RuntimeMetaData.checkVersion("4.7.1", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + OR=1, AND=2, EQ=3, NEQ=4, GT=5, LT=6, GTEQ=7, LTEQ=8, PLUS=9, MINUS=10, + MULT=11, DIV=12, MOD=13, POW=14, NOT=15, SCOL=16, ASSIGN=17, OPAR=18, + CPAR=19, OBRACE=20, CBRACE=21, TRUE=22, FALSE=23, NIL=24, IF=25, ELSE=26, + WHILE=27, LOG=28, ID=29, INT=30, FLOAT=31, STRING=32, COMMENT=33, SPACE=34, + OTHER=35; + public static String[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + + public static String[] modeNames = { + "DEFAULT_MODE" + }; + + public static final String[] ruleNames = { + "OR", "AND", "EQ", "NEQ", "GT", "LT", "GTEQ", "LTEQ", "PLUS", "MINUS", + "MULT", "DIV", "MOD", "POW", "NOT", "SCOL", "ASSIGN", "OPAR", "CPAR", + "OBRACE", "CBRACE", "TRUE", "FALSE", "NIL", "IF", "ELSE", "WHILE", "LOG", + "ID", "INT", "FLOAT", "STRING", "COMMENT", "SPACE", "OTHER" + }; + + private static final String[] _LITERAL_NAMES = { + null, "'||'", "'&&'", "'=='", "'!='", "'>'", "'<'", "'>='", "'<='", "'+'", + "'-'", "'*'", "'/'", "'%'", "'^'", "'!'", "';'", "'='", "'('", "')'", + "'{'", "'}'", "'true'", "'false'", "'nil'", "'if'", "'else'", "'while'", + "'log'" + }; + private static final String[] _SYMBOLIC_NAMES = { + null, "OR", "AND", "EQ", "NEQ", "GT", "LT", "GTEQ", "LTEQ", "PLUS", "MINUS", + "MULT", "DIV", "MOD", "POW", "NOT", "SCOL", "ASSIGN", "OPAR", "CPAR", + "OBRACE", "CBRACE", "TRUE", "FALSE", "NIL", "IF", "ELSE", "WHILE", "LOG", + "ID", "INT", "FLOAT", "STRING", "COMMENT", "SPACE", "OTHER" + }; + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + + public calculatorLexer(CharStream input) { + super(input); + _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + @Override + public String getGrammarFileName() { return "Klang.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public String[] getChannelNames() { return channelNames; } + + @Override + public String[] getModeNames() { return modeNames; } + + @Override + public ATN getATN() { return _ATN; } + + public static final String _serializedATN = + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2%\u00d4\b\1\4\2\t"+ + "\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+ + "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ + "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ + "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+ + "\t!\4\"\t\"\4#\t#\4$\t$\3\2\3\2\3\2\3\3\3\3\3\3\3\4\3\4\3\4\3\5\3\5\3"+ + "\5\3\6\3\6\3\7\3\7\3\b\3\b\3\b\3\t\3\t\3\t\3\n\3\n\3\13\3\13\3\f\3\f\3"+ + "\r\3\r\3\16\3\16\3\17\3\17\3\20\3\20\3\21\3\21\3\22\3\22\3\23\3\23\3\24"+ + "\3\24\3\25\3\25\3\26\3\26\3\27\3\27\3\27\3\27\3\27\3\30\3\30\3\30\3\30"+ + "\3\30\3\30\3\31\3\31\3\31\3\31\3\32\3\32\3\32\3\33\3\33\3\33\3\33\3\33"+ + "\3\34\3\34\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\36\3\36\7\36\u009d"+ + "\n\36\f\36\16\36\u00a0\13\36\3\37\6\37\u00a3\n\37\r\37\16\37\u00a4\3 "+ + "\6 \u00a8\n \r \16 \u00a9\3 \3 \7 \u00ae\n \f \16 \u00b1\13 \3 \3 \6 "+ + "\u00b5\n \r \16 \u00b6\5 \u00b9\n \3!\3!\3!\3!\7!\u00bf\n!\f!\16!\u00c2"+ + "\13!\3!\3!\3\"\3\"\7\"\u00c8\n\"\f\"\16\"\u00cb\13\"\3\"\3\"\3#\3#\3#"+ + "\3#\3$\3$\2\2%\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16"+ + "\33\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63\33\65\34"+ + "\67\359\36;\37= ?!A\"C#E$G%\3\2\b\5\2C\\aac|\6\2\62;C\\aac|\3\2\62;\5"+ + "\2\f\f\17\17$$\4\2\f\f\17\17\5\2\13\f\17\17\"\"\2\u00dc\2\3\3\2\2\2\2"+ + "\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2"+ + "\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2"+ + "\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2"+ + "\2\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2"+ + "\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2"+ + "\2\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\3I\3\2\2\2\5"+ + "L\3\2\2\2\7O\3\2\2\2\tR\3\2\2\2\13U\3\2\2\2\rW\3\2\2\2\17Y\3\2\2\2\21"+ + "\\\3\2\2\2\23_\3\2\2\2\25a\3\2\2\2\27c\3\2\2\2\31e\3\2\2\2\33g\3\2\2\2"+ + "\35i\3\2\2\2\37k\3\2\2\2!m\3\2\2\2#o\3\2\2\2%q\3\2\2\2\'s\3\2\2\2)u\3"+ + "\2\2\2+w\3\2\2\2-y\3\2\2\2/~\3\2\2\2\61\u0084\3\2\2\2\63\u0088\3\2\2\2"+ + "\65\u008b\3\2\2\2\67\u0090\3\2\2\29\u0096\3\2\2\2;\u009a\3\2\2\2=\u00a2"+ + "\3\2\2\2?\u00b8\3\2\2\2A\u00ba\3\2\2\2C\u00c5\3\2\2\2E\u00ce\3\2\2\2G"+ + "\u00d2\3\2\2\2IJ\7~\2\2JK\7~\2\2K\4\3\2\2\2LM\7(\2\2MN\7(\2\2N\6\3\2\2"+ + "\2OP\7?\2\2PQ\7?\2\2Q\b\3\2\2\2RS\7#\2\2ST\7?\2\2T\n\3\2\2\2UV\7@\2\2"+ + "V\f\3\2\2\2WX\7>\2\2X\16\3\2\2\2YZ\7@\2\2Z[\7?\2\2[\20\3\2\2\2\\]\7>\2"+ + "\2]^\7?\2\2^\22\3\2\2\2_`\7-\2\2`\24\3\2\2\2ab\7/\2\2b\26\3\2\2\2cd\7"+ + ",\2\2d\30\3\2\2\2ef\7\61\2\2f\32\3\2\2\2gh\7\'\2\2h\34\3\2\2\2ij\7`\2"+ + "\2j\36\3\2\2\2kl\7#\2\2l \3\2\2\2mn\7=\2\2n\"\3\2\2\2op\7?\2\2p$\3\2\2"+ + "\2qr\7*\2\2r&\3\2\2\2st\7+\2\2t(\3\2\2\2uv\7}\2\2v*\3\2\2\2wx\7\177\2"+ + "\2x,\3\2\2\2yz\7v\2\2z{\7t\2\2{|\7w\2\2|}\7g\2\2}.\3\2\2\2~\177\7h\2\2"+ + "\177\u0080\7c\2\2\u0080\u0081\7n\2\2\u0081\u0082\7u\2\2\u0082\u0083\7"+ + "g\2\2\u0083\60\3\2\2\2\u0084\u0085\7p\2\2\u0085\u0086\7k\2\2\u0086\u0087"+ + "\7n\2\2\u0087\62\3\2\2\2\u0088\u0089\7k\2\2\u0089\u008a\7h\2\2\u008a\64"+ + "\3\2\2\2\u008b\u008c\7g\2\2\u008c\u008d\7n\2\2\u008d\u008e\7u\2\2\u008e"+ + "\u008f\7g\2\2\u008f\66\3\2\2\2\u0090\u0091\7y\2\2\u0091\u0092\7j\2\2\u0092"+ + "\u0093\7k\2\2\u0093\u0094\7n\2\2\u0094\u0095\7g\2\2\u00958\3\2\2\2\u0096"+ + "\u0097\7n\2\2\u0097\u0098\7q\2\2\u0098\u0099\7i\2\2\u0099:\3\2\2\2\u009a"+ + "\u009e\t\2\2\2\u009b\u009d\t\3\2\2\u009c\u009b\3\2\2\2\u009d\u00a0\3\2"+ + "\2\2\u009e\u009c\3\2\2\2\u009e\u009f\3\2\2\2\u009f<\3\2\2\2\u00a0\u009e"+ + "\3\2\2\2\u00a1\u00a3\t\4\2\2\u00a2\u00a1\3\2\2\2\u00a3\u00a4\3\2\2\2\u00a4"+ + "\u00a2\3\2\2\2\u00a4\u00a5\3\2\2\2\u00a5>\3\2\2\2\u00a6\u00a8\t\4\2\2"+ + "\u00a7\u00a6\3\2\2\2\u00a8\u00a9\3\2\2\2\u00a9\u00a7\3\2\2\2\u00a9\u00aa"+ + "\3\2\2\2\u00aa\u00ab\3\2\2\2\u00ab\u00af\7\60\2\2\u00ac\u00ae\t\4\2\2"+ + "\u00ad\u00ac\3\2\2\2\u00ae\u00b1\3\2\2\2\u00af\u00ad\3\2\2\2\u00af\u00b0"+ + "\3\2\2\2\u00b0\u00b9\3\2\2\2\u00b1\u00af\3\2\2\2\u00b2\u00b4\7\60\2\2"+ + "\u00b3\u00b5\t\4\2\2\u00b4\u00b3\3\2\2\2\u00b5\u00b6\3\2\2\2\u00b6\u00b4"+ + "\3\2\2\2\u00b6\u00b7\3\2\2\2\u00b7\u00b9\3\2\2\2\u00b8\u00a7\3\2\2\2\u00b8"+ + "\u00b2\3\2\2\2\u00b9@\3\2\2\2\u00ba\u00c0\7$\2\2\u00bb\u00bf\n\5\2\2\u00bc"+ + "\u00bd\7$\2\2\u00bd\u00bf\7$\2\2\u00be\u00bb\3\2\2\2\u00be\u00bc\3\2\2"+ + "\2\u00bf\u00c2\3\2\2\2\u00c0\u00be\3\2\2\2\u00c0\u00c1\3\2\2\2\u00c1\u00c3"+ + "\3\2\2\2\u00c2\u00c0\3\2\2\2\u00c3\u00c4\7$\2\2\u00c4B\3\2\2\2\u00c5\u00c9"+ + "\7%\2\2\u00c6\u00c8\n\6\2\2\u00c7\u00c6\3\2\2\2\u00c8\u00cb\3\2\2\2\u00c9"+ + "\u00c7\3\2\2\2\u00c9\u00ca\3\2\2\2\u00ca\u00cc\3\2\2\2\u00cb\u00c9\3\2"+ + "\2\2\u00cc\u00cd\b\"\2\2\u00cdD\3\2\2\2\u00ce\u00cf\t\7\2\2\u00cf\u00d0"+ + "\3\2\2\2\u00d0\u00d1\b#\2\2\u00d1F\3\2\2\2\u00d2\u00d3\13\2\2\2\u00d3"+ + "H\3\2\2\2\f\2\u009e\u00a4\u00a9\u00af\u00b6\u00b8\u00be\u00c0\u00c9\3"+ + "\b\2\2"; + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/calculatorLexer.tokens b/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/calculatorLexer.tokens new file mode 100644 index 0000000..d69c013 --- /dev/null +++ b/src/main/antlr4/de/hsrm/compiler/Klang/.antlr/calculatorLexer.tokens @@ -0,0 +1,63 @@ +OR=1 +AND=2 +EQ=3 +NEQ=4 +GT=5 +LT=6 +GTEQ=7 +LTEQ=8 +PLUS=9 +MINUS=10 +MULT=11 +DIV=12 +MOD=13 +POW=14 +NOT=15 +SCOL=16 +ASSIGN=17 +OPAR=18 +CPAR=19 +OBRACE=20 +CBRACE=21 +TRUE=22 +FALSE=23 +NIL=24 +IF=25 +ELSE=26 +WHILE=27 +LOG=28 +ID=29 +INT=30 +FLOAT=31 +STRING=32 +COMMENT=33 +SPACE=34 +OTHER=35 +'||'=1 +'&&'=2 +'=='=3 +'!='=4 +'>'=5 +'<'=6 +'>='=7 +'<='=8 +'+'=9 +'-'=10 +'*'=11 +'/'=12 +'%'=13 +'^'=14 +'!'=15 +';'=16 +'='=17 +'('=18 +')'=19 +'{'=20 +'}'=21 +'true'=22 +'false'=23 +'nil'=24 +'if'=25 +'else'=26 +'while'=27 +'log'=28 diff --git a/src/main/antlr4/de/hsrm/compiler/Klang/Klang.g4 b/src/main/antlr4/de/hsrm/compiler/Klang/Klang.g4 new file mode 100644 index 0000000..68d4247 --- /dev/null +++ b/src/main/antlr4/de/hsrm/compiler/Klang/Klang.g4 @@ -0,0 +1,124 @@ +grammar Klang; + +parse + : block EOF + ; + +block + : stat* + ; + +stat + : assignment + | if_stat + | while_stat + | log + | OTHER {System.err.println("unknown char: " + $OTHER.text);} + ; + +assignment + : ID ASSIGN expr SCOL + ; + +if_stat + : IF condition_block (ELSE IF condition_block)* (ELSE stat_block)? + ; + +condition_block + : expr stat_block + ; + +stat_block + : OBRACE block CBRACE + | stat + ; + +while_stat + : WHILE expr stat_block + ; + +log + : LOG expr SCOL + ; + +expr + : expr POW expr #powExpr + | MINUS expr #unaryMinusExpr + | NOT expr #notExpr + | expr op=(MULT | DIV | MOD) expr #multiplicationExpr + | expr op=(PLUS | MINUS) expr #additiveExpr + | expr op=(LTEQ | GTEQ | LT | GT) expr #relationalExpr + | expr op=(EQ | NEQ) expr #equalityExpr + | expr AND expr #andExpr + | expr OR expr #orExpr + | atom #atomExpr + ; + +atom + : OPAR expr CPAR #parExpr + | (INT | FLOAT) #numberAtom + | (TRUE | FALSE) #booleanAtom + | ID #idAtom + | STRING #stringAtom + | NIL #nilAtom + ; + +OR : '||'; +AND : '&&'; +EQ : '=='; +NEQ : '!='; +GT : '>'; +LT : '<'; +GTEQ : '>='; +LTEQ : '<='; +PLUS : '+'; +MINUS : '-'; +MULT : '*'; +DIV : '/'; +MOD : '%'; +POW : '^'; +NOT : '!'; + +SCOL : ';'; +ASSIGN : '='; +OPAR : '('; +CPAR : ')'; +OBRACE : '{'; +CBRACE : '}'; + +TRUE : 'true'; +FALSE : 'false'; +NIL : 'nil'; +IF : 'if'; +ELSE : 'else'; +WHILE : 'while'; +LOG : 'log'; + +ID + : [a-zA-Z_] [a-zA-Z_0-9]* + ; + +INT + : [0-9]+ + ; + +FLOAT + : [0-9]+ '.' [0-9]* + | '.' [0-9]+ + ; + +STRING + : '"' (~["\r\n] | '""')* '"' + ; + +COMMENT + : '#' ~[\r\n]* -> skip + ; + +SPACE + : [ \t\r\n] -> skip + ; + +OTHER + : . + ; \ 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 new file mode 100644 index 0000000..a25a865 --- /dev/null +++ b/src/main/java/de/hsrm/compiler/Klang/Klang.java @@ -0,0 +1,24 @@ +package de.hsrm.compiler.Klang; + +// import ANTLR's runtime libraries +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.tree.*; + +public class Klang { + public static void main(String[] args) throws Exception { + // create a CharStream that reads from standard input + ANTLRInputStream input = new ANTLRInputStream(System.in); + + // create a lexer that feeds off of input CharStream + KlangLexer lexer = new KlangLexer(input); + + // create a buffer of tokens pulled from the lexer + CommonTokenStream tokens = new CommonTokenStream(lexer); + + // create a parser that feeds off the tokens buffer + KlangParser parser = new KlangParser(tokens); + + ParseTree tree = parser.parse(); // begin parsing at init rule + System.out.println(tree.toStringTree(parser)); // print LISP-style tree + } +} diff --git a/target/classes/Klang.tokens b/target/classes/Klang.tokens new file mode 100644 index 0000000..d69c013 --- /dev/null +++ b/target/classes/Klang.tokens @@ -0,0 +1,63 @@ +OR=1 +AND=2 +EQ=3 +NEQ=4 +GT=5 +LT=6 +GTEQ=7 +LTEQ=8 +PLUS=9 +MINUS=10 +MULT=11 +DIV=12 +MOD=13 +POW=14 +NOT=15 +SCOL=16 +ASSIGN=17 +OPAR=18 +CPAR=19 +OBRACE=20 +CBRACE=21 +TRUE=22 +FALSE=23 +NIL=24 +IF=25 +ELSE=26 +WHILE=27 +LOG=28 +ID=29 +INT=30 +FLOAT=31 +STRING=32 +COMMENT=33 +SPACE=34 +OTHER=35 +'||'=1 +'&&'=2 +'=='=3 +'!='=4 +'>'=5 +'<'=6 +'>='=7 +'<='=8 +'+'=9 +'-'=10 +'*'=11 +'/'=12 +'%'=13 +'^'=14 +'!'=15 +';'=16 +'='=17 +'('=18 +')'=19 +'{'=20 +'}'=21 +'true'=22 +'false'=23 +'nil'=24 +'if'=25 +'else'=26 +'while'=27 +'log'=28 diff --git a/target/classes/KlangLexer.tokens b/target/classes/KlangLexer.tokens new file mode 100644 index 0000000..d69c013 --- /dev/null +++ b/target/classes/KlangLexer.tokens @@ -0,0 +1,63 @@ +OR=1 +AND=2 +EQ=3 +NEQ=4 +GT=5 +LT=6 +GTEQ=7 +LTEQ=8 +PLUS=9 +MINUS=10 +MULT=11 +DIV=12 +MOD=13 +POW=14 +NOT=15 +SCOL=16 +ASSIGN=17 +OPAR=18 +CPAR=19 +OBRACE=20 +CBRACE=21 +TRUE=22 +FALSE=23 +NIL=24 +IF=25 +ELSE=26 +WHILE=27 +LOG=28 +ID=29 +INT=30 +FLOAT=31 +STRING=32 +COMMENT=33 +SPACE=34 +OTHER=35 +'||'=1 +'&&'=2 +'=='=3 +'!='=4 +'>'=5 +'<'=6 +'>='=7 +'<='=8 +'+'=9 +'-'=10 +'*'=11 +'/'=12 +'%'=13 +'^'=14 +'!'=15 +';'=16 +'='=17 +'('=18 +')'=19 +'{'=20 +'}'=21 +'true'=22 +'false'=23 +'nil'=24 +'if'=25 +'else'=26 +'while'=27 +'log'=28 diff --git a/target/classes/de/hsrm/compiler/Klang/Klang.class b/target/classes/de/hsrm/compiler/Klang/Klang.class new file mode 100644 index 0000000000000000000000000000000000000000..c768ae7934220d19ee326ce20d84ce26ac59129d GIT binary patch literal 1641 zcma)7Yg5xe6g^v-#->4#cNI{eK+7v4_@aPf1w}$Z=rGgqQz$zn*d(1aW$GPpdxmQY`(iTe9hwz}LH&ShhZWb-3XWAaOWf5qN`_qw+BA8!4AW-lNq*6f zjAKLd7k53^w2Nt<)o_dCr?bH_gJjy}s>d*{J8n@kY_H^M$Mc$7wLR0~+DbO3@2m?5 zIpl^#bW(|*aF=1EXY7b2K8jvU*bBWzTf%ii{<)cb%$R;A@mxGW^`mh(xM*fDUqdr^LuuR`CXJ z#ikX8p=LGnb0dK77{(fUzmXMz&M*u&a~tGCAm6K4#kz`5*pQ*C*hE&wmWpkBX6SF` zgQ2~yp{@NRULb9B)~7C0cMZ7vt>STuAtZFz9jMTBwClR*OEz2(3QgQ5jzhz}P=$bv z-U18M;}_8vd~;l&W8qKobtYqnLG_cDacqyD(23P`+vaYjWK=4gv^$qf-9d?ot3F6) zEsnTY^>l30jjUgzk%oo8E>;S}bAp>Jw97DiO9q0{r&Bi{fPdAaa$MnOkjo;PlBm~3 zUH*SIv}QU92(O(OLujK%Q~W|;q{0qrJIT_hXVgm*HL&mgau>A`e^N#_jnx2v9`uqG zMIYkiL~K4q3n78!bA<9_)DYIsA>}7)h-{ui&QH~FFMEz?e!2!_Asi2%A+{i$LXAuD z@DH?xaEAMJ)EAeM28VTQPuh+Rap95CV`9+4HJ&p|)o7~v-{h{qJ! v03G%T{aa{nFNQIKFnMT40;BYa7^7Wb!jBU&N#hVw_(;7%b8B?E4~YH+S+BFx literal 0 HcmV?d00001 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangBaseListener.class b/target/classes/de/hsrm/compiler/Klang/KlangBaseListener.class new file mode 100644 index 0000000000000000000000000000000000000000..eee285df4ae06429e622cc2024eebceb70d424a9 GIT binary patch literal 10187 zcmb7}S6m!L9LN7dFdGOVAtY$*MxvO)MIc3pC?O=00KpKk8y8q%`)*Vd^W=40}Y0FJ*Nt@2F|GD1GT3vS5vmDDcpj5!To#wciQU$gS?6d|w17-@S zoysGO7cg_3?bu$cfEjfs^b06$&kR}RFau^+fB~}v%1NTjscyB&x7Z!eWR;1q?y8WvVs$Jkt}<$Z8B(Rwr1=X$3t< zz%1Daew}kw{cYK-J?xC)cL67{C~^@x%W4iwVW@ygNtDYFP@%XwFWQk+O|zN>6%^Nr z8aYIHaRO#boT%~ziUnPVY|qX(I|lp_)5>DX3)9(JIBW^=0;(lrUM@~t#VY$Y#N_p7 zED<9Ttx7>_EiR_$wwlkLXkxphcNjyp? zYv#00@o;?O$cBn%3OHDCc8{e!dso^XH06Z!S=(5wg^@aMD~C7PLO_jVE-WBmj^b|f zGNV528WwF>UT19LFy;r!1r^D{WZC<2+;4S#npG?szqHQMz+s7p$qfLKgf&sM}y)z6>E;>#RYRTs@$KW+pM%2 z^=8^f;?2=`lupK)qs7C6IU3It;P+|AC1YmV_9my(r+SRe$m-K#!9kzuSz({HIYZOw z)1bIc#p=_%xS&s?%Kdi$Zb+xY5)_{{OI}nM~R;9UrWjwM1wkI@ub|3Q;6h?qYE1(sIIev~$SE;;o~8X`P6*j>f}+ zbu_Fw-1oV*Gd!KX>+`}0orl$Tg`v^DFZ2xOT92Lfp?K?OP+TWs&9%I^V0=fFSE_N; zF>bk&+s5RXc3E9l#vM+Xj+b^*<4q}d%<=3|E2Ykdt}LS?unWt#J&qHtqB-Ms*7mkr z?x^jU>Ewz%*RoP!u^v2=tJ7|&gWvFapg3${40eO6ufugSu5`iJse+?&s=zh<_=mLaYv8)9(7ZppY-eH^#t~Rr-K(3?P)WcwXz1>fZN=u?h5>tuPyR=HsB@! zi|JTA7!{4a74Hk^=-T*ljV&2ZFkm-c6>xl_6Lm0z@U@sb-v((0+=a&uj$5#AjJ)Q` z=_Fqnk<%UlDTb4N6@k5@KN@hqfK?oi+)5k)&DU1Nh-ojrK^T5mUO!n!o;AfY40wb$ ziuAXBWLjM$)qs5hRx(IqOE6CJ*s}po^2S*Fx&g;nJi&lx1gv1ti^JTG7! zBfjvQ61CEz#5@CD;{D3_VvN5so?yVMOdtPz9HCXlPqGHQ!JCn}9YthSRgh-D+q{tw zJJjGvh&>zd9`CosH)PmG@dN`ts>TV9$0Kl0ive#;R# zE-adEz%M+;+&x$1SXGb)#{k}^j-|W%!gr6{rU-eILr-#4jaKfuA!~ zVkOMM?-hOlsD!!rgj;o}!cQ5z3ja!ET7KXH62siw45t2so0WSes~Zl%hDAwrC|Rj)BD##fC(S zV--a$ZLyiKSOUjU6upTS$193D+M=JZI02SY6z3&cEK?NAX^R2EVg=Mw6eEci{>reD zwr~iG6QO~k@DeQ=Ra-RC7MBqgt6()naZRFyTr+W%r!8(GEKY)Eieh)7MT??XM_cS6 zEKY`2iehh~#VLy7RN7)6VbKQbDT-$jE!q{u2HN5!!lDB1<^Wg%D;@?Dz9g5;Y+TuUL!h`{WLX;+2 z3@VBt+M=AWu;3z!VqT)fu%Z~DEoul08+K9@hbLNGtSHj7#bUx@6da18F3}>RD0a~n z^@PPG;8GM#i56K!;n5b&gvA()Qxt897MCiD3EE;4VKE7pQ54+?7MH^nisDMRin8cS zw742WOW+!HF1!}5Lp=bC;Ci?bZpIViEvUDl-i~?)>Yb=}quzshFY0}$51>AX`Vi{F zsE?vPhWa?_6R1z2K8^Y;>T{?spuULuGU_X+uc5w<`X=gIsPCY@i~2t52dE#RevJAF h>Zhomqke(<73$Zh-=cnp`UC0#)Spm)M*S7a{s(+NVbK5p literal 0 HcmV?d00001 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangLexer.class b/target/classes/de/hsrm/compiler/Klang/KlangLexer.class new file mode 100644 index 0000000000000000000000000000000000000000..69868fc1cdecfba0c9ca1b017b0c23628ccde58a GIT binary patch literal 7318 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 NVO&OxLWgk;vHywa%sBu6 literal 0 HcmV?d00001 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$AndExprContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$AndExprContext.class new file mode 100644 index 0000000000000000000000000000000000000000..eff5b740b14ff0c2085f3396ebda112b83b6a4c4 GIT binary patch literal 1771 zcmb7E*;3O`82(OE=oYrBpe)K#vF5MZ2P# zhq^H2+*|ZJCq{!|bjLb=O`N;7&ATYy7$_Q%PRB^N zWH&{H?^7HY#@#%0lCUO2N$Kq)GhH{TVgt`qY~ne?;_XlsFYr>u9A2r&;vqxqCd}XC zP?5uyiafR$(l-HmW}3>X%H6N`3WZ8zDc-3;w;bGp$@Zwq(aSi7+;tdbxn~eNR^*v` zsuaW^@s;gUZZWLH3;#p*im(!Q6H&42ANPe_qf&RX!3EZXGJ$KKPOLL!ENwW=w za6p7;X4+8B!LCwGyHt~%Z5|Z?@Bq_9!Z3qbk1S1O9Zy3_8$(x#W_x&Il)Hx>JWmqR zOE~!z!^u<|fiJG(e_u7%WhH!JC5%UyCk{r3wdiq`Jg#W!CxV|ak~&8)`3)f-B&Xt@ zR9LDh^O#T;x_F}(yiqJ6MtsXIf=$ry@ofU(>jE(nSnf~2hbQhA$8m@HDEW)PPko4_ I{g_1P59g<-E&u=k literal 0 HcmV?d00001 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$AssignmentContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$AssignmentContext.class new file mode 100644 index 0000000000000000000000000000000000000000..b5c022d2d95c89c3d8b44781883dcae83951595b GIT binary patch literal 1788 zcmb7ETTc@~7(LTsw>O}z3W(gP&S z3LYxhUzL`S`6uDt(H-@8r*V9w&n1S!;sW0i;I$}w_2Q@ zY?qI@deRaNwPrV(hRKEc+SIMOx4zRwi;L_44GD@ot5mdC2c(R5nt~zmf=t)T2E}#* z;y#Rwu~K?lCgy#^GMuLjE4kqOc&gsFP44^K)AEOeYwCg`Ww{G+4R~+4; zY%+~9ROgN)*Q{gSVF>5)bQvRNF61@C`XvtBy1C-2RKc>*ayX@WPil*r{)u5VIH*g& zB$1@mPT%NFzqV1{FlLBsK0P!`k&Pvwg)% zVhh_z+`}Y8_A2N_5|Vg~og{X#!?1Z3z|%k2aSTg=v*Nw)>jla+)vs!wa!YoQrv1l| zjrf)Cw()+hEHkOP6XDJbwOVlf282*UkGf6Mn;wSU+)c)!hq!2P*+V0;@V!r%r+-YG z{yabwG=E6aI!vbxglR{&h17KTD?*=XAHoQ&5qZzXF-m*+S|U@pO_t$K5I!A*p9sX? z#W=A@|69KQL?II<{LneV|4NwbqeyfmOaw_t1xc9d!}mgUi1~k!D$!ZOlV-wPmn~Eb%>X5iCvHrRy9- g2OTVvgWSy=gs|+!nL|cuCp|H8nx<8D*cf7e0WDjQf&c&j literal 0 HcmV?d00001 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$AtomContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$AtomContext.class new file mode 100644 index 0000000000000000000000000000000000000000..a359874f694246c5abf6705e6a7eb2d903ed7553 GIT binary patch literal 934 zcmb7C%Wl&^6g^YNcI&z{6i9g#`T(IkphhaYqDm-IC5s3lin5Zi@u};J>*YZ{MLab9o0Mv1vNbG6@H)uD*P28$zpHj9nryhKwR8o4j<@}t{h2^-Svx*wjv5F$f z7V5UAa4z+f;9qlK_X50$+ZFhTUPZd$wL4SPF43i%-*BBjGloXF>%xtPJLHQ|_wG#Y PJzS$4P{*Zb4J-cub}G=j literal 0 HcmV?d00001 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$AtomExprContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$AtomExprContext.class new file mode 100644 index 0000000000000000000000000000000000000000..208c2245f6bf6f1789fd37f504dfe24f4a31ba79 GIT binary patch literal 1409 zcmb7D+iuf95IyVM6Q^kcg!`o>KrS>+n<5@kRYDP!DhxuT>bsk+QiEehYo`jI!WSSU zklL3bctGWqk3!7aPGkgX)0esI&YUwlGyCiJ_a6Y-Xs588MH=_B$e<#v2Pr(vA%RCy zR8y#>P-lo6o-<^~JtNh1Y>!Vo26fxEx#(Jk>vET2ty+Exef^ORU)p)qa#g4IO(Md^n`i8Y@2vhpuVca_~iK!qlo=-+% zR?7Ok%#kc&Pi~mD>21=(BIgY4>O63flum7zA=dXM46Tc%GGsV4RJ<9>XSb@lBL0CQGjh_NbP*o0fdVwYS;~DzrRJ^}@I{TJV(E`g|IOP7$NhNnrFNM}f2LFNw;{$eBm literal 0 HcmV?d00001 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$BlockContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$BlockContext.class new file mode 100644 index 0000000000000000000000000000000000000000..0f2da33b7c43e9c4dc59fb4a8f578559daa0cfda GIT binary patch literal 1688 zcmb7ETTc@~7(KJCU0Rmgs(1kvp<*w-YB`0OoO5M_xxEgEWeAn93l7X&p1Y zNWqfBtd2PyHyDyZXon1DE?;?W@7Pu|bX=?A1YwEJR{RalFi>$k{-oJh=VH}fcWKA0 z_%+*IvxOtq@n$mIbOHwBzU$YvR(vnyyF_f1J&%hO*A4$R8Y1z0?hV8%JrG49w@s`TxZ+Fo(V} zLu$$KoN$?8Dp&DE-Lk#V71qvzC7NF7G`JOc^{nagSa_+NUnAVMEx1P^>Kew-=Xg8* zmgCi>3lt8c&O=FD_BQw~Ln4T9yeYwOm}wZ z2r$VbS+%Xl_I6wnJ$%}{`ea30s}NRqAM80XhG;r@l7XJX20oC1kKGy2aGh*v$ibA_X_h9VLo~{` HoJIN%+TfCb literal 0 HcmV?d00001 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$BooleanAtomContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$BooleanAtomContext.class new file mode 100644 index 0000000000000000000000000000000000000000..be8756eed55f22fe7398e432e97fec48338cd758 GIT binary patch literal 1392 zcmb7DT~8B16g|_=ZM&7Wmg2X9sM{^DC>j$nB-ltoti;gD`%orjWk1MtO7N%nFZ2bY z4@O`8QO3L5)vTeG_GRw9Gjq`T|``tGsq2x+}?xYrx5Z@BCWxpRiwi*_aZ~Ft;6|RF4kU$iH43UmUJwm#;`aJ^QR{rE3kB| z!eV$b4)EUrGptO2i;a&#>j~BIkA%mtWNdFw@w$^nFng`*AHUy{zDrt#(~LbkhG!GK zrx+x9@!@!9f|$pLDH$wy~lY8r; i1ljWms+3@MvIGg-4m-YsGT92%r%}=pO)E!s7P;RG|3xPN literal 0 HcmV?d00001 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$Condition_blockContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$Condition_blockContext.class new file mode 100644 index 0000000000000000000000000000000000000000..0a7c4bd3b2e2d480a60cf7c452aff9a5ad3a2cb9 GIT binary patch literal 1717 zcmbtUTTc^F5dLOcyKO0#7DPok;a^g z`2i%b;4PYpMHRORanWf>!oUMI8@A<&j!Vc?EKA4@Q+FKU5SH?VYF%i1j%;c*yV){K zA+?95ZZ(4Si7p)>XO2LW8F<643&L>Ku*Bnbb63c1eb?lZT-C1W=8i56&kqmd?w-M! z#+gFha1Gmfwrkq8{fJSy9|FCDnM>MnbvHmHWVa$Gg1^^aga9qJdFMHgQX6O;-dlz*=FjHh|wf#qW zD;#W6bPS&#Phrb$%bM6^`4C2Y{RF*Pc&;Dlgz2+2Mp!ue(orF1u!Lp8N*_^O!_D9# zE)ix&VqXzEgz}kP z1tZ~A&`V@_p9!uZhcWgD=W(GMA|61*k3+ob3Bj`tAu7xw#;|I!H2DqZzVJ3+kY)>d zjRd{%A*OvuowrnvH zXGX5{3yBvPEFB_I{0>!t$1Ub}C*bxDS$glIjRz4Cw;ZN%gYjnk2+H#I=2;1n-3dN& hf=~S=P%!J)c?*MVCzz+#j|`7K#deg}INNcg{sQoZszU$( literal 0 HcmV?d00001 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$EqualityExprContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$EqualityExprContext.class new file mode 100644 index 0000000000000000000000000000000000000000..a72819727834020409f9bc78e3d82bc3381b6371 GIT binary patch literal 1913 zcmb7ETT|0O7(Lro(x&0kpm+h5o7xKy5Ja>HD8fv~%BV2Bhq6;5X;QZ-Q+|s7LSO3W zgM+XBD93M;D7SEX$YwX$bI$jDd%pes=f_U~(|Dy|Ohp>wa+pwH$oHfQhABCFtYA8g zBxdCBM8PaW%&jvFlwDCZOvkf@u{UFgrsG*PZfv-_+$l07c&jcL^lYyD(cCkQrf1nk z*=l(5-?F>S8M@1s!`GU%EiN|9Et|gRWw&D5o2IbjI{cXMcB}?N@5-m9XlUbgI01JE|zVx(crXcuDs2Sorb6x6}MKmY%Yv9w&_%Z@tr9eT#QB#QBbLMtLm6u zQ&1e~V;Zkd|#_Yt}>mBzep7fZh u5AlfjvOa=kXqvl7Ks_y>lR)p~1Y*eh85eMa-a5sXMgrH7BIyKfA@vtAX~eJq literal 0 HcmV?d00001 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$ExprContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$ExprContext.class new file mode 100644 index 0000000000000000000000000000000000000000..6b9d04a99b793ffe5af078828dd6800b1a48f97e GIT binary patch literal 934 zcmb7C%Wl&^6g^|dPUE^XEs*jk^Z}~!fEuanin@uYWDy}mQT9`3l)AOY)_4+ye`3Qb z5(_?nk3!sutv0&`TfTShy>pJw8T-%QU%vsI;8h*F9$dUI;iUZNh120)MBPj!_JVQ*3U+QVRH~m@p+P73iXX& zCe+y;WD!q>T*aoYnl*hD7YyqkXSu3q82nI5q526g3PHnngOLcX3Y7*?mgaFHRPZU` za$Lqz#_J`5QxczZC8TCpSv$ioLO%sD@LZpom()TT#(6xIZheLxu#ebnM zHTq!m)gNV?y=Wks7GCDe%$fP-%r|p>{`&e2z&@HOY-OOLltCKXzV;}Eaux|Z_QjJF zo~BS?h_zoa)GF1ECx(XUN?RD0&kQkfrR8u#3eJrl7mnqc_K7#(2MkJ!PKK3^ zbH+u_JhRE8cf7u7pPIt*?Z~Ofb8F0yYY$#Z&uMwC@Jl|oOY$zzc@BW5!EW6S~7e{rt3{a zpC1vE4Ecb{ki^D2^U`G4zL{k|GqQ-;O@ zDKnE}P={RhybJC!>{QzACDu4z@yD+Az0vz4;W@NL!63sWV|c#M7R|4u518?X5V}#K zUzeue2q>T%WJzjd?IBJYpw{xm_!VLwNsl2%GU@x3b=)Fd3uCYXoh(L^SS9J_A5wIT z&P?qy;g*+fAp&fw~Qadq6oeZt!eGFXAs;!Ooo{}$My0;RhwO9isp&! JG@W;l{tfybGz$O# literal 0 HcmV?d00001 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$If_statContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$If_statContext.class new file mode 100644 index 0000000000000000000000000000000000000000..26b38373f3939dd9b521e1cb05b9ecd0c9904a50 GIT binary patch literal 2503 zcmbVOU31e$6g_L3$R7%E3{6X*ZGZr_0|=V%RlA`yO+a8ioyiPzrWwWAnr-A&MwT=A zEBpr@+Lv_NhYo%1kLvX9N)g7EiQ9+lN}GGnJ@?*oSN{8-KmG);h(`t%^DwcbmKz3c zs{NK)ZX39h$0WWsP%9vZx>~+5ux#KiL&{!bD3vRXpPfC&>IK5J8loH27&0r~HfNY> z2+5!HI$PXdceY$QDK)&7<8C;$EWqSuGG)*GJRwj3F_ zzO}bx`8^qk4z~iIb8DUZ9U&d}3FT5-Ca8t7T^ZM&feHGvsR%7kZi_&8a&yb|T00Cg zlwto#obb~Geq-dE45ukCE6V>Lf;zd{Xs$BkRbvkMPdDS2nEGv^K1Q4&Pb%v~T}Tlu zGh8kwS2t|!i=NA)a5cNKL4LcA&n4+(Y&V8UA@{r;A=`=wDZ*^?Kmprwo9{EE%N6Qa zj!?O;jv20v0M`o9#MVhGO7@(zT2s8TZuG`*B{`uH&P0!BwRRpmyU}E1`M%Knr~^%} z=ePJ8>7Jpeg&)@Cs+vBAb4OR-#J9L-;ybJ`+&S8OK3P{LzQ?MGHQZ-d8Utmhdy}sOKbvb#I4Dx@b)&H_PKp?7)Sp z1YS_8jLvbEJ`)#9lGq<*2t6sBpNP{-^(O7v`oCOCl^ zdizw{e5PSe(W+qTNRuCsC79C(NDt!J8fPZ7iEzjovp7u%3}+Gul`;o7HVD)hN$3j= z^JPTnZbYb1EoF$%#5-gLp`P|}D#V-$F{il%PQ}@TB0V3;Nfl`h2}PPsDpIqLP&Ov? zzDQ?rKFaO}Wv9AE*%@h_oiUi*Mjxre>}Z;CA%d_8B25rRb>Yl!$o@)?VdL|vN$e#i z*eeY&7n;R<3|zz|9o;~g+NbnWK{bNCOuJ&1GTz3Bp_G2;Bb18J=wl7#Q6$?YAt?!! z7XCu+4JH@fAy@q!`4kklv=(K^?MFGxNL_RncIXg`PCzn4QhegFUf literal 0 HcmV?d00001 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$LogContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$LogContext.class new file mode 100644 index 0000000000000000000000000000000000000000..b18b0eaa8e3d859f37450110ce52377629a50c7f GIT binary patch literal 1675 zcmb7E+fvg|6kR95rZ=Ee#TzPO#a@750nsVyXh)bz1jlxG59LgWq)F#AW%?`rgAe+m zqYnfQp5s|a!h;6-QyL8kt)p$E3QO+8!x3-a>M|q^w^el=kM})>bj@+NsM=~Vd+ zE82R~ZFel23w_fzomMcuF-4b)+%aBC;QfwZNWG+Kz*?q9oP#KWkxcdKw!sivvmDEN z$}pE7ZbYEsZO`Umyh^RGL%5D9xI<4mH;iG_at_@C%W2g;(<9qhjT~ulPmI9R zr{nGcF zgKBJe;{Fjrl^pl0h1!InoIg(^L^?{AizahSXShRuj3oU>01eb*NYgkMaCoa);f zh+D^mvf;B$28e;UEM{<*_;NmiP0;e*Spnkz26#mQHqRG8!L0wz`^ZY|q$fc^Cuo!< Hav6!=3DbMc literal 0 HcmV?d00001 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$MultiplicationExprContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$MultiplicationExprContext.class new file mode 100644 index 0000000000000000000000000000000000000000..1a1947862690250670bb7ba36072dbadc26e82ff GIT binary patch literal 2023 zcmb7ETTc@~7(KJCw6u#rRS>}o7qu5)xp^%Xu}IR`q7meMDHB-P?l#jcslUU-h$foo zAJCT?eK7dyk1~Fv7)b;^d*+Ji@Le03q!8Gk3nbCs4(;us-|O< zO{1tghHX71`mAj^yyh^dIm_ZAYwDE>r>&X%I@dNUqNEk=QrR%M(4LvPwb2+~=%T{K z$dPm;uzlIsuym&?NK^Dcq=lCA%$_D#6Gu8j0jA@*#946+%%CSn`76B2uP`J@i*F4a z!Kn~jlnhHZmnhd1F|d$ZrLpjQfuU{IunZ?7Wt>$+LXs4n8pFg{p_Eom^%5_uveXmt zW3;;^TA@=&!*D8XTE-2V-il%DOkjqNWk)Y=74)*_sW7h@PD4m!*{+HrUnH9_bh$oh zIAmPNu*JiE#%`kr|zqcayWXeE2(mJhMsDx3vGC>dBN9dqgm}ckE z2?brWnxwb}{S=8As0e_53=j#!Rb2DPrie^x3MadwfjZ6|W_sTwD(o>aT=&DPe)t_< z{0%>RhadifFMbe1p8gD-Q6?jj{DHP)s*cciS~aKjV^c07`?-i<7$d~Na1*yYu4Rua zmimM64mwi1l$M`pS0Fh9ZmA+Nn(_(V%I7BD*gkIzw-G14go|L^G)k(N3X*xQzDyyw2VX literal 0 HcmV?d00001 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$NilAtomContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$NilAtomContext.class new file mode 100644 index 0000000000000000000000000000000000000000..fe6ed1ea6297049de6a6587d372fd5e77fbd12fd GIT binary patch literal 1295 zcmb7DTW=Ck5dID6{QmIB$)5MT8Aw^<@^nFWD=-R!I!=b^S;=jW?zcE~}wxD7?&V&wMlU&Fqh#U%mpUqn5(G3{3h9(%*~Ub zaLu0Y4s3@D^T4sZ{zSgE#E^^PMGR^s`NH;WxyO*bfL%A{L7Ph1EgcdSJvnBmEt<-Z z<}{OdGYUAU88e6s$LJEJEqf?AjUU!koycR@S}2(z*O6B5^p!P;$X5B-mXk&@9e*Tx ze4nUf$cJ1`SggLa&MbzF%lXz&LRrHVR5Wa2g`qer=l4t+wouhzqROy6E8)LOWvI@P zGqpMfwa;bOKjj|7rqOIJaLI8a*t^>E2k-WU@6u6*n~ctk;ptp=^w(7eklA1lQ5@^^ z^QGyh1Qal2kR_>+_ZV@q0JWT7i=QL*f$SJ^B$Gj0sbPt1ZSn@o(8*)8jTMqX{vN%K zkusV4aA<%oQ;u>Kvtl@fu)rqk5%6BB*BUkx`MENt4F$9?L zu&YdfqwJudJek7P|KRGlft!SPE6iX8GH+j2AoXv7XH?+%d<9~-6Ha^=1=2e8r&7^8 Kv7IJ;73p8zt~a*; literal 0 HcmV?d00001 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$NotExprContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$NotExprContext.class new file mode 100644 index 0000000000000000000000000000000000000000..4453017692de134055329e3b70ef55868eb67fe0 GIT binary patch literal 1512 zcmb7^T~pIQ6o%hTfV64&iVFCxST&?T_`ZSRhLIV@S{>b!7Rh<5)9K=?WR2#!4>Kmu40T@rC-kU1=rR| z-**E2JfhiwD4Zh3F_9tGDWFCu)BS>ew{(nw&ot{i#OstW*4~v7Xg{vw1~C|J;#S7m z&RBNo2aJyxESQjB%L3&84)C4= beCRHKM(I&Eo`g-kO(THC)6(6#%~TrLg%6#s?3 z)aZlJSAUdoc3A~eY~khJncX>OX3ot0`RnU90GoJ}#Ig_oR7g+fu?xzvQgW!0W zL?MY)2Bp5&Vkj0?8@}k6mM0xyo^F|<=Skb;rWBl;EiPQ!vz$HukZ&`nyL2U$PCqZ8`gvumeB(sLCU|%a9pFR;BOm`kv%{$zaqykBeQ$>UKGWJZT(q z^QbFav+cVlw!?+_(y_eG;Cy3=E*JT8G*nQ$)_7f|E)qMoXUhsh`kyqLg-M7Yx^hfYr=PF$-`j|myY4-MB6k( zMB5(Db~YHu@E4ZpS*GZ@f?gzpjx?PHd5@ux1!%?jMdb{!k7UO%LuVrRuI^x#Y-13E zIb_LWxH1mEG!Fl4EPeqwVhQqBC|itfz4#eQv2+IY6M3T*R6>T_AS$YW;&BbviG$$= zZbn?qh$~zAf%pf^l)fWg{DMRb0jCmnr3XA}6&dyU2ygZ;Zx*+3oA~a82$msp@v;QT h^9f#1g4$#WVps}0zKaaqS*lN?r1Lbb6x~;m`VH$oL^A*Y literal 0 HcmV?d00001 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$OrExprContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$OrExprContext.class new file mode 100644 index 0000000000000000000000000000000000000000..ad94fe9e5a849c60cb1d35537c781c4c7fd425da GIT binary patch literal 1764 zcmb7E+fvg&82&b`v`xdQDjrZ&KrJm0j-CqT0%fLS1&4OH4`ruB(xkIZnffTcg>GOBH7z}F*4zxeTXl9gLx0}1`Fg#w%|+4JwrC}hcS?q} zWe8KwgT=7BYt|TgH^d8~Ty<=hH(UlSXWLw?T1KtL>GfQGhwHmFQPE3IrD|GS=r1k9 zF8l3kL)5q!Z=oO~v4UB)4Yw{xJKnjuSH);hlhN-T=6pMmul=fa3)gUcV-Y{L?h+1&! zqQuuI3=9Ka8vGng%S2LiJ4j5^g=$#9qJ~F!%rJT}RKpWI)o>fnG-NQsFn%89?{R2Y z!m@@emgykR1GGytl~kE~A0Jc+)x}uSuRpIAylTm`smQ)o9K+IC7$v!F4t*!`$OBc% zVU+la&K|cJCX>1UA=@Q5l=K2oa;k6Fgj1oq^rGcgF2iC+xo)jEW(rKc@Hl7$|ZX|$bNkV#2 zQ=ib2N*^Hd!E^lYtG+f_QBSO>xP!aI!RW9?1Fk~Al}LX_^c{NB$B3rBAf`ZahP;zf zrJ8btLFHQ$Z{mbEfia8|-+d3k25I=;M}PKt6FUe2w1t-a3L`}F&-FJA%7;DwAQDpWj`VaD^Q3Jq4gD#;krAY(ip zCS=$$CK>W?HdnS7EOWFRihbJ&B2U;yv$kjik?V6i5}ex=E_^p|yp3>=FA`>zW`^Ff z8}N;Wzsp6%+4bneD2G+Y+i`>&@6*G4bl}z*dNv*LvRMo>5}2WTJ94Urubo<2J%u;js3k<*4jZD%*QhoOeMxazWtn*E961aRFZW!>6s8#_ zE{`l`s-sh1&*~V$oQ`>nFcdGs|8+vgGc4$Mjs=FPivVZ#R%aqJ1!qw9c~l7xdB8Ac zuCHI=LG=(a_PE_{OJ+It)J`5i@kcq%GsEG_Pa^c)Z9r=rnM2j~K&KsSv&w3~)RD?qXO4CxrT546sqH;sez1AVmC zTQTUzb=oo9z|9mtm*O?ckO-eYf%GrM&kTjurnq&Mgn_dp{LbK&Hhu^rsf1+`oFiGP z^$FLk(lNR|(k^p}JQ9Y%R#eJB@wkmU#KCYE_foFyl*=f6gZv)dr4z{3XDB(uoKj+p z8uR2O^yl*#UZc%x;6B++Pb@*Oep)`dEJ5M_1TrO1I!lm4F}d+$4A4AGI#o()ppX=2 LkYSEEkH^eeNE#Wy`IHts_6+(tR0t zq7jd8JlW=Qrki7(VPG@d=M1A&U-0ctYmdvCw-?Y!z8coOVAqqr+9!tt(Sc8)9L<#q zS?VWlH-zGvFJ5mklt^tnEY z!j7!-EwTW^nD#(in}tK~*khQ!*e49`#h3mvlY=EZcF5T)4zA+{!_5B({#3!iD%Ko4 z!CHS2bsnknW_y|^&b7-23?oVJQshRVs%qit_o3eqnWc9J&d`w;v&2^mn_MV2R?b8A zalUbO|z2LH96~Aa{sK zMb4LhAoCu>MZ_dp}qI4x%`3XnY;KoEJ@ aUjPFSDVBj*3@hzA2l|Vs?Kuj51-aj&%6}68 literal 0 HcmV?d00001 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$PowExprContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$PowExprContext.class new file mode 100644 index 0000000000000000000000000000000000000000..2167fc14a6414f1085de7a10d51104305a85cbcf GIT binary patch literal 1772 zcmb7E+fEZf82)Bk>1ioY6%QyXp!NVPP{cz^xj;!8D-zq_^-?BfWxLxQ-l%SIQPQ_e zT8S0xvTknb!jN-s(eLaSb%yAM{qhlUuG*Hvn+}7Tw=6DJO}$>{^gdnK=GsnORJF2Q ztr;d4+GA6JZy3-J(9yvt+@R;*#FA5zTnH&kEg+%rIDV^z!Z#z2*fb z$eV`KHWDt{4N>N66bFW3HxKP3%*s$wdV9!B$Bn93#2pn&xXUncI#k6y+*ffG4^(6@ z&MO7yk1e zli{u72K~4g{oQ~8>QxLvL6m0m)XViiGR9g^-q29NkhcxW7Yx%_ZEwK{&e80=yXS&S zbCFs}vjQLCfC$lywcy(aJ4*G{r5bH-^QZ`bOSnuV3}d+Bku4CJ^b|}EM|~}vIm+~{ z!&J~?Vide_51%6qX(pU}hk<0Og}_^yb$-_O4lm&YFJWB6b>d)jS`!{u(c_AxJ|XxT zgQpy0Oq V#c`aaK1Ti`@KYZmX+K60`U^9^uU7y7 literal 0 HcmV?d00001 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$RelationalExprContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$RelationalExprContext.class new file mode 100644 index 0000000000000000000000000000000000000000..64a5a7e281f3d7367533381ecaa754ca485c5f88 GIT binary patch literal 2067 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 literal 0 HcmV?d00001 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$StringAtomContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$StringAtomContext.class new file mode 100644 index 0000000000000000000000000000000000000000..15f7cff6bf8ed600dda1fe9fc6bdf72978f78982 GIT binary patch literal 1316 zcmb7D+int36kP`f7+`1tZM|z-sSej6wlOg^O$3A1j-3lR92)!-|3Y7C z^ug$>A7$J#jDl&T@Ukyw_FDU#wfFq|_4ONo9n=%pNI}JB3Q27F(c=UPX~eMYnkWKh>P#WYJR$G?K z+au?Mi>`TM(@DPN^-TNN6qcWdhl)J2h77rm6qeh6B|WF%xss11gVuCiE*iEu9C9jo z-a6&R*-$t}&vOQr&4uyCHr@WjzBR>=i^3Hex={S3C_|Fdv&7NJSE8=Zku!KnmxOIuL&-^jps#9&8AEj`Fhiyz&EEN;IS3_J`Ph<^ zi=;ZpaLa?) zuJ{9)e!?dGkxBYf0R;>xq{(WOJwuctKrLlAqL+w#q&R{M*|>kM6tF_EHmSiX@{}=} z%o@~P5iL`&sMD4!^sW!MfF)+bdV1Jz?4w}^w`HtvL6oscVE{(;yBWXj(W zD}6yc0-rM)+$!bsC^~XVafUblmp6~QxJP{V0|d)a_~5z*iK`7N)S$Xpg9si5FMfm^ S`8?fErKVX@J4yZ~lD`3^%s_Ym literal 0 HcmV?d00001 diff --git a/target/classes/de/hsrm/compiler/Klang/KlangParser$UnaryMinusExprContext.class b/target/classes/de/hsrm/compiler/Klang/KlangParser$UnaryMinusExprContext.class new file mode 100644 index 0000000000000000000000000000000000000000..e52b303403844a05b1bd3b45c772886fa5526235 GIT binary patch literal 1556 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 IjBU~X1KwXBfB*mh literal 0 HcmV?d00001 diff --git a/target/generated-sources/antlr4/Klang.tokens b/target/generated-sources/antlr4/Klang.tokens new file mode 100644 index 0000000..d69c013 --- /dev/null +++ b/target/generated-sources/antlr4/Klang.tokens @@ -0,0 +1,63 @@ +OR=1 +AND=2 +EQ=3 +NEQ=4 +GT=5 +LT=6 +GTEQ=7 +LTEQ=8 +PLUS=9 +MINUS=10 +MULT=11 +DIV=12 +MOD=13 +POW=14 +NOT=15 +SCOL=16 +ASSIGN=17 +OPAR=18 +CPAR=19 +OBRACE=20 +CBRACE=21 +TRUE=22 +FALSE=23 +NIL=24 +IF=25 +ELSE=26 +WHILE=27 +LOG=28 +ID=29 +INT=30 +FLOAT=31 +STRING=32 +COMMENT=33 +SPACE=34 +OTHER=35 +'||'=1 +'&&'=2 +'=='=3 +'!='=4 +'>'=5 +'<'=6 +'>='=7 +'<='=8 +'+'=9 +'-'=10 +'*'=11 +'/'=12 +'%'=13 +'^'=14 +'!'=15 +';'=16 +'='=17 +'('=18 +')'=19 +'{'=20 +'}'=21 +'true'=22 +'false'=23 +'nil'=24 +'if'=25 +'else'=26 +'while'=27 +'log'=28 diff --git a/target/generated-sources/antlr4/KlangLexer.tokens b/target/generated-sources/antlr4/KlangLexer.tokens new file mode 100644 index 0000000..d69c013 --- /dev/null +++ b/target/generated-sources/antlr4/KlangLexer.tokens @@ -0,0 +1,63 @@ +OR=1 +AND=2 +EQ=3 +NEQ=4 +GT=5 +LT=6 +GTEQ=7 +LTEQ=8 +PLUS=9 +MINUS=10 +MULT=11 +DIV=12 +MOD=13 +POW=14 +NOT=15 +SCOL=16 +ASSIGN=17 +OPAR=18 +CPAR=19 +OBRACE=20 +CBRACE=21 +TRUE=22 +FALSE=23 +NIL=24 +IF=25 +ELSE=26 +WHILE=27 +LOG=28 +ID=29 +INT=30 +FLOAT=31 +STRING=32 +COMMENT=33 +SPACE=34 +OTHER=35 +'||'=1 +'&&'=2 +'=='=3 +'!='=4 +'>'=5 +'<'=6 +'>='=7 +'<='=8 +'+'=9 +'-'=10 +'*'=11 +'/'=12 +'%'=13 +'^'=14 +'!'=15 +';'=16 +'='=17 +'('=18 +')'=19 +'{'=20 +'}'=21 +'true'=22 +'false'=23 +'nil'=24 +'if'=25 +'else'=26 +'while'=27 +'log'=28 diff --git a/target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangBaseListener.java b/target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangBaseListener.java new file mode 100644 index 0000000..6d0bec9 --- /dev/null +++ b/target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangBaseListener.java @@ -0,0 +1,340 @@ +// Generated from de/hsrm/compiler/Klang/Klang.g4 by ANTLR 4.5 +package de.hsrm.compiler.Klang; + +import org.antlr.v4.runtime.ParserRuleContext; +import org.antlr.v4.runtime.misc.NotNull; +import org.antlr.v4.runtime.tree.ErrorNode; +import org.antlr.v4.runtime.tree.TerminalNode; + +/** + * This class provides an empty implementation of {@link KlangListener}, + * which can be extended to create a listener which only needs to handle a subset + * of the available methods. + */ +public class KlangBaseListener implements KlangListener { + /** + * {@inheritDoc} + * + *

The 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/KlangLexer.java b/target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangLexer.java new file mode 100644 index 0000000..1c6ef82 --- /dev/null +++ b/target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangLexer.java @@ -0,0 +1,177 @@ +// Generated from de/hsrm/compiler/Klang/Klang.g4 by ANTLR 4.5 +package de.hsrm.compiler.Klang; +import org.antlr.v4.runtime.Lexer; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.Token; +import org.antlr.v4.runtime.TokenStream; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.misc.*; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +public class KlangLexer extends Lexer { + static { RuntimeMetaData.checkVersion("4.5", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + OR=1, AND=2, EQ=3, NEQ=4, GT=5, LT=6, GTEQ=7, LTEQ=8, PLUS=9, MINUS=10, + MULT=11, DIV=12, MOD=13, POW=14, NOT=15, SCOL=16, ASSIGN=17, OPAR=18, + CPAR=19, OBRACE=20, CBRACE=21, TRUE=22, FALSE=23, NIL=24, IF=25, ELSE=26, + WHILE=27, LOG=28, ID=29, INT=30, FLOAT=31, STRING=32, COMMENT=33, SPACE=34, + OTHER=35; + public static String[] modeNames = { + "DEFAULT_MODE" + }; + + public static final String[] ruleNames = { + "OR", "AND", "EQ", "NEQ", "GT", "LT", "GTEQ", "LTEQ", "PLUS", "MINUS", + "MULT", "DIV", "MOD", "POW", "NOT", "SCOL", "ASSIGN", "OPAR", "CPAR", + "OBRACE", "CBRACE", "TRUE", "FALSE", "NIL", "IF", "ELSE", "WHILE", "LOG", + "ID", "INT", "FLOAT", "STRING", "COMMENT", "SPACE", "OTHER" + }; + + private static final String[] _LITERAL_NAMES = { + null, "'||'", "'&&'", "'=='", "'!='", "'>'", "'<'", "'>='", "'<='", "'+'", + "'-'", "'*'", "'/'", "'%'", "'^'", "'!'", "';'", "'='", "'('", "')'", + "'{'", "'}'", "'true'", "'false'", "'nil'", "'if'", "'else'", "'while'", + "'log'" + }; + private static final String[] _SYMBOLIC_NAMES = { + null, "OR", "AND", "EQ", "NEQ", "GT", "LT", "GTEQ", "LTEQ", "PLUS", "MINUS", + "MULT", "DIV", "MOD", "POW", "NOT", "SCOL", "ASSIGN", "OPAR", "CPAR", + "OBRACE", "CBRACE", "TRUE", "FALSE", "NIL", "IF", "ELSE", "WHILE", "LOG", + "ID", "INT", "FLOAT", "STRING", "COMMENT", "SPACE", "OTHER" + }; + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + + public KlangLexer(CharStream input) { + super(input); + _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + @Override + public String getGrammarFileName() { return "Klang.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public String[] getModeNames() { return modeNames; } + + @Override + public ATN getATN() { return _ATN; } + + public static final String _serializedATN = + "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\2%\u00d4\b\1\4\2\t"+ + "\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+ + "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ + "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ + "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+ + "\t!\4\"\t\"\4#\t#\4$\t$\3\2\3\2\3\2\3\3\3\3\3\3\3\4\3\4\3\4\3\5\3\5\3"+ + "\5\3\6\3\6\3\7\3\7\3\b\3\b\3\b\3\t\3\t\3\t\3\n\3\n\3\13\3\13\3\f\3\f\3"+ + "\r\3\r\3\16\3\16\3\17\3\17\3\20\3\20\3\21\3\21\3\22\3\22\3\23\3\23\3\24"+ + "\3\24\3\25\3\25\3\26\3\26\3\27\3\27\3\27\3\27\3\27\3\30\3\30\3\30\3\30"+ + "\3\30\3\30\3\31\3\31\3\31\3\31\3\32\3\32\3\32\3\33\3\33\3\33\3\33\3\33"+ + "\3\34\3\34\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\36\3\36\7\36\u009d"+ + "\n\36\f\36\16\36\u00a0\13\36\3\37\6\37\u00a3\n\37\r\37\16\37\u00a4\3 "+ + "\6 \u00a8\n \r \16 \u00a9\3 \3 \7 \u00ae\n \f \16 \u00b1\13 \3 \3 \6 "+ + "\u00b5\n \r \16 \u00b6\5 \u00b9\n \3!\3!\3!\3!\7!\u00bf\n!\f!\16!\u00c2"+ + "\13!\3!\3!\3\"\3\"\7\"\u00c8\n\"\f\"\16\"\u00cb\13\"\3\"\3\"\3#\3#\3#"+ + "\3#\3$\3$\2\2%\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16"+ + "\33\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63\33\65\34"+ + "\67\359\36;\37= ?!A\"C#E$G%\3\2\b\5\2C\\aac|\6\2\62;C\\aac|\3\2\62;\5"+ + "\2\f\f\17\17$$\4\2\f\f\17\17\5\2\13\f\17\17\"\"\u00dc\2\3\3\2\2\2\2\5"+ + "\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2"+ + "\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2\33"+ + "\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2"+ + "\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2"+ + "\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2"+ + "\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\3I\3\2\2\2\5L"+ + "\3\2\2\2\7O\3\2\2\2\tR\3\2\2\2\13U\3\2\2\2\rW\3\2\2\2\17Y\3\2\2\2\21\\"+ + "\3\2\2\2\23_\3\2\2\2\25a\3\2\2\2\27c\3\2\2\2\31e\3\2\2\2\33g\3\2\2\2\35"+ + "i\3\2\2\2\37k\3\2\2\2!m\3\2\2\2#o\3\2\2\2%q\3\2\2\2\'s\3\2\2\2)u\3\2\2"+ + "\2+w\3\2\2\2-y\3\2\2\2/~\3\2\2\2\61\u0084\3\2\2\2\63\u0088\3\2\2\2\65"+ + "\u008b\3\2\2\2\67\u0090\3\2\2\29\u0096\3\2\2\2;\u009a\3\2\2\2=\u00a2\3"+ + "\2\2\2?\u00b8\3\2\2\2A\u00ba\3\2\2\2C\u00c5\3\2\2\2E\u00ce\3\2\2\2G\u00d2"+ + "\3\2\2\2IJ\7~\2\2JK\7~\2\2K\4\3\2\2\2LM\7(\2\2MN\7(\2\2N\6\3\2\2\2OP\7"+ + "?\2\2PQ\7?\2\2Q\b\3\2\2\2RS\7#\2\2ST\7?\2\2T\n\3\2\2\2UV\7@\2\2V\f\3\2"+ + "\2\2WX\7>\2\2X\16\3\2\2\2YZ\7@\2\2Z[\7?\2\2[\20\3\2\2\2\\]\7>\2\2]^\7"+ + "?\2\2^\22\3\2\2\2_`\7-\2\2`\24\3\2\2\2ab\7/\2\2b\26\3\2\2\2cd\7,\2\2d"+ + "\30\3\2\2\2ef\7\61\2\2f\32\3\2\2\2gh\7\'\2\2h\34\3\2\2\2ij\7`\2\2j\36"+ + "\3\2\2\2kl\7#\2\2l \3\2\2\2mn\7=\2\2n\"\3\2\2\2op\7?\2\2p$\3\2\2\2qr\7"+ + "*\2\2r&\3\2\2\2st\7+\2\2t(\3\2\2\2uv\7}\2\2v*\3\2\2\2wx\7\177\2\2x,\3"+ + "\2\2\2yz\7v\2\2z{\7t\2\2{|\7w\2\2|}\7g\2\2}.\3\2\2\2~\177\7h\2\2\177\u0080"+ + "\7c\2\2\u0080\u0081\7n\2\2\u0081\u0082\7u\2\2\u0082\u0083\7g\2\2\u0083"+ + "\60\3\2\2\2\u0084\u0085\7p\2\2\u0085\u0086\7k\2\2\u0086\u0087\7n\2\2\u0087"+ + "\62\3\2\2\2\u0088\u0089\7k\2\2\u0089\u008a\7h\2\2\u008a\64\3\2\2\2\u008b"+ + "\u008c\7g\2\2\u008c\u008d\7n\2\2\u008d\u008e\7u\2\2\u008e\u008f\7g\2\2"+ + "\u008f\66\3\2\2\2\u0090\u0091\7y\2\2\u0091\u0092\7j\2\2\u0092\u0093\7"+ + "k\2\2\u0093\u0094\7n\2\2\u0094\u0095\7g\2\2\u00958\3\2\2\2\u0096\u0097"+ + "\7n\2\2\u0097\u0098\7q\2\2\u0098\u0099\7i\2\2\u0099:\3\2\2\2\u009a\u009e"+ + "\t\2\2\2\u009b\u009d\t\3\2\2\u009c\u009b\3\2\2\2\u009d\u00a0\3\2\2\2\u009e"+ + "\u009c\3\2\2\2\u009e\u009f\3\2\2\2\u009f<\3\2\2\2\u00a0\u009e\3\2\2\2"+ + "\u00a1\u00a3\t\4\2\2\u00a2\u00a1\3\2\2\2\u00a3\u00a4\3\2\2\2\u00a4\u00a2"+ + "\3\2\2\2\u00a4\u00a5\3\2\2\2\u00a5>\3\2\2\2\u00a6\u00a8\t\4\2\2\u00a7"+ + "\u00a6\3\2\2\2\u00a8\u00a9\3\2\2\2\u00a9\u00a7\3\2\2\2\u00a9\u00aa\3\2"+ + "\2\2\u00aa\u00ab\3\2\2\2\u00ab\u00af\7\60\2\2\u00ac\u00ae\t\4\2\2\u00ad"+ + "\u00ac\3\2\2\2\u00ae\u00b1\3\2\2\2\u00af\u00ad\3\2\2\2\u00af\u00b0\3\2"+ + "\2\2\u00b0\u00b9\3\2\2\2\u00b1\u00af\3\2\2\2\u00b2\u00b4\7\60\2\2\u00b3"+ + "\u00b5\t\4\2\2\u00b4\u00b3\3\2\2\2\u00b5\u00b6\3\2\2\2\u00b6\u00b4\3\2"+ + "\2\2\u00b6\u00b7\3\2\2\2\u00b7\u00b9\3\2\2\2\u00b8\u00a7\3\2\2\2\u00b8"+ + "\u00b2\3\2\2\2\u00b9@\3\2\2\2\u00ba\u00c0\7$\2\2\u00bb\u00bf\n\5\2\2\u00bc"+ + "\u00bd\7$\2\2\u00bd\u00bf\7$\2\2\u00be\u00bb\3\2\2\2\u00be\u00bc\3\2\2"+ + "\2\u00bf\u00c2\3\2\2\2\u00c0\u00be\3\2\2\2\u00c0\u00c1\3\2\2\2\u00c1\u00c3"+ + "\3\2\2\2\u00c2\u00c0\3\2\2\2\u00c3\u00c4\7$\2\2\u00c4B\3\2\2\2\u00c5\u00c9"+ + "\7%\2\2\u00c6\u00c8\n\6\2\2\u00c7\u00c6\3\2\2\2\u00c8\u00cb\3\2\2\2\u00c9"+ + "\u00c7\3\2\2\2\u00c9\u00ca\3\2\2\2\u00ca\u00cc\3\2\2\2\u00cb\u00c9\3\2"+ + "\2\2\u00cc\u00cd\b\"\2\2\u00cdD\3\2\2\2\u00ce\u00cf\t\7\2\2\u00cf\u00d0"+ + "\3\2\2\2\u00d0\u00d1\b#\2\2\u00d1F\3\2\2\2\u00d2\u00d3\13\2\2\2\u00d3"+ + "H\3\2\2\2\f\2\u009e\u00a4\u00a9\u00af\u00b6\u00b8\u00be\u00c0\u00c9\3"+ + "\b\2\2"; + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ 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 new file mode 100644 index 0000000..9eafcbe --- /dev/null +++ b/target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangListener.java @@ -0,0 +1,293 @@ +// 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 new file mode 100644 index 0000000..59fa897 --- /dev/null +++ b/target/generated-sources/antlr4/de/hsrm/compiler/Klang/KlangParser.java @@ -0,0 +1,1251 @@ +// Generated from de/hsrm/compiler/Klang/Klang.g4 by ANTLR 4.5 +package de.hsrm.compiler.Klang; +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.misc.*; +import org.antlr.v4.runtime.tree.*; +import java.util.List; +import java.util.Iterator; +import java.util.ArrayList; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +public class KlangParser extends Parser { + static { RuntimeMetaData.checkVersion("4.5", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + OR=1, AND=2, EQ=3, NEQ=4, GT=5, LT=6, GTEQ=7, LTEQ=8, PLUS=9, MINUS=10, + MULT=11, DIV=12, MOD=13, POW=14, NOT=15, SCOL=16, ASSIGN=17, OPAR=18, + CPAR=19, OBRACE=20, CBRACE=21, TRUE=22, FALSE=23, NIL=24, IF=25, ELSE=26, + WHILE=27, LOG=28, ID=29, INT=30, FLOAT=31, STRING=32, COMMENT=33, SPACE=34, + OTHER=35; + public static final int + RULE_parse = 0, RULE_block = 1, RULE_stat = 2, RULE_assignment = 3, RULE_if_stat = 4, + RULE_condition_block = 5, RULE_stat_block = 6, RULE_while_stat = 7, RULE_log = 8, + RULE_expr = 9, RULE_atom = 10; + public static final String[] ruleNames = { + "parse", "block", "stat", "assignment", "if_stat", "condition_block", + "stat_block", "while_stat", "log", "expr", "atom" + }; + + private static final String[] _LITERAL_NAMES = { + null, "'||'", "'&&'", "'=='", "'!='", "'>'", "'<'", "'>='", "'<='", "'+'", + "'-'", "'*'", "'/'", "'%'", "'^'", "'!'", "';'", "'='", "'('", "')'", + "'{'", "'}'", "'true'", "'false'", "'nil'", "'if'", "'else'", "'while'", + "'log'" + }; + private static final String[] _SYMBOLIC_NAMES = { + null, "OR", "AND", "EQ", "NEQ", "GT", "LT", "GTEQ", "LTEQ", "PLUS", "MINUS", + "MULT", "DIV", "MOD", "POW", "NOT", "SCOL", "ASSIGN", "OPAR", "CPAR", + "OBRACE", "CBRACE", "TRUE", "FALSE", "NIL", "IF", "ELSE", "WHILE", "LOG", + "ID", "INT", "FLOAT", "STRING", "COMMENT", "SPACE", "OTHER" + }; + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + @Override + public String getGrammarFileName() { return "Klang.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public ATN getATN() { return _ATN; } + + public KlangParser(TokenStream input) { + super(input); + _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + public static class ParseContext extends ParserRuleContext { + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public TerminalNode EOF() { return getToken(KlangParser.EOF, 0); } + public ParseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @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 final ParseContext parse() throws RecognitionException { + ParseContext _localctx = new ParseContext(_ctx, getState()); + enterRule(_localctx, 0, RULE_parse); + try { + enterOuterAlt(_localctx, 1); + { + setState(22); + block(); + setState(23); + match(EOF); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class BlockContext extends ParserRuleContext { + public List stat() { + return getRuleContexts(StatContext.class); + } + public StatContext stat(int i) { + return getRuleContext(StatContext.class,i); + } + public BlockContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @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 final BlockContext block() throws RecognitionException { + BlockContext _localctx = new BlockContext(_ctx, getState()); + enterRule(_localctx, 2, RULE_block); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(28); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << IF) | (1L << WHILE) | (1L << LOG) | (1L << ID) | (1L << OTHER))) != 0)) { + { + { + setState(25); + stat(); + } + } + setState(30); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class StatContext extends ParserRuleContext { + public Token OTHER; + public AssignmentContext assignment() { + return getRuleContext(AssignmentContext.class,0); + } + public If_statContext if_stat() { + return getRuleContext(If_statContext.class,0); + } + public While_statContext while_stat() { + return getRuleContext(While_statContext.class,0); + } + public LogContext log() { + return getRuleContext(LogContext.class,0); + } + public TerminalNode OTHER() { return getToken(KlangParser.OTHER, 0); } + public StatContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @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 final StatContext stat() throws RecognitionException { + StatContext _localctx = new StatContext(_ctx, getState()); + enterRule(_localctx, 4, RULE_stat); + try { + setState(37); + switch (_input.LA(1)) { + case ID: + enterOuterAlt(_localctx, 1); + { + setState(31); + assignment(); + } + break; + case IF: + enterOuterAlt(_localctx, 2); + { + setState(32); + if_stat(); + } + break; + case WHILE: + enterOuterAlt(_localctx, 3); + { + setState(33); + while_stat(); + } + break; + case LOG: + enterOuterAlt(_localctx, 4); + { + setState(34); + log(); + } + break; + case OTHER: + enterOuterAlt(_localctx, 5); + { + setState(35); + ((StatContext)_localctx).OTHER = match(OTHER); + System.err.println("unknown char: " + (((StatContext)_localctx).OTHER!=null?((StatContext)_localctx).OTHER.getText():null)); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class AssignmentContext extends ParserRuleContext { + public TerminalNode ID() { return getToken(KlangParser.ID, 0); } + public TerminalNode ASSIGN() { return getToken(KlangParser.ASSIGN, 0); } + public ExprContext expr() { + return getRuleContext(ExprContext.class,0); + } + public TerminalNode SCOL() { return getToken(KlangParser.SCOL, 0); } + public AssignmentContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @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 final AssignmentContext assignment() throws RecognitionException { + AssignmentContext _localctx = new AssignmentContext(_ctx, getState()); + enterRule(_localctx, 6, RULE_assignment); + try { + enterOuterAlt(_localctx, 1); + { + setState(39); + match(ID); + setState(40); + match(ASSIGN); + setState(41); + expr(0); + setState(42); + match(SCOL); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class If_statContext extends ParserRuleContext { + public List IF() { return getTokens(KlangParser.IF); } + public TerminalNode IF(int i) { + return getToken(KlangParser.IF, i); + } + public List condition_block() { + return getRuleContexts(Condition_blockContext.class); + } + public Condition_blockContext condition_block(int i) { + return getRuleContext(Condition_blockContext.class,i); + } + public List ELSE() { return getTokens(KlangParser.ELSE); } + public TerminalNode ELSE(int i) { + return getToken(KlangParser.ELSE, i); + } + public Stat_blockContext stat_block() { + return getRuleContext(Stat_blockContext.class,0); + } + public If_statContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @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 final If_statContext if_stat() throws RecognitionException { + If_statContext _localctx = new If_statContext(_ctx, getState()); + enterRule(_localctx, 8, RULE_if_stat); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(44); + match(IF); + setState(45); + condition_block(); + setState(51); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,2,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(46); + match(ELSE); + setState(47); + match(IF); + setState(48); + condition_block(); + } + } + } + setState(53); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,2,_ctx); + } + setState(56); + switch ( getInterpreter().adaptivePredict(_input,3,_ctx) ) { + case 1: + { + setState(54); + match(ELSE); + setState(55); + stat_block(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Condition_blockContext extends ParserRuleContext { + public ExprContext expr() { + return getRuleContext(ExprContext.class,0); + } + public Stat_blockContext stat_block() { + return getRuleContext(Stat_blockContext.class,0); + } + public Condition_blockContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @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 final Condition_blockContext condition_block() throws RecognitionException { + Condition_blockContext _localctx = new Condition_blockContext(_ctx, getState()); + enterRule(_localctx, 10, RULE_condition_block); + try { + enterOuterAlt(_localctx, 1); + { + setState(58); + expr(0); + setState(59); + stat_block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Stat_blockContext extends ParserRuleContext { + public TerminalNode OBRACE() { return getToken(KlangParser.OBRACE, 0); } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public TerminalNode CBRACE() { return getToken(KlangParser.CBRACE, 0); } + public StatContext stat() { + return getRuleContext(StatContext.class,0); + } + public Stat_blockContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @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 final Stat_blockContext stat_block() throws RecognitionException { + Stat_blockContext _localctx = new Stat_blockContext(_ctx, getState()); + enterRule(_localctx, 12, RULE_stat_block); + try { + setState(66); + switch (_input.LA(1)) { + case OBRACE: + enterOuterAlt(_localctx, 1); + { + setState(61); + match(OBRACE); + setState(62); + block(); + setState(63); + match(CBRACE); + } + break; + case IF: + case WHILE: + case LOG: + case ID: + case OTHER: + enterOuterAlt(_localctx, 2); + { + setState(65); + stat(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class While_statContext extends ParserRuleContext { + public TerminalNode WHILE() { return getToken(KlangParser.WHILE, 0); } + public ExprContext expr() { + return getRuleContext(ExprContext.class,0); + } + public Stat_blockContext stat_block() { + return getRuleContext(Stat_blockContext.class,0); + } + public While_statContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @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 final While_statContext while_stat() throws RecognitionException { + While_statContext _localctx = new While_statContext(_ctx, getState()); + enterRule(_localctx, 14, RULE_while_stat); + try { + enterOuterAlt(_localctx, 1); + { + setState(68); + match(WHILE); + setState(69); + expr(0); + setState(70); + stat_block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class LogContext extends ParserRuleContext { + public TerminalNode LOG() { return getToken(KlangParser.LOG, 0); } + public ExprContext expr() { + return getRuleContext(ExprContext.class,0); + } + public TerminalNode SCOL() { return getToken(KlangParser.SCOL, 0); } + public LogContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @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 final LogContext log() throws RecognitionException { + LogContext _localctx = new LogContext(_ctx, getState()); + enterRule(_localctx, 16, RULE_log); + try { + enterOuterAlt(_localctx, 1); + { + setState(72); + match(LOG); + setState(73); + expr(0); + setState(74); + match(SCOL); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ExprContext extends ParserRuleContext { + public ExprContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_expr; } + + public ExprContext() { } + public void copyFrom(ExprContext ctx) { + super.copyFrom(ctx); + } + } + public static class NotExprContext extends ExprContext { + public TerminalNode NOT() { return getToken(KlangParser.NOT, 0); } + public ExprContext expr() { + return getRuleContext(ExprContext.class,0); + } + 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 static class UnaryMinusExprContext extends ExprContext { + public TerminalNode MINUS() { return getToken(KlangParser.MINUS, 0); } + public ExprContext expr() { + return getRuleContext(ExprContext.class,0); + } + 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 static class MultiplicationExprContext extends ExprContext { + public Token op; + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + public TerminalNode MULT() { return getToken(KlangParser.MULT, 0); } + public TerminalNode DIV() { return getToken(KlangParser.DIV, 0); } + 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 static class AtomExprContext extends ExprContext { + public AtomContext atom() { + return getRuleContext(AtomContext.class,0); + } + 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 static class OrExprContext extends ExprContext { + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + 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 static class AdditiveExprContext extends ExprContext { + public Token op; + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + public TerminalNode PLUS() { return getToken(KlangParser.PLUS, 0); } + 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 static class PowExprContext extends ExprContext { + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + 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 static class RelationalExprContext extends ExprContext { + public Token op; + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + public TerminalNode LTEQ() { return getToken(KlangParser.LTEQ, 0); } + public TerminalNode GTEQ() { return getToken(KlangParser.GTEQ, 0); } + public TerminalNode LT() { return getToken(KlangParser.LT, 0); } + 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 static class EqualityExprContext extends ExprContext { + public Token op; + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + public TerminalNode EQ() { return getToken(KlangParser.EQ, 0); } + 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 static class AndExprContext extends ExprContext { + public List expr() { + return getRuleContexts(ExprContext.class); + } + public ExprContext expr(int i) { + return getRuleContext(ExprContext.class,i); + } + 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 final ExprContext expr() throws RecognitionException { + return expr(0); + } + + private ExprContext expr(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + ExprContext _localctx = new ExprContext(_ctx, _parentState); + ExprContext _prevctx = _localctx; + int _startState = 18; + enterRecursionRule(_localctx, 18, RULE_expr, _p); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(82); + switch (_input.LA(1)) { + case MINUS: + { + _localctx = new UnaryMinusExprContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + + setState(77); + match(MINUS); + setState(78); + expr(9); + } + break; + case NOT: + { + _localctx = new NotExprContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(79); + match(NOT); + setState(80); + expr(8); + } + break; + case OPAR: + case TRUE: + case FALSE: + case NIL: + case ID: + case INT: + case FLOAT: + case STRING: + { + _localctx = new AtomExprContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(81); + atom(); + } + break; + default: + throw new NoViableAltException(this); + } + _ctx.stop = _input.LT(-1); + setState(107); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,7,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(105); + switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) { + case 1: + { + _localctx = new PowExprContext(new ExprContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(84); + if (!(precpred(_ctx, 10))) throw new FailedPredicateException(this, "precpred(_ctx, 10)"); + setState(85); + match(POW); + setState(86); + expr(11); + } + break; + case 2: + { + _localctx = new MultiplicationExprContext(new ExprContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(87); + if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)"); + setState(88); + ((MultiplicationExprContext)_localctx).op = _input.LT(1); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << MULT) | (1L << DIV) | (1L << MOD))) != 0)) ) { + ((MultiplicationExprContext)_localctx).op = (Token)_errHandler.recoverInline(this); + } else { + consume(); + } + setState(89); + expr(8); + } + break; + case 3: + { + _localctx = new AdditiveExprContext(new ExprContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(90); + if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)"); + setState(91); + ((AdditiveExprContext)_localctx).op = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==PLUS || _la==MINUS) ) { + ((AdditiveExprContext)_localctx).op = (Token)_errHandler.recoverInline(this); + } else { + consume(); + } + setState(92); + expr(7); + } + break; + case 4: + { + _localctx = new RelationalExprContext(new ExprContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(93); + if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)"); + setState(94); + ((RelationalExprContext)_localctx).op = _input.LT(1); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << GT) | (1L << LT) | (1L << GTEQ) | (1L << LTEQ))) != 0)) ) { + ((RelationalExprContext)_localctx).op = (Token)_errHandler.recoverInline(this); + } else { + consume(); + } + setState(95); + expr(6); + } + break; + case 5: + { + _localctx = new EqualityExprContext(new ExprContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(96); + if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)"); + setState(97); + ((EqualityExprContext)_localctx).op = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==EQ || _la==NEQ) ) { + ((EqualityExprContext)_localctx).op = (Token)_errHandler.recoverInline(this); + } else { + consume(); + } + setState(98); + expr(5); + } + break; + case 6: + { + _localctx = new AndExprContext(new ExprContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(99); + if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); + setState(100); + match(AND); + setState(101); + expr(4); + } + break; + case 7: + { + _localctx = new OrExprContext(new ExprContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expr); + setState(102); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(103); + match(OR); + setState(104); + expr(3); + } + break; + } + } + } + setState(109); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,7,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class AtomContext extends ParserRuleContext { + public AtomContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_atom; } + + public AtomContext() { } + public void copyFrom(AtomContext ctx) { + super.copyFrom(ctx); + } + } + public static class ParExprContext extends AtomContext { + public TerminalNode OPAR() { return getToken(KlangParser.OPAR, 0); } + public ExprContext expr() { + return getRuleContext(ExprContext.class,0); + } + 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 static class BooleanAtomContext extends AtomContext { + public TerminalNode TRUE() { return getToken(KlangParser.TRUE, 0); } + 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 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 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 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 static class NumberAtomContext extends AtomContext { + public TerminalNode INT() { return getToken(KlangParser.INT, 0); } + 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 final AtomContext atom() throws RecognitionException { + AtomContext _localctx = new AtomContext(_ctx, getState()); + enterRule(_localctx, 20, RULE_atom); + int _la; + try { + setState(119); + switch (_input.LA(1)) { + case OPAR: + _localctx = new ParExprContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(110); + match(OPAR); + setState(111); + expr(0); + setState(112); + match(CPAR); + } + break; + case INT: + case FLOAT: + _localctx = new NumberAtomContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(114); + _la = _input.LA(1); + if ( !(_la==INT || _la==FLOAT) ) { + _errHandler.recoverInline(this); + } else { + consume(); + } + } + break; + case TRUE: + case FALSE: + _localctx = new BooleanAtomContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(115); + _la = _input.LA(1); + if ( !(_la==TRUE || _la==FALSE) ) { + _errHandler.recoverInline(this); + } else { + consume(); + } + } + break; + case ID: + _localctx = new IdAtomContext(_localctx); + enterOuterAlt(_localctx, 4); + { + setState(116); + match(ID); + } + break; + case STRING: + _localctx = new StringAtomContext(_localctx); + enterOuterAlt(_localctx, 5); + { + setState(117); + match(STRING); + } + break; + case NIL: + _localctx = new NilAtomContext(_localctx); + enterOuterAlt(_localctx, 6); + { + setState(118); + match(NIL); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { + switch (ruleIndex) { + case 9: + return expr_sempred((ExprContext)_localctx, predIndex); + } + return true; + } + private boolean expr_sempred(ExprContext _localctx, int predIndex) { + switch (predIndex) { + case 0: + return precpred(_ctx, 10); + case 1: + return precpred(_ctx, 7); + case 2: + return precpred(_ctx, 6); + case 3: + return precpred(_ctx, 5); + case 4: + return precpred(_ctx, 4); + case 5: + return precpred(_ctx, 3); + case 6: + return precpred(_ctx, 2); + } + return true; + } + + public static final String _serializedATN = + "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3%|\4\2\t\2\4\3\t\3"+ + "\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f"+ + "\t\f\3\2\3\2\3\2\3\3\7\3\35\n\3\f\3\16\3 \13\3\3\4\3\4\3\4\3\4\3\4\3\4"+ + "\5\4(\n\4\3\5\3\5\3\5\3\5\3\5\3\6\3\6\3\6\3\6\3\6\7\6\64\n\6\f\6\16\6"+ + "\67\13\6\3\6\3\6\5\6;\n\6\3\7\3\7\3\7\3\b\3\b\3\b\3\b\3\b\5\bE\n\b\3\t"+ + "\3\t\3\t\3\t\3\n\3\n\3\n\3\n\3\13\3\13\3\13\3\13\3\13\3\13\5\13U\n\13"+ + "\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13"+ + "\3\13\3\13\3\13\3\13\3\13\3\13\3\13\7\13l\n\13\f\13\16\13o\13\13\3\f\3"+ + "\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\5\fz\n\f\3\f\2\3\24\r\2\4\6\b\n\f\16\20"+ + "\22\24\26\2\b\3\2\r\17\3\2\13\f\3\2\7\n\3\2\5\6\3\2 !\3\2\30\31\u0086"+ + "\2\30\3\2\2\2\4\36\3\2\2\2\6\'\3\2\2\2\b)\3\2\2\2\n.\3\2\2\2\f<\3\2\2"+ + "\2\16D\3\2\2\2\20F\3\2\2\2\22J\3\2\2\2\24T\3\2\2\2\26y\3\2\2\2\30\31\5"+ + "\4\3\2\31\32\7\2\2\3\32\3\3\2\2\2\33\35\5\6\4\2\34\33\3\2\2\2\35 \3\2"+ + "\2\2\36\34\3\2\2\2\36\37\3\2\2\2\37\5\3\2\2\2 \36\3\2\2\2!(\5\b\5\2\""+ + "(\5\n\6\2#(\5\20\t\2$(\5\22\n\2%&\7%\2\2&(\b\4\1\2\'!\3\2\2\2\'\"\3\2"+ + "\2\2\'#\3\2\2\2\'$\3\2\2\2\'%\3\2\2\2(\7\3\2\2\2)*\7\37\2\2*+\7\23\2\2"+ + "+,\5\24\13\2,-\7\22\2\2-\t\3\2\2\2./\7\33\2\2/\65\5\f\7\2\60\61\7\34\2"+ + "\2\61\62\7\33\2\2\62\64\5\f\7\2\63\60\3\2\2\2\64\67\3\2\2\2\65\63\3\2"+ + "\2\2\65\66\3\2\2\2\66:\3\2\2\2\67\65\3\2\2\289\7\34\2\29;\5\16\b\2:8\3"+ + "\2\2\2:;\3\2\2\2;\13\3\2\2\2<=\5\24\13\2=>\5\16\b\2>\r\3\2\2\2?@\7\26"+ + "\2\2@A\5\4\3\2AB\7\27\2\2BE\3\2\2\2CE\5\6\4\2D?\3\2\2\2DC\3\2\2\2E\17"+ + "\3\2\2\2FG\7\35\2\2GH\5\24\13\2HI\5\16\b\2I\21\3\2\2\2JK\7\36\2\2KL\5"+ + "\24\13\2LM\7\22\2\2M\23\3\2\2\2NO\b\13\1\2OP\7\f\2\2PU\5\24\13\13QR\7"+ + "\21\2\2RU\5\24\13\nSU\5\26\f\2TN\3\2\2\2TQ\3\2\2\2TS\3\2\2\2Um\3\2\2\2"+ + "VW\f\f\2\2WX\7\20\2\2Xl\5\24\13\rYZ\f\t\2\2Z[\t\2\2\2[l\5\24\13\n\\]\f"+ + "\b\2\2]^\t\3\2\2^l\5\24\13\t_`\f\7\2\2`a\t\4\2\2al\5\24\13\bbc\f\6\2\2"+ + "cd\t\5\2\2dl\5\24\13\7ef\f\5\2\2fg\7\4\2\2gl\5\24\13\6hi\f\4\2\2ij\7\3"+ + "\2\2jl\5\24\13\5kV\3\2\2\2kY\3\2\2\2k\\\3\2\2\2k_\3\2\2\2kb\3\2\2\2ke"+ + "\3\2\2\2kh\3\2\2\2lo\3\2\2\2mk\3\2\2\2mn\3\2\2\2n\25\3\2\2\2om\3\2\2\2"+ + "pq\7\24\2\2qr\5\24\13\2rs\7\25\2\2sz\3\2\2\2tz\t\6\2\2uz\t\7\2\2vz\7\37"+ + "\2\2wz\7\"\2\2xz\7\32\2\2yp\3\2\2\2yt\3\2\2\2yu\3\2\2\2yv\3\2\2\2yw\3"+ + "\2\2\2yx\3\2\2\2z\27\3\2\2\2\13\36\'\65:DTkmy"; + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ 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 new file mode 100644 index 0000000000000000000000000000000000000000..b45f1682426a513b700c9b77160a520f6059de40 GIT binary patch literal 413317 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�lWoTmJ!g-2PVIGr1<^)(7y#MR zs9EnY3cZ)7I9DEY*L14J)Nn^qg4Rr$v)PPjY{m*yFBPd>kCdZlEL7YNbK?9!{r)+1 zj%R19#*R>NhF1QDdP1^zQaRq;bbNa3AH~%gDAYQUDVH^u4;oxvDjI8*#SJS}$ZF!x zmTH7zZ#U@^8hK9lP%ZQ3OFV3=K(pR!j`WExjktj8zuaH5yI)zk^4=}V?ou1i8gai; zD0E^PM@!(X z&N6Y;TK5x5o@0=@<3P{Y;uW?mliap$CcTUo!b^&WHgRwVt67={i^@fuNxSC`;3=F6 zV-w7@aA=fFV1XaxbR?MUUctb3j!4deyAdMD5GA|yi$bB=z;6P*`5`BtuxUSrupeM` zToyTf$U4(hr1a8i~RuoT?SQS8!rSA!6Swm?#L8&T&|zw-WeR0Gg&s6 zSzWfXmIoIfaPWCIBfPCK=j|x8c4+oF-qsjCf4p}D*V(YTu2UiNe1p)BlvD*`WdV4_Wbe_cXS%WiJ8>#pMel1Ltfz}Cy%trtrogYz z$9og6P&4(4%oQiOP9AOKqP?VqQ;U16`o5*N`Ce}%DJ+O_PBT#(t?l1x-Z4|<;5)-B zZG-G}z&nfRJEbz+n?vzL^SV#4x}@m!kjtEt2hbA6ngLE2cKgW@etSh^l*50lRh@;UX^RIgf~ zv78PTQIb|vFLIb)pjl@92;>W0NQY-){;Zqs!@*Dd_e6KRvMHgfacQgd!XQ0E=pNnn zEl>tbfg8*fuYnL>_e@@^fqx5WP4jRw(vHKVJ<&=qQnwfG44x2McmT2N1IKP!zZ|1! z>8+(MES4dmO&s4a4)mdrmb0~;t)W&g;mPL}W?UaO{bl>FK*($c1`9|A+Y|x~TQGwS zciu(6PpuVqjM=H3uyZKcJZDAm1Bzm#W^$NkO5An@ zkaHYW5qOG7o|@5Vhb0YfbtI~C1kC}a&brEcu;@{ki=fXh4CkMA$`C_IP`8%N|Hks+_ zQ}XFAB0rj?C2ohej0|sV>-L3GoV{&nf(k6^#;7Ht?%b!xq9spU9z;D?c!!N~s@13{ z8=GTF(GGNUv3lhQ%w21SeIG9*tTBx!xbOJ%&a~s9NdNJxMcP3gV~xy(McVSr;gO)x z=9!`Qz}S-Ra3iyP_CJ|J@m>C~F|zL@U{LVD2W_tp=}+zc&{(AD*3K%bFPC#3vD$=G zjAta|9~E~jW{$G#lv?5jv)bU3z+uG_u8g89QzdIIddx~-ucledaD~hp+{}z z6Bt)4sW2OUXugn+Tvfap9#}&>$A^JGQ|;fRxeoO$K|DmP=T(VKHl$Wry!lGE4rnXO z%l1&dbfD{*%!p-kZ8u6e#>5v(;pz+O-b@RFLI&=_W@8=pK~LXtQiJU2XDZd%+0%=#|wxNVMngYSrD zJR3ze*1D?v#&mv|{e{Fb$McTQyayIN0cn zm!vcgtI|l!)-E<{Hn|jDxr|-L&}j+;n$7 z?5xNFtNZVS)B(8#*CDxuwzf-!c9^t^g?gF1*2BC+Y<@9$lluP)Wdzepx&k*oxnSbK z=oJ#+!5MbHOiL0oeo&yly&I|blnxyMb|>;DA4re13%--#K^zQV@TQIi z=AcLn>*t6j2IN8SeK63b3EN411I3ITzs+GdujTi@0lVuW(1j`Bj|RJh-zTm6{$fZy z02k=Q>1XUD8h{Vtz&qwa7}Q4)D%clB_y=~I84d?-&*ZNJn5}wC8k3#ByH+PEu=d$> zo2CG<@wN>s>ROs{r36tD-MyKKM_kE}U#p#SbI#O|u?WL8}q~y)Cm0}RaGloRPYx&>2%i@zVNcg|B@V{Xi%qCbq zEc-W02nylpUQDKD)6%xHNZou3i%HYRtG3K7oH;YDnblR_6^~yAY2Wpf$4%!LoA3@**M3j z@gi&RL2o@l_`v|5k|2B|*-_3VKNE|Zj-9G?Di=Js*VGDHwuj`tvN^msOvny8sGV+ zWMcGLa-~LWEJrmuCR;^4c>?uzbuhQ1c6}}t(|HRlsFO0riW)#Xt%fJD3@ZkY9|I-D zl(_OPepOYQfaCKVbC~D@sZ+&f+dLssqVgy=3o3CP(^riP9S5p4^mMc+eV*3gyTIOM z2%5PqN3*(!y=xG@luMteHAJz{W7N)nKzc%d^(z;QQC<$uX=9dy%td#t*|(Ir*Yi>% zz?l@1Qdqu)@+xG>cZCns@vqhW*)x+}CuinYts$QR#%VrXkHryB=+9lZ$I0_ww7hGN zwgxgj${u_(iRooj8nt;d8s)<(YgKh=lP5RQX3x#82{GqxRTden{E3%ZjFzCWFXbJ$<83@fKdRK&1uUA`2}$qsHn8A#F#2o%$0YED|)L??1^0 z`gB*;jC7TDHg;q!Y7gJ8Yzsf+5{dl$h$tQ-c}!Qf4qmnyfBB~Xb7V{bnBThUk)YIw zK=Nh@_$R&lBRq94rY|<%EZw??bF?-yoJTbzwCrp4BAqAhJo#t?!>9?;%M>vJxrUp- z+3jJRz}gWB9&Glh_D2nvo6T(wZPdha6N$K~8A0UwxdHycbO)OOpw{0{AczagslpI& z8152L0b{BFLCpxjmkLFS<&2X* z=ddYhw1(u8U(k;5@W832vq4@49jBUB+OCsVcFm=><*KFwZghA;S3+Va?O=#uw2l>u zfZ4kmY=@A-9&7%ugrpW7bv2A?Gj#0G@pl{Erq|5a=c1(^3l-bg*jwM|GfVjAc**Kr zkk4&?DjVvI&OdcS$Ed8rqI?ueTp5@@gFfe!IPbVjcRu0)XK=|d+@hieoBu9N(A^5sCSQGsQsEdEDVl{7Xa-R9s?P{7WuYr5=Pxq^;ys+`uS|xb8@!>y~|hf z<{Nkf`2InVd5e&`Yw$eo``mBzc~O z@GfXQp1GHqYn$J|iNfncs`K@ybW|K|WL1&l3650vGek&IC9wo&e4`k)#Ti~~ZWBs( zJ=TrmdcV_}^R0*?4rmJwIj{^|0@XD}e=*|H-9KYwo2A~wFIsdsb^?g<*p60nfshd% zr1|DLt4S**Br!O*RS%`Z1ksF?SFdjkvN*4 zbcn_U!KDS5`}d+pFT~h#DtK41-`b#F=Cep6JDJug?kkILn!70sDyR0C{l~i30|5cF z89EYZPOK%CZU>v?h0N(5jc#Crw3?>}W6L`Sl$>kdn=7r{a0rZ|iW-gda!6amk4Ul% z?REjj3(Y80VdIxaVg_;_Fi>{;7^PQNg4)#nJEmg&yFd*Nw|l~~Yec(yrk0-o)OQps zdq~i?jpbp$B&nv%P8qhnF-?gftB4X+Qye#kMDE`+50Ks~PD#Zqr?MpCJWV9B;IK&> zS1I8L%0_$~r=DZm;SBlNgNWE>_TVRQ5BcBkKkPr^q3_85%K6hsYNuUnm}E+&kU3%} zr0e3%G(0WPg|e(-hvC{U8HF0cnsbt^gt=E}Jb3*@Kot|#E(CkCcmmuDUJ0u9X$?{m z`njiW(Xqa%x$o`L!+VUtzWYR9$s-Q*9zS-Bm*Q3{PbA;hC`#4|WW;%VnXH>ve>1CT zgMxSX48=O2kW04qc=YRsxPI;*(OX@GPQ?$XF@+U-HS0VizI*(@n{-{Cxb6PAXdOAWmsGJq}dX(14PuJB&tv|W!l)M@!)UzYNw45RW zqh0tZo-hqdlg7lbHbaTb%?m1;J~chEz37UG%f$BJD3`H^8n@pGr%_xf3e$c`D^#Td zH11H}=M#FVVQEo}YLWlW6^FUdS0rv%>PAH zo1zZsuDpc$eM6H$ikuq%M;{3TB6ti0>Cd0hKv)PY7-1Ozz_drPsrl|FyipL(i?M@GAG|HVcubYmEwHd$Z z+sTo*TmS~(pZfwly(dFJ+ZX#L9XPkqJz37pqkcF}KN&dgqoscn25Hc49km-#Je$|U zc$_=LVP0FS7sKp__gT8HwQ_tNa^0;vF?MZt{-4`<(CB#1dxZ3n4jnw7&Dh|b9N}R{ zBgFTw@#tZ5#Qbrs_KPvP^kl_lyqQr(?$Wt9FZ&>}?e^W!aVLgUx%LO#y58tJ5Bndl z0nl>ocgbm3*G_vD?70pHVY-w3eC)X?B)Jdq0}qa`3E1@F5q_7$awIo-?Y9N!^m}G> zpPM0RppHp(PnM0G%eZ!Gpkyq=`?xBSESM2$Ht8CuH?d?*vP~7FPNkv*Vt$DT6dJsv zF1jcR->kR)qIMh+}l zT;>sAE3-gErInE&S#uW+=LXv}1ude=44CvpBCMLqQnSe!C|}2*Qt8p{X~IJ+V)J7( zm37v))=Gx8NH_yNht)ffG-?J}-)yY860KM*S&RMFCkkxZ4=p){NHNt?WG&h5ofWe> z<_}AL@SQESG%b%4)YmX6mI+uNO2S#J)Dn}rgouzvA1wve;KVq7n;0L27lG@I5o_;PY1mqWOcBr+a{ROZaB zZ&BtTE)vt%ajxewWq+=V&u14@z?h6+(IVxuw;HMS8=SQXtVsdoOmgP1ZS6)@BC1Hl ztI3w;MgsA!a$SAeZkcMC*3{%g`= zjy?NeChXso8qunnfMCzR{TDNSE3EH~&-T#KB(5H_g0Qdc9)ch%{uk`wW3alTnb!~? zuvFtBoNDZvV@XSOLs5q}UEoARovo?5a0|?-C*yQG85Z4wNo@ErYd9sb7JjN#8O{Np zuGbJB>&QMI2h9*M5AL`9_F&%)4|{(tT6MQ)s!c1OiKw>HSW zQG|lQ>W_;F)~Guhrnj5s=$>+_h8ONaj;yH;Ta;V|$1q1t?c)x6QFPdIZvdJ49`7GL zH=IgfP{T8uZzGQ!P_~{=(gt-3us0ymx*Db@#Tmtfv{;JhZNP(9h`a6(0&uZ>!S@N) z^CU3P#PlSZCZT-qPD&BErXFP!8?) zxF_d65H{61AHweQ9|Nh3PgjyG17b8CZT>_k%8Aya z!4)}H&xf@5xP$w-?Ah^s;{FgM@hPs1a8qcrSRi^=5w=cF{$WZr5ncCl3>{}WUtU6u zV$REIUu-SFo)@H&A%1H7N4*6&CK2VRks7h^M=);ApK$cu+}h}m6d4c_iT5fQuU{8T zC%rx+GF8qgASUxoy@dF}Vh30drVR@02%9Q+k=P1k@O0;X+ifoV%|Tw3_}Ur;!fTN; z&S*nvKKz}+*|}n&@M?KqxA`*q?)>P0t?2T6K-|`tx~0_LTK@5gn9LDVeF77jp$MD! zh*`|F39yRlHHfUVnsG3ib;HRb{aS;+wgewv`onDJo#c{?F`{;te_4CTu4b-_(8?>~ zMpCA%%N^H^bh5H2R6Xon^loh^Zp@NANo7|ikjSU9kR?(Cb`?l~C9><#FT))9wLAsz z64&$!NLG*zxmeGSlU1!oq0kTZ^zRs0oErUO=veVERgtlXw?PCUjkh4Xg8%iqf3v6q z1UT&l2&sa8PdbQSu9)@r@agGK#tch~FQ1SZb<1DFQzt@9-Xs*QM5Dz{ye`3TTW9m; zNA3ZM5y0IK#2(>vz4w{eA2?Rc;-8~CK&k@0OG1&oblAb&J3XR%;prGW#0;)zy zKokbD3XG$R-!UF#8IF>xrOkn`MHMMYOZ<+a3@sAdTcl(O@r>6xq2CVT@pCvu;Hmav zxWMqHjw7@?LWCK^Uk@_)#)FxeIVn)56CDllP0{0};0Wwb`gHz?8eoPy<%=IbbOHmM zjc}pp^@Kuig4i~O+7=E$SE3*nBbB-(6S`#^WwQ7{05#--UtiFK0M8J2)cR`PVmT*_ z=0PZ^Eo`m-(8Aqo-_N0FvQ$c5Hf2E%y=37`!`mZ)Jfq+px#%X$lXlUy`}4*Fm|9c0~HGi4l6UBJOe03_)J59sBs1Iw zb^z0%&1}s@Asy+>YvyrWw9N@#53y5(EX(VP6|9!ioJ2HIVII#tLSQz7pC)t32F>V& zZ|DkL_XJi)Cgfu31`ouGktcIM4ameT826aBh84sn!Xqs?uLPPOsVlvEW8lLRIq&;= zS^qn)^H9kjgHZCclCGvImzIIk7t0~&;K7@IMw3)p+SvO9cc3Wc%|wjh&3F_-;3Ikf zgYra~<2p3jWCRYSh?-yXd>>kma)GVpV#&qBJcw%bLakvd z+A&Q&omVC}$=sWmDI(UU9&!{f$3Y8`W_is5*=%8evQuhxqXA060*Wa>P&2`7 zS|mbHvZY{eNl$nudrC1VIR&bf-?lk4NXZRrXED&&cX7Bd=D86x;o?2AX8+WO#~*5p zeYq!eFgYss4d(YHRF`pN7Ux0kTN7eM_Rasn21_t z2u;+f6aK-#-BmU}sc_;q!KRzcxT1VSX}=!g7^|LTE?nnc=Uv~3l7qbc zioD1Q!xvO)3fX{a1W;F-vq_Cpl@xmJ2OIBdkc%kLG}9 zd-#r4r`{rg-n1FWgA3PX%^~U1Gal;KarSf78vC8vbz2?!6IQSF(RuwN_|7(*64Z1_ zrKmNjRk^CDJEH<;F_rowA^@@&j>x_%`W-*E>eE4LNVUfiGB)b47e%*8@*2mFAX~Td zXzChl&uA;qnbEuN*g#rhUGnpk4QVDcFwcD7gRRH5k*)C#S@{XE_@e&}*NXG8TgxBF z$aG?z+FT)>mN!Hj=Ucyr_VudD7U}ps{`3EGZLSmdx77S*J=?$k{}C0fYG-6%=wfZ~ zzYVVhe-J`{R2G;<>2f-ji$hMASp)x^6FB3WB&4VqX@Tlh3&GC{iBN-08}NPa zWo68~Jb~4Y@buFB8Lb@+i6}INHfyY(uk08 zhlzpnc;pE~$J6V0U%In^6>tSt!vEjXJuiPLevDt&pFSi20OkLb?){$!mawt6{@)&r zDRVt5@&b9*nH-bYM~)Z$#Qy9l3(XAY%$if~&W(rf4Clv7VFxupfjhN7 z77o;3Kwy<$x~i#sW?Hd_NM=4jEJ4X%PJd6F6jKg=#LkM{CdugWhmj&oXoA?_KnGA{ zs90!ac=A{|*&bfLWDHp-mdU{x3-reDe3KJmiHXIAhcJ-yY+fbgx_si&eIfEvP}dQs zV{hRJ%}~s?T7E-1V_M#%Sm`6h^~=EgjG;N{?OlbX+3Ln}%mYm_9fUGU6y^p_A-T40 zu2S^-P*rE0AOGB?YJq^7Y1nY<+C^5<-I$}}d7!L)Pd47}_zan>r1h%4ly{Cb45iF+ zsU4k1O*0oFSRUeDKmBDAT3Q#r{G+R~s=7Z{n9OMzlR0u`TgLBffv29DTj~uJ%EQ_By7 zIonH+y-aO$%#wx5LR`$K!4*R*%S)A1>Eb78)5{;j>4wbJcj&tkGb5{4DW?EYWz1FQ zh-4~R1T30&IYG&lvxOChNMy^?`!ArjC3yQu6|bU~S^wg+`x z-;;(kT38sp=yK{ont4Huo@N7!u@eXv79;Chl-j%<_9v6Nt_FEn)|>hY{0q=SnLR4a z)ovPL`fD(VKJPY$?oW?@6CVv~UV3&_O-^!| z%iWDxfB?}~b*tr^8`-ET))7z20N&zzopbyv@k-HgnCLZU?PR{*ntSd>KOa)xSHlmogo7AKw@JOlvp#4ZM^MQZ@~MLPDcohB z$SQa9G<%rV(AC~?b@Ez|e_Mt=&_AO%X7_bOccHknI&)2wU*0mkUA$@t5p0piL>k%N zuK#?Y1=wy>rv`l<*Nf5cb-Tc`E^HYr>(Qi0dL~u_(Zuh8suqr_dc=`-hSO;a(r=IO zdHeHuhYNTQ=H)fb`P(RJ4!VHn2}TUYR&8h3Yb zOol5Kz(p5g8+5qP<&W6*(u#K&UiC&(rzV?&Q&sZB%^spC@d$SXZiks8!^?jFj01zA z-QRcMvJDt19v$zhuz(1$@0r{IIl_phjVsnP_4Syx?=ZYovgwraXG(1?Om;&t+lKi_ zvN&SV0%Fq1e^ABGfZiigs5`)Zzpp#~DYf~Bc*_m+-K*_)IP_W$)7k~HsS9=~B2w6y z{UJH}vL&@BcZe2oN$!|~6Ep`xpFrP<0!3$}wAN{x-7>b)fYKQ>WtHryAoIaY`6VdX zgXA3%(jy_+QVTs{y}ToFKo@Ysc!!#G?prb^uJNKIF45j2+`dEFm7~~g?uTvq$v2(d z(F~cp99Gu6l#~iD%n#Sf`LwYF7?{g1?+1*xR^0hI9oFRu9O(@xyoQZ(jJ-ILl6Kj0 zw%haHx7Q5hm6omFZB_V}1VHgWZLey-UTOnFYm@(i#;}POkP;O5wWgzbWpzPof|+H$Pxca)Do_U04{ zY65i?JxgR1PoKn?JDP{Jrl&YWM&7n|iygh`#PhfDzafZ6h#n7Jerykv)Y}h%;NSkT z!*elvgt#WaJ0+fB+Zc1eRdN)ApA322Vd>N(%M~BAtN+=f8r)Qu<;#4kj-Zyk4w}R- z6?}198ySl(aqK(lX`9cZq*yG9Jp`|B-wZVRlP-|PQ@&cZTD3|=(WZ39+W7LnUl9O+ zQ|uAv{Vs`s1*nhiObO)#IcvtiE9D=5*s9J7EVnz zwklpy^b+gCU`lj^7)hzirB@3-Wj@wBPNu6m@e|*(_#9r-ZrwLu*E^Ws9w!G{0MC1> z2wwUhjCjI`mjFcR2ouP@(qMZ|6iS9|6shDx_sRG>aDqc_gZEni%?D=$V>2Liz%!8t z#fskWGZ9-4hA%#Kp9KC~odmA*kw>Kby3YqGNS#>1ymTLTLV$O~fOkgxy2w5MqK;te zIx%~-UM1q))jnIXdTq6llk*}w^4{*8_35r?=y&jB)+Y)2UVrqN|2O7Xf6gxnngggfHCIyZwC0r; z@(ZWZWXN0rVGY3f2*uK50cCQM4Rh|Q!`bB@a(EMfWGXnt2z*^O)eUdUh+JANh;>CuxIkZgiFz=VTAQ=kdvfvUFOY zEB=QvPA?y*)?fRHEoeV@UdR`E32oZ)L<<1BZ2s4B3Pv(>OXy8uO6N;4BQv)q0(=KTJ&d6OtLq6;&Al$WwI) z=UBx%7_>xc$YXDBME&rPqLxZ|b5H^`@2{M&rGUVIXi0sZW8EpQS3pR?UyBB$G}``v zTBCz8!mv>GwFxYOal0V2#l^dnbv=Cp^#_ftm&&iMCqj3;#Sd8+^ySn*HU)Km|Y2m{Q zFpPwqD5SCu6SdxQK8?-HV`2NRT=|-GK#T}b_&9uKK-}kLWaefMGY0K@9NL`x*_?aL zA$HOYtH7VnF}Dl26e18_bHj1#6mlZ3JXAv%yKm6Z!SD)1= z#Drcy05do+iPLKYZ(I)Q-*|lr5;x-mUI>8K`2CDETSc9K@PlfuV(xg7?ua5n54V&3 zSsQ3h7YEDyQHeOL2(gny7`EvmXRwf;E;UmWdsty-zZOF1H4l@=h}VqR zVB&EcDpLiz*zMoGDbpIyd@>ajpwg$`1(D?)$q%xpWTw)^ACsxIvrJ|ZQq+`<1q@f# z(lMIVEaDagWXPEUDx};1H^3K)bdjc2F*JFl;67}Pp{Dtr((-Ri&u5yMnY!ED8Kv!P zmF;M;hm;k^kEyDABNE7GsB%-VrEwrj-dHN~O#zP|poLFEJZ}-S?*0(9TiR>~g)p5( z(E_xNVd&DxVx{dtnr6k7n$&AA1|}o3oOH$QB)kX^uS-B zX4q#g=jIEhYfD8)zIQcFb_ORi74hn!J67^PXUS<`us_RGPVuo_*d=*cFGY9U{Mzq%U~K zPpQy*h0qJ6e(wpnez^!yj8=lu8AUcTsr?1fQ11vInsy)T?F65jd|bP+7m$iqK6Af)1+E)c6?ki8VAwg+;9550>BDO29zcDcHgBndmey4BEB z+S6fXuVuG$ovVXXqzf6Bf2GzDSVW4s zqcq?gYMr9*)WVINi{1HLQ3vSR?L5@hCe_~OFw$W*BIsRQ>;n(7`+AdMNN1%KThq_M zS)AFeQb=PR^66;a(lyTVywjD%1R% z>iI@nJ`{bII7q?*a=8W6-NoVZGt`vYAof4ZU1URNHv_jzN2X)prYS3*sJ(R{%OZ3oH#;@QIhooDvsKhN_ae^?1|E~w z&PW2UO#>pVQX$?lMK|$WC1ed1jEOiHTt&rWQi}18n*gRhn)XJ75S(TvEJ}hZqO``B zWJ)GSimBz;#L1!JUYMO-Qn&2WfIU*bFanq_fvL+?y}Q5G^`XHj54ok?I-`eptNpl} z+{!!@25&UI8ZfeF>!5MRrQ8M^-l1HDb5ppFp%P`XXT+hFs4`s57TW+rZQ}x9 zN^J#{HR2iqkp~!B5;OUWu_Gvl? z2PTks?z~Hr6Ekt=PDHI(5$kW&yRtH?@_7lzxTU*HhU4Jz zK_HQ6e?&SK(-RK?R30%p7@>!6kE_BY8VJZ=_8$Kydb5&NKPFro5pnDm0a5G@Mby?c zIy;|^aYn|q8rwX*NZLMpibCFF)D+1C{qNdF*id+k5WmOmH)jYxDI3m_7_?s-)x0tLb z3K*{ffLHdSb2oKKWK>Q2dSuWHBA7wh-_#8Odbf4??!baEig2=1n81S@d{#AZLI$xw zSq1nxZ4r2;?)H@i#)JDpnR`NA-9Jpr=~16_@e61Xgmel4J<{5KA#XpF4?kok%oa{M zmj7c|ES}C62Vk`xZF?pl=2J?(2n{?m)%x_U`^l^;SmTVz0`-y4zT=*G_ps|R@kaRH zL3`_tKBOLeRYRBU4s1yBVdQSoM&NtZ&jd`*3%GWdcp$G>*<6l9qwA9lYf}+yhwzR;KIChnZ``7LY%wH8jPCkhb76f3(F-s0hHa+v zfWt>g-*qj~?DNxO$cacSY-b)FIcMuxS*Q+uDh_#El8Jn;6o7kmiG9B%6w2OeAz1x`N`?+Q#;)j9pm6baOdxqLj3t> zzuh6Aj13icI7C@s zVdst*g;a2gIA}PhH5l3RVpA<1tXbMN@wY_~w&ihHAqi0K?_swuMBsF}vj&x(kPx9W zj?Gh`0n+o$pfg0(E;9ECeXD}cpP&4xH?rpjxO!+jMXWdQs(Xf%7qa3fisyfR3A=p} zmOlk!kA3s^7|`CbcN0JN=-+Za*HMkMtOvR;z>4cMicA4r6};TWC&VxEJnj{IvSl$X zFC59`0e4cvKjO+55d6a{4)8|c!EiI;(vXMHhIPn#HIj|ihRz*TS&AtI4YeRGF(;+X1lifl zMs=YwBOev1tW4F|oLz;^nHIBRrlKn!qgkm;?UaK>!h^A;Z(kxQhY~s)T}ffJVkoF`ORBrZH5v=kiN<+B8TE$QW(FHvufZV zl$5%*cG-K(wwjn~3_c#Cj&ZsWX6Aq@&mEfdo!d#8G$GxGM2_SJ8xB5ZkpstTl}+&t7A zbI6;yY3Q|Gd0$i4Gkr_JmJ=!1~GLlDpnArxQ;^>`O$c`r)wT?^^wJhYIsEM=es++aR&?g|u6^tjI zM#V*=qbw5AmBnvUiO?S(@Z1Rfohim(TQwsvy?+H?lmT@Zp4N*&?&t^Z2lFz1r%*n; zHCTJ-Z`F&CHm`hyJuED+MOsLdsy|;Yc-T&uexCV}FxU>zA&3_Mo>v6?4UvnGbKw^7 zy8|v7_^QwqKF<{yg68w$W%=&h#)Nio*XnZ?x2I>8A|tcO9fKh7K^iYYOK1B zU>`;Z98j|(tHo!m1zaLnOW?~hamEFTq<7d8(Y7_;1I+9{QD6ekz@7r|-NCtC785K> zVT3^xXe6`YzlOeu`Jq~XP^tc1KTz7Aroe$$2nh|ZGTd%KXQS*U{oq1FOMpk*5%2b> zq}_t)zCcYOYz#AU0)56tYi!_>3nEcqZ~Pi@%*#Ig>EVE3D6;f`E2p}IrG z@7aQB9E^YchGc?uzV-gEavb=d{}R~kjfnu;ufVW=ch189+XDNKutXeO46H4jJ%sFR z>fs>tO^=e3sa&ZY^0fa*=wvcY}(p$ z2*2U+ypJUG+!-*XnHhL34&xYeH)=&diWkCiIGCJfUwzJ|Gyc8&8zTE-=0Fq;n+-`2 zzC>WoPE;eokqu)6x#Y-Rw(pIOpdCLX0+MzjO@L60JWUVmH1!_Xn?1q!*VJ;As43fL zb00;Cdv3Y1YWuX%l&PF!it$=HWbH~c$H2D1G>yeJBC@7N#>#aF(R5|Ly`H(Jemi&q z%g~svA6ZC$v{^dA^gcFb&*0v~5)LL5D5}(inype~i1ywv#I+OEibS_#$VRDlM(9jBAf}Q?t#|odYAtPM>%*SD zuKP+2It$MRT5DZIt~-a)9OorsitIX;>qG{-No+2^n}j9BlE@(TVnb955H;oLgK|h6 zShWNNdl?bDM#@-&Tmy4I(F+gl(Z5vfv+>`3x+)HTbfA}h6!Ad)bnFE<;C@;ZJuZYz zFt^tt2oCXC_rQB_brJqrUy7y-P9u^KM7wNetY^{vbkQx0eqSS>shqx;6JGW#v`R)w zd`vmd$3-sa$RkYrlKSd0T{|sUM3{;;_#SYtVK8w2&ZC!Nw1eU`vP-9KIt$hT5e$6j z_?sPHlz4ELPLIZpsUhC&dw|^q$CQ55MB`Qj+}Vh;w8 zmP?V>5QQU^ppk`tkrU8w7}kcP)q?XRc!TuWF+G4tK2m+{%BcO?O55o3OBSZs0qrO% zEiROF2OoODUn>JGWT z&F7IRLp2`Negauju>00oeFimIwgGcrq5;RFJn=LPlPQ;DMz z@O#O7<619SJhgh?cCRn@hAk(?~@S ztU8A^TIqoIDPK~#+=a%q$F8tHk`E&cX2!aN2Kg-;kk6D=I&+hFsQr^SGuuDu>n`zR zJ8qSKE#+!INu*L^JT}!6v5YaTTBNUnKJ&Z0xielqO*;IG4RqiVGq)$B@Nv}0qvm2w zD9&_7C(0E}uaQ$|1UwEz*cGQQ2hJUj#~*ARExRABZX!GpCFdSYHkv)sAcF{tOzs7b zK@G1|{37BW-3~=VhJLZ`0e}eY?tfR;nr>UY!+?T z{gL92)iOVLkb5tnj=R9nUdaB~-qe^{$$MsKU06QH)GyI0i-7e9e=E+=gTU*=q}VA?OSH3Z;GaFa`RR24eqNf`kN~F*UPE# zs;}f759SAJkdd2COAqQOtet%3s_{97KJ>maREnS(vN;42n}S3u4~_~?_eA{NBLgy6 zIfD|83Z@Pr6VkF$a8>XTAvJ+kri2+lMg>I01)S{&g+r4_rpBj-dTqiir}Q*ro~pc4 znFpi{^Q{6i$g=k@RG?+SUm1ZF>VJj#n$$i)**&64QpI|dZ0o?O7MGebG;7O{A)&kf zE~F>JO+FGMfL6zCL_MA7r^(O%MFeMDMqynvXRIzuhJeh*(!83+w5M=v{w9ZPilU?$ zisjVo*wPuJ_KXO8mH96Ts?)l-;-qjUV<@b!#7aatqJ&6tF1Wn~Oer$P)eKEb2@|E#AuuB^&S`%P zgyQ5UNvpk@OzpC@D||yNJGg8|7*!2}lZNHf#Qd649Pn3TFfRn0qS4eD6sOX~+DRP_HIQw||h$jAl%7aq^b*i%AW; zU|8k)?ES3hKBP_#L?dts3$p@6w`F$99!&Ac-2CG^P_ZUAADv-fG5`x$ZSAJt7cFpU zB9(&UA~FqaoK7#+;R=dAs-P_0Z$j_AdP@DkP$9;3>fye@t<81$8=AqC7G`XOPspX! zOunriUebI7?Pxq6k@n0a?vB8uZ=X_;B05|XJC1`oIr=`(YuXyzC6#6;z})I#sdC*JhiL*b*l)mzA==HD7@Gw zMP*AY%IS8)C$9Jcn(}wi@f%TwA_D^@17vYDeIhZMm-~`L%e2o|qfpnpPSta2-Tkzj zho*NnI)$NHc(cOv`aqQ^Cjq+s2Y-!b?VY?6gEZwVc}E0IG8V$5q1__hcU*GsB1P?> zIV0m6(ljwBBRMCBo2`jte>$?`b`CcmU|MrC+XRzI$vM))m^Z1JilpJHwM(k$YIU_M zio9qXd&P)+nyM4A-OD_DXYsb+xhc&{)1+l)Lot_eEHSL2{63i#dy3Xp8zEt@kb|1; zP+bM&Uxc$YBMPjG*ELt8CUp%v)t0H8u8jBelC3#?hRn!xO)ByC<`<_`3jDGII0cT| z5$*|APw@6rs*KuciY}`R`EPAL*I(xp6Fsf+D zMBr$HaptS9q|V2j!)&05~#3g-6QqoA73C8$o#NPVg8@`{XQPOYt|tlE{p$%<^$s-IY=4f+K_$jWJ-y%*&;f8q28CR>=4vNGd7BmRLSw zOYRY^2aCoiCiiSuR+^zM#Ea`Ucg7TkFt->f>wNGhV~-x1DF!B{Ol(vK(!}J;^>(Ge z^dTuYVx`=0k>d*$PSTT6vf_7YbdJ-xgJ;g&5VtG#I5X!KnH|xdmO0-(>tq(tar>@U z;>I%Dvg9o&U6GeT*G?I)2C}$Vs5in9RYl{3nK_B4>*UDC?3j^3XuBh;J2H38M$C51 zGKv@Y*koN{Mv)m=P;Zs#YSH71H984D(ORdWUv_I5R9;5HA{2V)jp8ff_^b|B+dQlK z{jt@PD&{%4Qk-;|=LwFx&aY7~wdbVJZh?*|Uk);_O9tmT8P&#X$`@yM=h&9_2R2@U z$nLYs680Uvu<$oSP~2DJ>bEZiGpdHgVpPVE=^*SUH>dcIT*gInHvwAN4W;|6OAK!3 z(t_0Bd)K_C@~Fv+6u*H7L`Wz1@rhU%AI)Pz=b#hs%T0nrdAJ{7 z?>NWX>#BJYxO6`CVHQ7!S#wVkxNJV*Zl$NeZ)QUKS!?@fUMZtYx|4wi)OEnn{665 zXVF44c)|d2W-y;PZQ)Nm%_;PTDY6jEsyb0k9vsS ztWnXDQ4tbGY%q+e5862B+l`JUaiwE9k4pcTkVi0cTzqI=2`aXrScj;fB^-$+Eg7NN zK3C|ZQ~8z_n;qh_9Fo^i*}@wGFwwFc3r5aQI8*JxE~GCVdt3+?S0NewoWd?fvO}wd z+&*$xL0AEZEa841!@L9NO!4YAytyA>)M}cGy&(e`DqnyVDf^_s1OqS^AP4o0x;ksX zX+Oo*WN=YQo~7Q6vF_0F6x3I%d(etJL>L_sz=vG}0K0aN9){vk{I-yh$pmVLM`>uTOG)y4(Zs2C8Yjqqc59*+x? zEHFP@IK9IiJ<{De_<^V6qY!S~z}CQ!Fe`3cRWI)5!ysrQCIr86(eCu7z8j01?kMM? z;3|pcIl)dxOpCGPC1r@y(5CZxksra_^DJwsFH8XM9QeKfSnnj)S3;eS67F-D+_xg! zzcILfTe_bQFb>l)_8c-QLibEhhm1>4Sa4mAf4a1NgKLk+{gSXIoexSm!c>Cw%oFL( zLJ)SGuyShIt+gJ-?muZ;unQuiTW27N5UCu`xkLLe1UqOZld{62$W@m<<#atCn#+vE zH1|q>`T|AXU~LE87Q)mp(0b1#u1EzPk$V8wJQp`l0d_~z9~9JBQ^1!)X$6~}yQ7o5 zEjvBG{j1JW7Mk{h=7ToaVVD*ZhA=Omw7xIEQ5x+&d0k$B;1cp(|CS*cACE`%!x0>Tn59&keRN zx@sM=VGG3x8~cXD7DWw7!cxT*r3_KRR>|r!gsot!;)&sev0$%ayAiq19V+GWW&^(n zb>b2n!f?)#ER*wLD*qv>Tuk~i;IXY4Jr#%O2~-s==P*0gIS@96uJezzj}uVyo-ma8 z*L2r(M6Gh_oPbTMZT@qOu@OO|3@QEriH}5a=mnvHy zTf`?f*|+o4Zs&8-`h9bjS67)wjUn8Ms4h{t3XTWw)^SDtgvvnB3x&$m0g^6*!^jjX zs;(;!oz~FQ>a4?t23Osw&I|EUeO4p0t`Y6qCF9eh_9ctCg-^bo=DYa9K(5P<;xw?0ZZME{{8WG0!!6jXg?irX4 zg9;lTgb_-&PDW>7FRsaD*WhLTT>YWn;Tk{-K6`|bc7CQ^2sT@gwqfzapWM5cHdMo5 zy+I`F1KqOFS@V?`huu11T*Bj##iWrT)F-XVLzUFVm88O9oi>qa1TJy~8jKEOFy{Qy z0u;~*B=AhST*b9e3c64fN?(2(Sm1hgz_(vg)3zTM;YK+QLR%;^bar(`#o-bF5&|0Jr|^Q5YYzc7s!``kYaKQ zwF`AV$Nu3oC(^Ye6?jOSd!{= z7K-*;3M}|v*=GEY19V}NUn3Zc-|C;||H<)}v;Qxeztexx*c=tB|0@6WEV;Eom7EYj ziuI#9ZoK` z(IlU>r(uO$RVZTi^nZnS%Dk#Gqt9nGSBO^(Y-h^oItE6bFJ}+;W~B7@_#_K&V{Ll0 zHft5xPP8@GwMxMjhv%IK;?44ps}ptfp*ZLEx}66HbUejX%)?+&Gzn@2vEUTU6$nP% z;NI{&2?B`jC1>(Y6|@+kRf|CryR5%`0wBl%bKY@M>sj4224v1<1NDl7LpZ@WzKH`4 ze)#^N*b0CJq*A)6?jxDYnO06@TV0tV)B&W5-4g)3?Stk4y5aJMt81NXlCFZo^RkXw zy|Ki31X?k>z!INufyhmILGBtY%ttW9#(x!j=mQVNizX_x$6~Z>hdO6R3%N>+qpe>I zwCM1^`O zbUf@EmxNNyeJGLb|0omCrOmENAEpH}+;&^bN;v^;qx-3J5)#wu&l$o9<_Fq$5%iSh zerpJQaM`P|(uotLEMrKX3!+saW)4I-fb2{aGR;|KD^bo;93DTo0o<}6AJ?EITallC z|FTh@19c03|B~ka5Cv=m{SMu(z~={$U2*gFbiH zC}5f7c68NBCfy8;X?B-Uj9CPjQ`eN~f=q7S+KQy6suvwg#q-aI?G&0cc4l}}t|F{qP5M-@e}7wQl9R{*d8Fal&mw3STPPgjj8lQp+PtKnIJYgL|t z+Tph`UCBQPnWa^$nOB1H&I9A%a`v9{ZXLrQ%%Xyh@Yr(UCezjrFCAk=H}vQe<$FQK zj!VPrQo&7ET`5V~4Ybp`4Mkxe#G?^?;~mmB7_-#OwDQo>oM6Lzc}X1F$;1Wrr5~HO z2~PbN>}ho}KZ~vyx(9CEdmN7G!_m|{ew7W`HS2^c9d5ZCaJx~f=hj_A2-o&66If=D z1|umwaREqVl(~`7lzxi-{uR`C8`Z!KcpJrDu0Pw~1K>5mWPHBDqDE;cQ{(0r&B)1e zleW7o0ZKnkl{*&HZMAaMJ)7^$t5I~=-1WgzT}8?7wFzq<3#;0#X(%i)F9qyU&(6X`4EV60p1Wg0dC39CG-QeqdM`b zLV$qvA%pcH=8HTT>;oWOL{T!_@JK14o_*|JOqCllUO5+mXW#OT*2S$!>ncsH5S!=9 z8sQ%3WH3b9!Z$GTf6&V-e@uk!A%cb(v`Mkc*hG9>p~{GR|EELR{|X#bz_)7+zvWIh zng4~W#Q)1${?AHo@q+M1R#|jk$;!RRm^hv#z91HFCngSN3WkTB2@y5o2VAfR7h;3} znvl-Uuy5ZTwNg;t)&ZFlA=!KTe-?5f`E4L z+so4{?fU4c^nAWlS*h~e>HgSR0t3*`Y+s6H+mCT|NAWWcbKkZmIw$Sj#tzfEN9Ed$ zY^z{TL1=Y+x^ewN_+F3XQ+R;ok`^u83*A!bmKy0&=^l%HJ@j!EAN{EpTaWWg1HOq5jH`HS#}Pd=^>rTvp5L2Om#chZLUG$LpynO%cCBg; zyW4SSNAr4Hv?}WLVJ+O8n_r@QY0#ddUj;yc+tkPAtvV#YIzBK!$!ii|_|_gdvyl&^ zqu+>PO*|k8)jge}qU@b~U9+Z#@f%R@J04q8@fI4<+bBTXJD$?=_Q(?P9+M3hdwZnS z^Q}4bVl5xoyFc+k@tbR*&mz9awq8Lirg3 zm3lxz;cFRkyw#Yc_OlC0dBcEu1k3HmQ~5&T^R^x1JJM5+?5liZ!)mS{rg?Ki>8l^o z{7Ou@?{l?$j}-aL#QP~Y%RXnJ;w^|HKD;a$^B7yNXKEV55~Gjb465|{DAW1 zp00ArW_ij%u?R>6o)6+z0q3%aET%yqB_;KthKFp!F@P0QHfSA+Y1cqO<+2`yGv^c} z$p}s%hG*rPxz*|Y(nN91y_~yYo^tD;i)|+HCkV@+PQ4b?3=LNk3BRL8)+U$LmuR$;5Hp2dlK-JP=5zjfCd9KK3fb!9|UvWUd--94eab46d=I&})4x z38Z^^Ys{vjdRLrFb7S>{JGWk&{;<5r|iBOM8P}5yqYiXi=7GLSMrmUmhVs4@lvXH6XW_&OR5`~HteFf@R z`v4p`yrFt#@z5EFV!jW=b6N{|Kg=xlPjey5I5JApHs*DP>7k= zXVN%@W&JFttH->tcL3wLxt*jVaCh7|(vm_}T!=vJ#H}l5j~hr~C&&}1cwj|%fM~_7 z>t-XiW!dJ}VC6#9QoQ_zsZ;YzYbZD;T7;;5R8a5~#?ibb2Q)kVX$Newad;J2JL+=Q zv3YX72wa+|pWE-UCqJaTs5`D*g<>#>aGP&)UtABMOSt) zpB)%lih#JiTM7Vk%5Sg46=V72)*N~)u=tjqjwp`G9KLw_2%of#MAYU17?XsC2x2-n z7upoWdPD>t`2vFBxgEkx6K(V)EfV<0CQK)KYS9u#dQ-_EF+^=iLk}*Uj9E`r3NZ`F zwm|R$gR-Ix{#wU|$q}Z{ZvNB}jPiSC#E#kFOa|dZdcPH}0DH+M=>4KM4s#T%9zME8wTNw_kNrmU)P#dfbEcXqAvDcGBG7YAnAD^UHPmxixUmLXFJrs8W_-N!J1r zK8KL9>kg|6S2RMUKMd8XyIh0c*C5jl7nToeiveDtETc5>OUvj4Hd zg23q>>Mzyq($;~+Hqub;G-dmAvw3r-vy!n8%wiG;^hnjtvaCme6J_u?2~PbM(j9Y3 z%SUk!0jxRf+~((FV! zEXwhcEc~Fw*Khzswx+TjJ~AnV`|3xx+566IsZ7DT#Y1C}RDKMr9w2h0f-{rXbJxg~ zt>u9$7eIAGg;>e(0uyAPn34^eG}k+ zLds&l5u7vKyp^1d%N}DPl{QJS*4nYwRNlH}MB^16Qzs9wh-5B2q{2uIqKjKQfB@8@ zve>NfE+Q+aNab7nn@5O1NL5(n%J%IFhU+rBsC!RMGlbOxdolCcNS0k-Lv~d6LP5Ss zXOr%+Bl5{^WFzRC7wwxBW6_HX^S6g$amPMgjw5<}d2P^me@KH(%I4i$zS!E2!xI>x z*XKd*U`a-xweW72aTwXdp1FDJIyqf^ z@fgRF%dPRHd)Y^eLCMe=z%bJV)z6q)F$`8O8`sAu$Vz2iF!hldqmZ zoQfp#v@t2&g2>uQ*VfCN##l~HJJ?#guquuV!yuB#TcX`J0#~dm#t3HN%_uAi+41?5FZLFQ!u4uUg4L!Y^E1QdRNj3Jxp3jCg300Iig;UbylF-Z^ zPOQO9mT_PeXvS&I@(g{ivpbFe7m}ckKfXF@wR!#}f+LY~?DM!U0oXm9z}<_1b;H;x zI=h5BiNM5p;G#$&9ML>|>SV14;uNY<+wZHmvz(weut8DcgtqWJm_y+ldgp5I+P|WO zsS{tCgV~3V7)A&!H_>R5(%OeZ9fS)pheMHvU^N193@bKF6Qo9=G=pU?N?;!nzLAkk z4ozX;umeCD8Ni8O;~0`?PUMGbNN^5QHgnpOrm_b|(N&2Q2{A*sRRe$_r@$^yYhvHC zbRXpBhru?0#>&gMKH?8SnB>z|Uh_N{!ouowr{n5Qw|Hxu^~bbN5NL{I3AszWva7zy zvfPM!JL!{tEfH)Uz)<>x>K$?nj|htf#zVwLGX|=<`m1u})KhWpb0LI}_=q2fnaD{W z6NGvqn2uoTi&uzaExwNbZtPlxfH$tW)D?`vkdko>dA^ezNnBrHV7o!Nj4+1wb>;(( z4CyA~FXPmVa)hjjk?_N*4-p@L!rGO!MMvwc-M7Ml(vBd*+OxND=nT&xUB9R%ud{mu!!L30rk~|Y(Tl6;+BS|{T23c>Sk~6Ev9yn7ZQ#rjJG39} zotn&yemiAHvWA~7ox`m*YDS@r?p(vKg5x4khX>ONu~Z!#>nMnL#GHC_14G&aP*#E& zZc?5Z)ER`A4*OY)RcyziD1>m*UmM2RMj@A@#@7mc((nDo(`FcO%*-7_<*}iB>?Lqy z+#l1$5iIk~*+v>aHTCTO2vE;;_b+WOpFgsR7{%ctdQX1Q;Mf=&DOB(e7&6xWv02GA zg|k^rSW4BFWp?5L=vbMe4pdBr0BUf7N(oP%gYI_;&+ph9UaRH5^D}zxEk}-LD zDW*iG3K}wUv1EoSN0X%}~-_Z|*6faZvqe!30$%OHoIjr>nqX;`^X1NJUjeO;?evp`xy; z!qQh?Zhjd(*f?o%5<;?6imZaFHl3%)Ttm5f40_VvFnEc-+`#Ku*@*9BJ>0E0Z7uR?z!{G4In4N4inby&2t23E}FzxCwh zvau{=;5Gn~!_x;-s7qO9spYTnGLrB0D8``DeUEn}G-?Wlm3LradIi1G;7UxSULn>K zVF%k(N@w-$XP^n3!Q%8MQF;>2p>aBuHl^FUO0*eoqw6gNo5!h~!DUA{b`*)YS695|miCkCvS!812d|sG~p>3JX%?dBhPf7s+iB z=_4eMzEBd{1EK(UzjPa{C$38^i+czNu$T+(zBHio$NW371i1PZA-DmtDL#?Q?{nPk zQcPx_x;52HI@77$JBU%Ao*H5jb-6yTltm8p+6jidmV5{O34-ON->FrHkLIrR%Y_^9 z2(+J2iiQ$3B6;7j>3s%5od5d*;H!b5D>)-(lzjsUU7_(FBC*SHM*pflirXR|?fFfy zM-gUI%{dAQ8=iUwWAtxi$I^haC|74v~6)E%+zb zTJE4py^~B~&+fp@`JaDoBm~%n?aUt7I@BSB#4~};jWd{eDT3BMQ6M%at~c}#5Wa`E z;k~+8dURIe9#m;y8b66D%R7jdfPpRP1P#uc7d;$#eX4skk*%&cXx?#ltrAwYP$HqX zq&=ZN9|07KZ{48Ta{hfr8N6#+mkp^vj9#iNU=0mW#4p12)(!5qY)-5m29)5R_^NmIZDI2(-1z?K2$)8w*;MdWd@1na4Q^)zVK*G_y11y8(=H7UIq7|o}?u==D$ zi6uI1>x+P7P$_3kkG*C^4V)Uku2xw7BCo+&e3qC8!8FWx9r zdp;DYl|&eU9aeOlXdG0*8I16nwI<>(6;6(-QLyPQ3qBqxFm#Ccj#xVKWf0mB5rJoSxYKd; zE<9JRu-KIpQ+Q-jH+>_6U&(#WVi(k@aM{{0gcAu=p6uec{^bIpFn1|!d`T`iO0fge zql#v-tIIAFTUo`eAjPb#I~uS2-n>ZM8s@Pzu(ZYnUpOtJB&k5v6&rStet1u$gl&slgpVT-pMAU8;>kv zbokDh6i`B%TRvR;pyQ#?i$rr6#O74kOvrVog&8R>>7o!jw|Hj@=?$ zp;_4=%*J3$t&o{rkh%(VcJ1#P19~3dB(>D?cSwE+3hY_)gP@#Z27V;t!_mZf$fMhE zhu#W{{k_4JYd9=3is@5d0Emyq+4N=by(F{ukbqL=DnKMhHu0vk_WK1X^3}H4T{AP9 z+^L!QaoaZi0a2d2qKHKI%euS*E47=wS!MTi5Ybe=59aj2$)`ezwm>wg+aFuWiF3(o zf6&&Pd}f{zc4*OtJ3**k+37aK#E~V=SpcL-y%)xmDe6RlS~XZh8`-pBQNJNkqnc6u zZyxT6oTLM0jnO3#J=fy-GTI_WBxUoT<^9FQ7{EbYRL z!E9LmBVBXG2l(g};jF!o&wiYi1a_jLMP}$V**IoXcBbgjXz$!?rXsLRsgq4Mgr#Xt ziXkAKdcI>z3x%rlj$x)J`d|A=vSsJQ}GvqTBC3hiG zF2z&k3md_y`L&-Nv&=h3w*rjK;e#wPOvt;#@dfwPG*Q_z8LoI?yKybljZzpPapoG> zc(V$b<^b!a6#Ceq4vltwsXH)fc0e*ytQS4VU2Oq6Q1o(Gd= zB^ho*l!LwH%uP|(xjZ??+!6j!piu59u?aI#WDJlPiRfx+r{)}*r?R-ON;F}?3yiLb z)Ew1?p|#&^oga8G6(wM`9ckDL?va)!8m@_dWMMhi7Ej?XlL#UkN3J~gJ!y2{)E_TG zdD|0GPs6ZV(#?}gp9fAsX?E1_Bzo+TLeyp`ESM#nXzIS)Vh2!5He4s7GZuB1!tU(? z?TU}Rm`b|Y6ezneLk~8-J(1vpCIWCT1CrR^yz4ZCE zq2`AEDI0$!zun|Vw?TaazzsRL1J~S>m-ZX61LpQG+!LP;%+>#K{jCZObj-(?3DV^P zecpSo$4wnrT>JBGgU{`!*#BW067YtHJun(RqHxFc1EJeryC?jH(nXbZ7fJ4~GGzS{ zoDS2A47u-A2ekvI8xU}pvJPw$A?qe;?MDz`(BhW8w|(Qs_JH?%WW0$|{!Y7*PU(kM0dUZOzh(y0K3DQ!s zwlk#>y-r3n#w7J}GUl}6?3nclAh(RefjCKc$0TSV9nqJSeRm_sQ!WWAs5v%2|ETFagPwP*?*1=4ZOe!u zlvL&J@x%}+nj?o46V6WRCWn@i$lN)Rwi47Vn&)*xjQ}fZs|6#CI4hd8BhD$9zuh1{ zsay2s9avn{Tn;@a6x;e9uxy&U{W7VqEAHK*GXt_N+`3h= zgICKH?nRtne&wqBrY^j;3TOv4myUx@M>v&ecgl7nHkUl@Iy(_=6>^6=mrCw=n_;h2 zbo+8EZT4XwAiVj$QtbcU;!`52typsK_8Mh{idi$=^I-k>HHN(P*1-CiRgJ;fOx+V@VevK8jLliA z9iFw~yqRr1y`gPcy{Ty-dU4yu9 z^Fn>zoG1sWLN(VR5AKHcy!g{^(IHj-!$cS(saAxrQ7+~@uv0FEd_0AI+d6vB;H@5 z2kQ;6Bgo}uUS7qs)dH=sPwoh}jHH&%;@_=kBZ;_*X%&9lmbk~eCFyG#VhB{6pfZye z_5e~G*UORsEX1$V0o)VdBaVWjAe7Ktaz!7&8{%htKQl(Au9$!`lY&5$xf4n)mSOFY zc8H-!OfI1Zl>siH>Zk`q!IjB?ZZQ{yDyCqeM^TA1k|n|TN+cBNz{6Y+mCt-6XU@;T zFI$9x5+|BI!B;K_%7;ENNsoB|HlegbNCOUJK9P%$iAV?5m~7J@Gft$_>VRRDoUJ%z zYzJ2=XWP*RV@Z#+h&QMWvvg)edyQkdwy!`4s01DbuqSv*YvG9OhWC*(^ z+;POqCa_pq#%4#78%o$$9vgz5Hu1g09v@Mt2691|ab%7SkXGrZ3^F8JK2XmzDcuBn zD%P>MgpwcD%jZx1K#eAgTq4lw!O(r`pd0bKQhdmeJHH?I z#gQGT@TZ@=9kp1*g1Vlv@8srw++=D1-zDzbw)-TR#jj!-dTKqZPsfMqw%Hoeiwc0m z+r&M+Gcq6hj=G_x9@)?j@>_2`#9j==iQTd-?s*0uE?9Bpm?h#4OSj`en$y=q0b5ox zUo+YB9B@RRS~o*ZI>DqSizFr)Xhfh|=S!wJwX098*>P;Um{T8Fjd-#EeCjX!P%;p7LmG^z1@OKAP#U^TEhqM?wpdL1&*Bg2IFyLr7 z7~-Z%9LpI?)BK>3cOdweAf-f%E-`NLH>=|C9c0h{ggiYiKxITk%)k|$U6vps{S1#x zXv~h_2R&Pq81^exTXKZ+3-pmBCuu%TfVSZSRhBKh)K`pkv@1*@3$gCL9ha@jCJdzetB6&CrNJiA275t%V(OrIKt zQ8TYTt=j=T`=V8O#AG<39l=eveBrM#pD6G2B#yu|(uc)E%iTaMw;hDMeVY#*r4D#1 zzuFi12LB}vg<0lb8aXBDn=q516-`3&uar#R@F;K9>9ds^kOIuZ?g&wzdPl=@|8g4W z6lOpC=8lj9pa_kSkcH=%LJH+Q>!5{9!l*22nFw0jL&%C?g_pq@oqw;Qvr|tK4gAGJ z;0XXmBBUs(L%(z*S(j6v<*(7w^nlB|G)kBLF;9Z3C*RLKTT~lA0(hS#x6nZJBp*&En5H zq$_PMSkYv_B!9VO$<9N!+Qja=^4TMUQ4NimCsyergkkaykSCu~8QvXn6^hQ#LecC> zXusHvG>q;Ix&W* zz#4O7+qLktm6BRILG zmW^uK|L7P})FMpXgB=ofYgP|q4O4CtXurjq4+9Oxgb6n>8*Dn|BiIh7v`0?gfsPBJ zo!}c!yZeo&H<10l+5hV?oPML12FGX;9qsnd?hEw&rw!_aufL`zjPn?RsO$bnyCC=8 zz|pBQvf>Xq5DzQSL~mNhW?GlQO4V|E{76g}L2&gG*Xzq}Q(qqA_>DrAD^?^c)^$jc zOxuPJOD}WIx_gu(U^N9GIWt#^^8JwS7C#7t+Q51#Q-B$3M9KPpFm{g7k$&%*?%1|% z+qP}nwr$(C(?Q3qIO*8v*yz}p{N{gV4%V7;rq-^t-p{+X-rCo5Un=vV$yzZ3wqQ&w zb9_WTJe;dJ6pw=n`Ei;4z)#WailG_EW$xn~8WoUta*WT+E#c4O;i_`md0ton>P_zPv0;X zfkM4d%84WrykK9XEBPL^WoY|9^0)7=v$o$wH*LP#-ckEYPi(m^p@gWuf<&TZh|B50 zG_SxuI|z$(A8pSr<-JV_f|~!r8-8sC24Tzz`9LaP z?tW0N%Qf*0)1C_`;g@p6QDHAcl|pm)Xv0NVM5Wtt;xfIppXT%#QZT-qq*pBlegL~G zFl0=-I8sg(cpua>ItPH*2}YODzD#w`{W_+gpKcF+RXXj}#F&Sd>MFcqxaYdI9YG(B zXGiY_(U-`5P@@>8ZqJBUjyKqA w4uZ6iyk=_w%>8HCVEIoi=r_5Bqpr5uImVtty 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°t6DX4`Jy~{)QJha^ffbFv+^^WCa_SN#vTAVC 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
}xAbwn?sL6#o;dc2@ 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%0AwE4yPqd0!)6I6Mo=Z%apG^F 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

)NK1}+ut(4)i0(ZHc%>mW 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 literal 0 HcmV?d00001 diff --git a/target/klang-1.0.jar b/target/klang-1.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..c829dd100711707368e93f47787017275753b654 GIT binary patch literal 44352 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