From 8fbf3095f0edc593710de17a02ee7b21e018cb92 Mon Sep 17 00:00:00 2001 From: Humenius Date: Wed, 27 May 2020 12:41:27 +0200 Subject: [PATCH] [11 - Antlr Parser] Fix grammar file and TestAntlrXScanner1#tokenID --- CC-Praxis-Antlr Parser fuer X-Leer/X.tokens | 12 +- .../antlrxparser/AntlrXParserMain.java | 1 + .../src/de/dhbw/compiler/antlrxparser/X.g | 21 +- .../de/dhbw/compiler/antlrxparser/XLexer.java | 406 ++++++++++++++++-- .../dhbw/compiler/antlrxparser/XParser.java | 48 ++- .../antlrxparser/AntlrXParserMain.class | Bin 0 -> 3215 bytes .../de/dhbw/compiler/antlrxparser/X.g | 21 +- .../dhbw/compiler/antlrxparser/XLexer.class | Bin 0 -> 5151 bytes .../antlrxparser/XParser$program_return.class | Bin 0 -> 718 bytes .../dhbw/compiler/antlrxparser/XParser.class | Bin 0 -> 4215 bytes .../antlrxparser/test/ParseTreeTest.class | Bin 0 -> 2013 bytes .../antlrxparser/test/TestAntlrXParser.class | Bin 0 -> 923 bytes .../antlrxparser/test/TestAntlrXParser1.class | Bin 0 -> 6568 bytes .../antlrxparser/test/TestAntlrXParser2.class | Bin 0 -> 6869 bytes .../test/TestAntlrXScanner1.class | Bin 0 -> 9607 bytes .../test/TestAntlrXScanner2.class | Bin 0 -> 2533 bytes .../test/TestAntlrXScanner3.class | Bin 0 -> 3162 bytes .../antlrxparser/test/TestToken.class | Bin 0 -> 628 bytes .../antlrxparser/test/TokenStreamTest.class | Bin 0 -> 2977 bytes 19 files changed, 430 insertions(+), 79 deletions(-) create mode 100644 out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/AntlrXParserMain.class create mode 100644 out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/XLexer.class create mode 100644 out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/XParser$program_return.class create mode 100644 out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/XParser.class create mode 100644 out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/test/ParseTreeTest.class create mode 100644 out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/test/TestAntlrXParser.class create mode 100644 out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/test/TestAntlrXParser1.class create mode 100644 out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/test/TestAntlrXParser2.class create mode 100644 out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/test/TestAntlrXScanner1.class create mode 100644 out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/test/TestAntlrXScanner2.class create mode 100644 out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/test/TestAntlrXScanner3.class create mode 100644 out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/test/TestToken.class create mode 100644 out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/test/TokenStreamTest.class diff --git a/CC-Praxis-Antlr Parser fuer X-Leer/X.tokens b/CC-Praxis-Antlr Parser fuer X-Leer/X.tokens index 39cd892..76de90c 100644 --- a/CC-Praxis-Antlr Parser fuer X-Leer/X.tokens +++ b/CC-Praxis-Antlr Parser fuer X-Leer/X.tokens @@ -1,7 +1,5 @@ -T__9=9 -DECL=4 -DECLLIST=5 -INVALID=6 -STATLIST=7 -UMINUS=8 -'TODO'=9 +T__7=7 +ID=4 +INTCONST=5 +WS=6 +'TODO'=7 diff --git a/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/AntlrXParserMain.java b/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/AntlrXParserMain.java index 5f43e25..c1072a2 100644 --- a/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/AntlrXParserMain.java +++ b/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/AntlrXParserMain.java @@ -20,6 +20,7 @@ import org.antlr.runtime.tree.CommonTree; import org.antlr.runtime.tree.DOTTreeGenerator; import org.antlr.runtime.tree.Tree; import org.antlr.stringtemplate.StringTemplate; +import org.antlr.tool.GrammarAST; public class AntlrXParserMain { diff --git a/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g b/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g index 087125c..a208f90 100644 --- a/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g +++ b/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g @@ -14,16 +14,29 @@ grammar X; options { language = Java; output = AST; + ASTLabelType = CommonTree; + backtrack = true; } // AST-Tokens tokens { - DECL; - STATLIST; - DECLLIST; - UMINUS; + ID; + INTCONST; + WS; } @parser::header {package de.dhbw.compiler.antlrxparser;} @lexer::header {package de.dhbw.compiler.antlrxparser;} +// Anmerkung: Es müssen Lexer- UND Parser-Regeln stehen, da sonst das Generieren nicht funktionieren +// Lexer stuff +ID: ('a'..'z' | 'A'..'Z') + (options { + greedy = true; + }: 'a'..'z' | 'A'..'Z' | '0'..'9')*; +INTCONST: ('0'..'9')+; + +WS: ('\t' | ' ' | '\r' | '\n' | '\f')+ { skip(); }; + +// Parser stuff +program: 'TODO'; diff --git a/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/XLexer.java b/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/XLexer.java index 6f16d62..985f3b1 100644 --- a/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/XLexer.java +++ b/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/XLexer.java @@ -1,4 +1,4 @@ -// $ANTLR 3.5.2 /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g 2020-05-27 11:44:58 +// $ANTLR 3.5.2 /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g 2020-05-27 12:40:05 package de.dhbw.compiler.antlrxparser; import org.antlr.runtime.*; @@ -9,12 +9,10 @@ import java.util.ArrayList; @SuppressWarnings("all") public class XLexer extends Lexer { public static final int EOF=-1; - public static final int T__9=9; - public static final int DECL=4; - public static final int DECLLIST=5; - public static final int INVALID=6; - public static final int STATLIST=7; - public static final int UMINUS=8; + public static final int T__7=7; + public static final int ID=4; + public static final int INTCONST=5; + public static final int WS=6; // delegates // delegators @@ -31,10 +29,10 @@ public class XLexer extends Lexer { } @Override public String getGrammarFileName() { return "/Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g"; } - // $ANTLR start "T__9" - public final void mT__9() throws RecognitionException { + // $ANTLR start "T__7" + public final void mT__7() throws RecognitionException { try { - int _type = T__9; + int _type = T__7; int _channel = DEFAULT_TOKEN_CHANNEL; // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:9:6: ( 'TODO' ) // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:9:8: 'TODO' @@ -50,17 +48,129 @@ public class XLexer extends Lexer { // do for sure before leaving } } - // $ANTLR end "T__9" + // $ANTLR end "T__7" - // $ANTLR start "INVALID" - public final void mINVALID() throws RecognitionException { + // $ANTLR start "ID" + public final void mID() throws RecognitionException { try { - int _type = INVALID; + int _type = ID; int _channel = DEFAULT_TOKEN_CHANNEL; - // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:31:8: ( . ) - // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:31:11: . + // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:33:3: ( ( 'a' .. 'z' | 'A' .. 'Z' ) ( options {greedy=true; } : 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' )* ) + // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:33:13: ( 'a' .. 'z' | 'A' .. 'Z' ) ( options {greedy=true; } : 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' )* { - matchAny(); + if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:34:13: ( options {greedy=true; } : 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' )* + loop1: + while (true) { + int alt1=4; + switch ( input.LA(1) ) { + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': + { + alt1=1; + } + break; + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + { + alt1=2; + } + break; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + alt1=3; + } + break; + } + switch (alt1) { + case 1 : + // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:36:16: 'a' .. 'z' + { + matchRange('a','z'); + } + break; + case 2 : + // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:36:27: 'A' .. 'Z' + { + matchRange('A','Z'); + } + break; + case 3 : + // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:36:38: '0' .. '9' + { + matchRange('0','9'); + } + break; + + default : + break loop1; + } + } + } state.type = _type; @@ -70,46 +180,264 @@ public class XLexer extends Lexer { // do for sure before leaving } } - // $ANTLR end "INVALID" + // $ANTLR end "ID" + + // $ANTLR start "INTCONST" + public final void mINTCONST() throws RecognitionException { + try { + int _type = INTCONST; + int _channel = DEFAULT_TOKEN_CHANNEL; + // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:37:9: ( ( '0' .. '9' )+ ) + // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:37:13: ( '0' .. '9' )+ + { + // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:37:13: ( '0' .. '9' )+ + int cnt2=0; + loop2: + while (true) { + int alt2=2; + int LA2_0 = input.LA(1); + if ( ((LA2_0 >= '0' && LA2_0 <= '9')) ) { + alt2=1; + } + + switch (alt2) { + case 1 : + // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g: + { + if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + } + break; + + default : + if ( cnt2 >= 1 ) break loop2; + EarlyExitException eee = new EarlyExitException(2, input); + throw eee; + } + cnt2++; + } + + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "INTCONST" + + // $ANTLR start "WS" + public final void mWS() throws RecognitionException { + try { + int _type = WS; + int _channel = DEFAULT_TOKEN_CHANNEL; + // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:39:3: ( ( '\\t' | ' ' | '\\r' | '\\n' | '\\f' )+ ) + // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:39:13: ( '\\t' | ' ' | '\\r' | '\\n' | '\\f' )+ + { + // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:39:13: ( '\\t' | ' ' | '\\r' | '\\n' | '\\f' )+ + int cnt3=0; + loop3: + while (true) { + int alt3=2; + int LA3_0 = input.LA(1); + if ( ((LA3_0 >= '\t' && LA3_0 <= '\n')||(LA3_0 >= '\f' && LA3_0 <= '\r')||LA3_0==' ') ) { + alt3=1; + } + + switch (alt3) { + case 1 : + // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g: + { + if ( (input.LA(1) >= '\t' && input.LA(1) <= '\n')||(input.LA(1) >= '\f' && input.LA(1) <= '\r')||input.LA(1)==' ' ) { + input.consume(); + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse; + } + } + break; + + default : + if ( cnt3 >= 1 ) break loop3; + EarlyExitException eee = new EarlyExitException(3, input); + throw eee; + } + cnt3++; + } + + skip(); + } + + state.type = _type; + state.channel = _channel; + } + finally { + // do for sure before leaving + } + } + // $ANTLR end "WS" @Override public void mTokens() throws RecognitionException { - // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:1:8: ( T__9 | INVALID ) - int alt1=2; - int LA1_0 = input.LA(1); - if ( (LA1_0=='T') ) { - int LA1_1 = input.LA(2); - if ( (LA1_1=='O') ) { - alt1=1; + // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:1:8: ( T__7 | ID | INTCONST | WS ) + int alt4=4; + switch ( input.LA(1) ) { + case 'T': + { + int LA4_1 = input.LA(2); + if ( (LA4_1=='O') ) { + int LA4_5 = input.LA(3); + if ( (LA4_5=='D') ) { + int LA4_6 = input.LA(4); + if ( (LA4_6=='O') ) { + int LA4_7 = input.LA(5); + if ( ((LA4_7 >= '0' && LA4_7 <= '9')||(LA4_7 >= 'A' && LA4_7 <= 'Z')||(LA4_7 >= 'a' && LA4_7 <= 'z')) ) { + alt4=2; + } + + else { + alt4=1; + } + + } + + else { + alt4=2; + } + + } + + else { + alt4=2; + } + } else { - alt1=2; + alt4=2; } - } - else if ( ((LA1_0 >= '\u0000' && LA1_0 <= 'S')||(LA1_0 >= 'U' && LA1_0 <= '\uFFFF')) ) { - alt1=2; - } - - else { + } + break; + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': + { + alt4=2; + } + break; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + alt4=3; + } + break; + case '\t': + case '\n': + case '\f': + case '\r': + case ' ': + { + alt4=4; + } + break; + default: NoViableAltException nvae = - new NoViableAltException("", 1, 0, input); + new NoViableAltException("", 4, 0, input); throw nvae; } - - switch (alt1) { + switch (alt4) { case 1 : - // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:1:10: T__9 + // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:1:10: T__7 { - mT__9(); + mT__7(); } break; case 2 : - // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:1:15: INVALID + // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:1:15: ID { - mINVALID(); + mID(); + + } + break; + case 3 : + // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:1:18: INTCONST + { + mINTCONST(); + + } + break; + case 4 : + // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:1:27: WS + { + mWS(); } break; diff --git a/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/XParser.java b/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/XParser.java index 52a9ae2..00a6ac2 100644 --- a/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/XParser.java +++ b/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/XParser.java @@ -1,10 +1,12 @@ -// $ANTLR 3.5.2 /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g 2020-05-27 11:44:58 +// $ANTLR 3.5.2 /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g 2020-05-27 12:40:05 package de.dhbw.compiler.antlrxparser; import org.antlr.runtime.*; import java.util.Stack; import java.util.List; import java.util.ArrayList; +import java.util.Map; +import java.util.HashMap; import org.antlr.runtime.tree.*; @@ -12,16 +14,13 @@ import org.antlr.runtime.tree.*; @SuppressWarnings("all") public class XParser extends Parser { public static final String[] tokenNames = new String[] { - "", "", "", "", "DECL", "DECLLIST", "INVALID", - "STATLIST", "UMINUS", "'TODO'" + "", "", "", "", "ID", "INTCONST", "WS", "'TODO'" }; public static final int EOF=-1; - public static final int T__9=9; - public static final int DECL=4; - public static final int DECLLIST=5; - public static final int INVALID=6; - public static final int STATLIST=7; - public static final int UMINUS=8; + public static final int T__7=7; + public static final int ID=4; + public static final int INTCONST=5; + public static final int WS=6; // delegates public Parser[] getDelegates() { @@ -51,47 +50,50 @@ public class XParser extends Parser { public static class program_return extends ParserRuleReturnScope { - Object tree; + CommonTree tree; @Override - public Object getTree() { return tree; } + public CommonTree getTree() { return tree; } }; // $ANTLR start "program" - // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:33:1: program : 'TODO' ; + // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:42:1: program : 'TODO' ; public final XParser.program_return program() throws RecognitionException { XParser.program_return retval = new XParser.program_return(); retval.start = input.LT(1); - Object root_0 = null; + CommonTree root_0 = null; Token string_literal1=null; - Object string_literal1_tree=null; + CommonTree string_literal1_tree=null; try { - // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:33:8: ( 'TODO' ) - // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:33:10: 'TODO' + // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:42:8: ( 'TODO' ) + // /Users/kreis/git/gitea.humenius.me/dhbw-compilerbau/CC-Praxis-Antlr Parser fuer X-Leer/src/de/dhbw/compiler/antlrxparser/X.g:42:13: 'TODO' { - root_0 = (Object)adaptor.nil(); + root_0 = (CommonTree)adaptor.nil(); - string_literal1=(Token)match(input,9,FOLLOW_9_in_program95); - string_literal1_tree = (Object)adaptor.create(string_literal1); + string_literal1=(Token)match(input,7,FOLLOW_7_in_program256); if (state.failed) return retval; + if ( state.backtracking==0 ) { + string_literal1_tree = (CommonTree)adaptor.create(string_literal1); adaptor.addChild(root_0, string_literal1_tree); + } } retval.stop = input.LT(-1); - retval.tree = (Object)adaptor.rulePostProcessing(root_0); + if ( state.backtracking==0 ) { + retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); - + } } catch (RecognitionException re) { reportError(re); recover(input,re); - retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re); } finally { // do for sure before leaving @@ -104,5 +106,5 @@ public class XParser extends Parser { - public static final BitSet FOLLOW_9_in_program95 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_7_in_program256 = new BitSet(new long[]{0x0000000000000002L}); } diff --git a/out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/AntlrXParserMain.class b/out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/AntlrXParserMain.class new file mode 100644 index 0000000000000000000000000000000000000000..e12f960c8620d0be8a0a530759275264d9556307 GIT binary patch literal 3215 zcmbtWTUQfT6#fPX6UJB-g^HJUjJJeH!Xvz5k@X zKv!9-ukGrO>gso95{ZDK?L3^Bea^mqd!N1M?|**(13((TXgG_!in|(GkeAD>ia8A- z%xk!Z`|@i+E(H}2R6JDiD2zo7OL(l|2$nTyc%tGf4JYumil-V*;u{r)hAyngWmUrj zieU&15j<0|rl74bwNOydnSXA)G*Xsfuca0|*RAC#O)U1N`G1E4^n+jTE@rTqr=@f;6V|mjSv(?gya0|wY#huQ) zvuaom4cC-(eY4G5H!BMI^F@&=uCKgGtvaQ$X$dz)`<7cP8*YWfxFi*%`uw6Sl)5h0?CwHwLP;WQl2YBs=y_?KUUvg$)Mo;J4G3mZIsB? zT68=G@h0Yq51S`SWy|nH9mPVOq@S%$l@eWnanni76J_s_YkI=vsWw$x6=lyP;wqlg zOo`Dc=#DMF#aqK&BVH#DIA)eiyDW`eYI3gu!}x3=e}6`vGta^((RRoZHQ_3_atQc~ zdC5nCBcAg@*nzx)%LiDQbV?=1F6^>Vsy)b|f~$ww3GypNTv4f7o{AT&x3cT3xkl-! zE4->pY$7wZE!;`Vs8j@@7K$$CGuWAl%3{ z^S9ts-BmHol4X+jmT6Mnt_UvT5~F`hX|i&q*4u(X8J^=tPy(Yo>0it@>qTmERFot5 z7UZkIiNKS(qx*I5&9{Pc4UH2Uo)~vsW231Y6eK_F1}gZoj;QX5iZ`6qI#^akU9agG zofS^HEGu2#ApOj847sz}I9m~Grmc0nS|@ILtTvX8>-DXUXO64KHZ!^YtiCyx=90;6 zCI;eqEt9Jy2C1aOe5TiOY28~F_G_sQ9&h%>$Pt$;lB^{L`sKHb2KxJx zqHl=X+|6oSlA4NY1TXPQqFa;825->2!3b`Ig99gr8Y&i{lH0Bs)(8caUJ~+ilu&E6>HMrzoeJlOa*sO~c*<1Pv>z)d44CPERL> z6C+6}NA8?HlpG#O3?v7|P$E4{z(z(BX)%;e3{CY7kcVl^>CrpFvK;+M^pWFQ#V66I zp3tM2=jxqato@#AW5=^o;~9QayR6M3g+ z9dFvH+QrvhT0#1~a=546H14xMXq%LUJjb70ciug@K4ji>#SWevP5tMcBTKe7hdrME z0t!yW;`_BJQ2ncIu}y_mEvLfP*Hn@X+3=e1WUFD1Zi~g2C&(OIo{%H=blpXEx26`9 zl}8s20%CIAaH&;JEy)u-h$omieltFdX;%~D@MnvH>kRb2B$jhTWt_oWxJ)Jcn*q&< zRMSks1^$Jd<)2?G&fpx*L%}DcTJR}py@|d+I@&}ZMH_iJOt@aAM2c^P?@;eHlwW-n zSGczOn?1P7??}La7~-Tl(2E2ON#RYJZ{s_2U9Y1EQ|n!v!Ynf$aX-xHr-^?fzT1qC4f}s1 ozDUHEh~H!SvP{IE9E$kNTM=);7mTh2U*ZF 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 OuAGW5yr8HVoBji-OxXhf literal 0 HcmV?d00001 diff --git a/out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/XParser$program_return.class b/out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/XParser$program_return.class new file mode 100644 index 0000000000000000000000000000000000000000..64a145f1186d073deb064a55579ac9d6e9c5d94b GIT binary patch literal 718 zcmbVJ$w~u35Ph9(%s84DQ(jE_s1uI5;kn4v6w{)OE!sR3#%5^7*e5;l3}Z&O^XW^`i7fG zgG^DAChEI_~MZ3bU3**K9 zFqjJ4UXNk6Yjn$q;NHkEGK#^uR7#q%FM2&m`J+lx@@Bj7$Xy+DJztsut*5RqJ#y}D z`g(h`4Uw~2GK_gL?CkANv`&%gI^scaU#J$pZgiv@QX{*nBjd^onoaD6^A6)e2UEy8 z$iQ+ihk}K5hSGoNGVG4ud$8DTRBW+Wg6jm^c><`JtqQ3wD literal 0 HcmV?d00001 diff --git a/out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/XParser.class b/out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/XParser.class new file mode 100644 index 0000000000000000000000000000000000000000..9cabe2f25aa1a111f08d050a89ebfd65ce5ba088 GIT binary patch literal 4215 zcmbVP`*Rc575=VXE87bgg#dOiF)w3VwgqW`)HqJT58^~vE)vEHZPc~2$P3c0yIKKF z)28pHkM#W_eLvGD#k^dXrp-)$>(8C(^e^Z%)0s~Gfu!Hv-56nQ#!T(e-FvRi`OdlL zx%%6ifBZ9mNAU**A5>tsB7|BiQgB)!;3%lKB8FNEPcF*kQXH2Re5e&|-r;j?_%NPt zA^DLud=xJz_?Tq-xPA%{YeR7>Q#vj&CXWc9fROzfdcZ_>O`r0vi`?t88o4f~`As z+Z0fzOjEbVDq5|k*92M}>w<1hYgI`+a5jBjyQrlqnpsX|9osO=M+L$YnMnaLC9q-4 zGHZ@zI#k>t0EAZ8kf6>KzwRCH

s<|G~EH)pbP7ZXsllD6nr zw!q%BWtUTgtJo>KZaPL)PdT=(r*d45d0f=LbuyDqXU-Ik6b!TAU+0lShXpzVL?K>O5KBL(+-6nfv%qr;uo6?4ss|_->g8?Fc<5Nz{BhC3Ov0YTmZr;y=aw9<2l{VE@-x1$~ttBr<8a2`+2RN8XFs&v9-%aZSa`vXx*OG-RJ7M-90y$*4Z3tb}_Y1VhxoA9$kmW zLtc}7Do$cr!FN@B58qeu0~8hfP{oh%V}V`kIzh#8jH&nuek!o7ncK|=6*G9Ril5=< zDt>`ODqg`aRs0ISR`DAYRs0seQ*jlVir?d!Kul*Vo#7B0EK-=2(jy!gjr)&sa5Q##+N6Mzz^ zIpTG#gq&1zXdJidW{Cq`z89Pb015DxcdvK+LYmrU>x-7{OxU)3w@C(hCn*2j!K>Ju z$rp9XJsBi-Hs4>@<(&8LW z`&g?U?7xZlS`Q8ddT#)%$bE`?7<+Y&g-nR`g(lXxJCs zjAw9`w`SnPoAjMRwQt-(8{Mm>lQe!qWCa^T96_7JNii*kBl1EkXcu@5n@{#jj&|ib z61VZdYuGYP`oWvndIc@X;b=$nnn!PY89Sxi;0m^fq@V{g&_VEyFkC$$Ur*<%NS{29 z53JxJSLPOWNIH2FJNVhePv;7{A{@8JhNJx*(c5^~HAn8cT~V@ckgW3Q!FNPguq!Gp zAlfU4563!Ue@R~B#k=U7CG2Fm_FF;NBQ6qFS#C@{DJdmlfp;5>h-Ux=VW#t7kd@;X(RenQQ=IRQ+z$6v+nd^oWu zn~x;+X7ka+zHC00=*i}l#QtnPp6Jcy+hd77u1camdjly^`mt5;R+>~B>XZt)~U7aerJ;nZLcI)Ik{0gI|h-2eap literal 0 HcmV?d00001 diff --git a/out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/test/ParseTreeTest.class b/out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/test/ParseTreeTest.class new file mode 100644 index 0000000000000000000000000000000000000000..175ae62a14108a15d9326fdc17b964eeee46a26b GIT binary patch literal 2013 zcma)7ZF3V<6n<{rZn`YAQc!|e=^G^FWf4#@MW8K3tD(gegO|R*eWH;VywEQAJ z`=xcrjN>-k=IPav5u zJQYaI1)EA>u;lq_vEA5Ey6kS$xpTS{RNeYhS9@mN-AsjBUQ6I+X;V3yTN}SQ)u7Sz z>PkDVAJ+9w)7335Le&bLCuUyON|m{q7C32k_csMD=S$n}udY*f{hG59YR|7t_wJY& z6P|D4>9H2bs-32)hH6tF?fK1iC@@h9bS)0Y(QQBU8p@ejESHuS%sFwC+h8=ZRdsz| zX@N_}B(qvlJ4*9PCJde{pXpEbftU*#jleG(i+zktTn?ss97I%>2t%t@yUsKUeK2CH z<#t^ytFW#8m1@vb3@jO##K-&GV7AKXhQ_I3VI_2{&mX(Zh|x$COOd=DP)C%I#1qO! zz?$Ews%Gc~eoNvTu2+J#uBt~Qn_TSEXt=#@h_P`7X9dQNFTTKqh)FMSW?zJAMr-%Q z8{9}N*;vMkaacCPx8(F_xy1|_TZ(18H-a8+jOlme@ff#py^ZmzjS7BXZEXCAX9A27{s<&YTh7R<;w6RTeFDz z)Ox$k=hK-XnkFN*fz{#sFKxF@^h0l2_g=3jlaw6>F@^mQ;}as@K3X=bG1YISk{ZQn zel^Tr0!#*HIljx4!(YMQ^wb{2AJOr995d18d7R_ijt!8*d9G4;9~bC^m&GK~{K^39 z9V99pBr8{Tk=jFg51GXdWaZi(vc*&f1C<=Ntzx=^6O|l~?P4aE*~Q7C%*kDx`Wu7A zY%co`?5nx#pBVZ*n(X2o&P_~7n3$$uar}U3jBxxAd0fOTjG~A!Jj4VRFv&;aGS*Ot z;$Dwq>&DF}d21xfWu3Q2n8PsdT%?C2PwvypIJ3+13p+tiY5FeU68&W&ggjS#3+Z_Z zSCGY3#xjY-zl0o+xF&Hu`gbI5NPHx5Q{tASFPeT#(-eU}A>^l=CvbD G2L1!9+8o6I literal 0 HcmV?d00001 diff --git a/out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/test/TestAntlrXParser.class b/out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/test/TestAntlrXParser.class new file mode 100644 index 0000000000000000000000000000000000000000..225fb2fbaa8e7ea17b901cc4ef413f8fc98ef1de GIT binary patch literal 923 zcmbVL+e!m55It$TU0dt@QtMq5Q6CJ}+e1YVK@f_Hl`8m@ropCcv$C62f6FJq2S31% z5@%}>FZf_LFgxdD&dg*d`}+3$0$>aCStK#(V#>udLwZjeZTA_HE2~w8)S+Kj3NxAdCZa*d#H`|r4Sjr&-e}rKH3HlG>htZ<;$fgPLHU^xvC$L8%5^%|;i3Uc{LpIm;9b}Lt tlteGt1hIYeUL>!d_6H;eF&aD9a3sbg#wGF+6A}eV1ClZfVFts?nRiI{6H)*G literal 0 HcmV?d00001 diff --git a/out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/test/TestAntlrXParser1.class b/out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/test/TestAntlrXParser1.class new file mode 100644 index 0000000000000000000000000000000000000000..635ea3c9bd78976399931fe5e7f4d8d94b7d1ed5 GIT binary patch literal 6568 zcmb`L&vP4R8ONXXkNA~pr|G6mX&T@SO{soVmb8-W#+FT8TM40SCygC9&>umzHuk3S z%3Vq6D$oIDxG-?&r2_|UOncx0J+#aehT+1%FvEp`3l|119QX$~0K@m)eRs98b{S2@ zOd{<*dYX$><)VHyAY;9Wk;PwHO^UdXtgOsLiOu zsLSX+qqkdr9c2*UdOr>`fnp$r)422%nP0QHo9_<kNw>&@M| zZHjkkoa!8!ZG{%}hLLX^?!A@YZyg<*O~cODtxnT+j_YdHV%kNM=HPu^_VB2C|} z`F0J}kj7$Rt=%>ctiJGKvF04xH=12k!4EBJ!nSEz!g$6HExE>SGh`|Y(}sCpp|ieM zMVM~M*mJ&hL0APu{t&n?%0}Hr0@QQDy4DP%E(;SnPoX*4s8(2SiE{g0pcTb?t=SG0 zLDPI2ir}ZGm3(6DE>$WZ9q&_I|MJ+09BP%m9E zolT>2*lJw28-|Vkn!aCeb`gCs$RE=W~;PY$)^r2CXKtj4@Tmr^Hx=Nq+kUB9-y!?$H(z(h<#Lj9XNj9uXIZxH z@THZ4Y`+?`?|Ji7kf8g-9TAyM^FAxJv;u1(od#>(XBl!Z#?Z1w$=e8ce#FScRF)Tb z5m<2ZVXiv?V!$~cTpIwpA)}LXeR6Jq+-=5iGd_2HklSsJPR+znF|lK)`DiKvMyKZc z)M7YSZvlz{=Yl$4AIR4W8XYbQow~JoZR^&y*VX9jN?3(h@M1J%i`kr(D`m@asNES* zA_7O(k>#lz$AFV#F3_Z5CX~{=?2W>5SlQVXqGeL)_@PGCYNUdGRUc z0@pAxWw}a_CUsTAy0GTQ6f9HBYI*2Nm2;KsLOQc33wJ!A5AmbxL&c;rq0^PB4JZ^f z&G9m?r1=5_FN#8BDLYUT&?tL)z=w3 zm89Y~1{Aw(k1BaZO7;rsjy%7hefjbUb4Vo8IGIQ(IuXC4MIx(1iNLzBvKXYN4JG9a zB~=$q*lG@)K5wnSNH-ZSCC*hKartzGQ;vG$xsX_FRK%|mV#XUHSb$Pxt9Mg zxw>Z&u_~vAvJPgByDB2-fA~o|;sm;!OxQ-ffuoGKsw5M~xKMPkF35LzTEaVqP$jEn zoZLdj5q08VIn|!mwaJ8kYD*+g5S}aL7c!|{R!h6Ci3FT`RmXGgEv@vjvO4ZF>YfnC zy<|cR>Yyz!q5_4p3+aK7bJF>q49AzN)5*Z%o*b3_+0{)qy4qZn0L2rBK5s?jZWTm9 zgTtj5Sv|QSY89~{YFH5Ak-;FtgDid(rR<%IbL1}2-=(nbi*2=sy{jMD6DzFbh~LC! z7J7AiFsw*)b`^d@QC=9R?jGr?7G84s_S?+3Qr)>;{v@|lg$g5txmVg9+c3oC2KTxC z-8HzT;_4-Cwt*+E5vk!j?yx1jOBeB%fi(VJK=df#&`()>K8v?Jz7>2=XMRS?2Y8sE z96nFE#k(4(cqJ4 z=z`lI_kv`DlawTlN@(~L&EW4DB}k|sZVHwKTEvqO^Blevx(xJ$i{6#!S#?@hV#tE? z6iw45dWfD5k!J&PLXxK=$O`tVLB9j^yFh;* z=pT%U-iSb-*VQLu&_4wFM?k*^^!sC?YZ2%Ry87uD^pAo53D7?U`hzjiS0d1#(bdn! zpg#oqW1xQy^e@IlUyVR>UA-8C{uR)_2KqNZ|8`9D7bDQ0)77V9(7y-z4?zDB=s%5# zz7~PLq^nQIp#Kc?Ux5BA(0>~f{iO)>=XLd&81&zP{wL7?0{Y)$p(p4?98V@lcaJM` PIH+vm|CT}5>BfHn-1;?Q literal 0 HcmV?d00001 diff --git a/out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/test/TestAntlrXParser2.class b/out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/test/TestAntlrXParser2.class new file mode 100644 index 0000000000000000000000000000000000000000..97138a58805719f60e2250f163e693585f4b5836 GIT binary patch literal 6869 zcmchbON<;x8OOi&uD!K`ok!b=^RS_8AfAWkJ+roVXB@`s-DFAc+VQ>u2_&;K?cFxB z(?id!Jv$*pkqAOuqHy4X$R!uZArj&xI0OzzNC?4!6M_RL1Q%|ckOKdzer(T9cQj5* zNV_v#UsZj-|5xAFRo(Nu4}bXq5tZom7$xZzqg6(0F-p)nqYXxzj9y^$1x8hPm4@TDq03w|gzC->F+&G+Udv)2Z&_kMOZD;T7AxJ3!o*s6oc|pCU*Wpri zZ3SVw2_|$r>KcpgK&Qj=P!b)>do2up%pF`7w#AlN@7dZFI^%ZDxPFGZ&$`{0M7Kl? z^`CS5FT2x6$DDG;lyY)vt=l!W+X|g@&3S2F=y$BV&sy-T1%)1Q#};kft`E<3$+jPI zQqF0n+1cDd+I_CedCv;h?s}CA!n$Y*5uUB+*f8$2BjHN^nr?JEhTd8nbt!~yHxoTQH zv@rI8mD=*c%eB?{g_Y||E6*IK6kWtjM;>n?PjfNO`?DN{GPk8~8||3hZe|q9#{GkM z{QAPYrY)_m*;l+TCL|Jkb*;80%!%Xl8hu@%q<@wuN#WkYcM#+95JQX(=12#Am_ir* z99c#J)DiU_M4BBU$?+j5>0+2Q<7Ww#9!~}qPMsg3dNV`F(pdn0(~lSTsJEmJxo&5V z^DXy6x@x#B>614{bKDuyCtQz6tBX9_3AClzBlwogztd=VgA$IVDJ=oPWc|T7rFUEG zF>{>n&+@LlOZp43HY9RHV4utBE_mN@F`U7wpDOa;Eg>r3#mhwt)^KA;gK!Y0!!A{4 z6wX9`6#lAfMP#!Hz}x}2KHloQEInUW*yjR?ZxDIQO9kRUM+-AVbE zhUZqv6-i^ma1evbDm`5ZoHt61^`j=?J5_tyTk@z?&)sWV)j5@+vYNJT~L zXSu^Uk%8@tTX3JdDSG82Q*=LZ*|~G0^JVK>|JM+Qk~$PDviMs!TJZu`o{LS(qe<)% z;(-Qj=R`)^K5Amq1GmpPb(|XNS4s))nCx5+W~<2Zpi;ueY;_<~EmK~A+iBxA?^jE_ zx1+bcS)$4Z$#_3iNQfb#i2})qYm_?ITU}igOFoy&=;2rkW>u^hKz(r+M_(1lf<_4mq2BM_=w+=RT zv=Mk*oUX&JWTE09lQa9=9%>uK=7!RBe4$Y7@a2wz43<95E4)IvF{a7){WVM1#cLbh zJ`Y~*z4v(h6d;z{8>!HR_~?%Sqn5-5ox?9DN&KEdbcz)5o`%mfT3LK6_&%EaIVnHF z#SzNj^O!WAL^siKdjRDqkCs9OOrDUFH}O3I+X?lErcNv;Qx|_mlLt;znndSm40#d` z&%n`H>5$u#9ETGWqauFi!H+C7MP*zap&87Zgyj-l#+49r1>XwI2B42>>ah^?d4Qh6 z^b0`8BckU5&{LYqLeOcT^FSAXE=ELG0?^Z%8Vf;R2D$=t73ixG(bWL-Cp7hV2>Ke( zOF%ydv=$M4H2{4=Qy&OH-voLc=nbGZBch)UKtHId4~3v#0=f?L7SN4|=+6b9AJ$Yg z1ib_FF3@eD&4}n)0Q#h+o(e(tfZhjs0Q9R7(boddk7(+nA?VkE{sz!*0{zX1==lKj zX-$1B1pRHG-vat=puZCleLVpExTZc4g8nYh-vj#lK)(|ay%2zYQd7@_px*`h2SEQ2 z==UO`7X#2|HT9Dr==XvCG0;B&`lk`m&jg@9rKvmw{R^N!0Qy%z|2iW2*#Pu8O+6oi z{teK-2l@{{|1lzZDFFRxP5n#=`cFXr8R)+N{nv=-&j+ACtEo?gp#KK+-+}%I(Ep5x tel7rgK~v))=zjtIAD}-3`oEFTM{x3q$Eaob>~aE6Ei3rHq0>!z{(lap!W{qr literal 0 HcmV?d00001 diff --git a/out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/test/TestAntlrXScanner1.class b/out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/test/TestAntlrXScanner1.class new file mode 100644 index 0000000000000000000000000000000000000000..9b60b02d73b5a61a5e08246f7b19e3d8add0236f GIT binary patch literal 9607 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 RrTM1Jo^oo7ysrg!{smL%<)Huo literal 0 HcmV?d00001 diff --git a/out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/test/TestAntlrXScanner3.class b/out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/test/TestAntlrXScanner3.class new file mode 100644 index 0000000000000000000000000000000000000000..528ce41db4c2f18f46e3beb9423ea3ff9a848c1d GIT binary patch literal 3162 zcma)-Piz~<6~@2eF1bTWw#Kw&Tb6Cnw5>>@L|PIhCz9nxmSu$rEh(ZRo3`U*C9UPP z$)!qBj+|Z!6sRvnfSh{kr9Jde6zCxdlA`UYmj(#nOD{bI2#_E_dM*Ow&zpV2n2{4y z2QFuS`{vE}y?HzPuWvs1JAgcP5*Ws`#3cta4lYZ~CU6c{B<2#Z@q$D_;zfyu1Q>%C`;UsxG8Z<;#G;;60b?TF5yb7N~}q&OL!7@ zBsL`OO864@B<@R8B&rgDM9smbgP#k;F8G1pxF}%t^{)unGqrV3prhyq-u!lT)vGVN zs}&;2Vr|W>thjYw-y3K*?)qB-=ZouJZvF1+8@aVwb-RiJFVs>ZE+idu?V9P;WplfM6X!uoc#ozL2#pxiZ zHQeyAfGXDN8@YSiq&&>ql4*o8m1^7dHSY=u5jgVny4ic~1GgO`7^PK=fRxraJegSa zHvAyr1?yRX6MB)*NUqLWax=ARwH7Sb?t6j2;2vF@aA$F8VQy*qYCE>j5OB=OTFACQ zq;Odv8mbTwWGH%RcCIi_|Dhz>pV@heut*v`&$iYSjH;qv=owPNnjhvCMc@&!gz6)M$2WJTsgf@kTTGv8*>Vem;};M)R4` z*&!;8&N7uszu;9WwbZTjwOYNhek+|$Wm4&h^!JY!y@prUFi*%0vu0?>6%GB-4v8K5 zO^}SZ+gN@wxFARy=@EXexH>uw{`-)E@XrkWp{(`{K zzQWTF3I+Yn@6%luHfhnSMDd@hROaFoT3wJn2tQa0=dH|UGsF8qklpF z(Si3M{z8KY#^@Rgp~5(g+c^N|@hsg5JV%qQaPnjG?9o6nVyW2QV3n=E!Y&UaqwgY? zbZq-Q$Wqy67S}9ct9S^b4BIqpv(^3(#u&D1xG&1H9cKGA>xeOv%#>y-=IFWa;=mL6 zy@-?4Lr9_%y*P|X9Kj-vVjW%B!7==bp8Xo#E%qK6dlNLzCXa-`##+Ox+X^*BU6;npTLB^*vK1Epaa)(-? z(}cMlRp+kg1V!xb(--R#@sSWnw~k!)Ko;84eMn(plh8`vRRR57@LYnWmNaIL=RGQH!s-F*yxbT zs2*T!bi|F03{#^cZgdQ`WFAuSrj8-TMn_zA@Pb*!ru*W`Y(b8((GhQM!8yjEj;u-; z9m7nGj)c)M(vmr+5=|YWjE#;&v#;|l(J6{HeLcq5=twBj*W--&R8?)}tvk<@&sEhH z>iEII`d>O2fgUr zu10=?`N;3F5cvR$k;iyB@)?#Q-=bt4#A39tTL`!n-~JCO_NVBvKS%Y+2g3g1 O|9l{RMsYx15PeRz4V3hQHVJ7+PlW8xxKJzy#<>^rd zT?9F17`tn2FS#XrTTxS_5$c-|<^M9oT1FT2J#$%^TY;@BSNfTL#|;8Ie+19tXcLd{ zyonR^n|Oh~z}f$J66iU>Vz^ZP zqbp3{!=yHr(MQ6^<3r#Gn`rR=fLRR>i3H6z8Mn!J)T_SM;P`9}G3c#P8?=*TzDE7F zn%H67ry9_vQiro$9N-YUWG?P!v4_XZfEGIss2ov?{j~~p$ki+KgeYOX%dCdOU(nr- AlK=n! literal 0 HcmV?d00001 diff --git a/out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/test/TokenStreamTest.class b/out/production/CC-Praxis-Antlr Parser fuer X-Leer/de/dhbw/compiler/antlrxparser/test/TokenStreamTest.class new file mode 100644 index 0000000000000000000000000000000000000000..4d925069efe2c9cb4ac86fb57e2abe4aa9554863 GIT binary patch literal 2977 zcmai0S#uOs6#i~z>6ys{VisW_k_np$O9mrGNLVB>XkZ8tLP!XLotY--WTt!Q=^+WO zEJ56GMFh1d@xd3XEO|&!s`vpu`L1P^FIHLQvsQ^^{BHMzY$K#9_uS>|=R2q8hkw7n z17I^g51|$Zf;fn-5DuYRE{7HLgy6%00D2`oA}{;o?r0Ft<5&R4LwEtIf_?=F`Iro0 zF|-gC;e>*L5Xvzq7rhv3Fr;8OfRwazG=Ovn2Fw65^68{JSOH|^!44oN>8Sul0vJ^= z=9|j@DL5?yhsczNMTizNs9M`8&xozYX86{D4u zHJVYaEDyGpwPRi8ux1>zElo{#@!Tw+3}|-OScb|gYvV)eDK(Z-je!_>bYq~ojvjjr zHSO45@JfFzjiyTu+G=8WpPI>gR3dFTrs8_m7HBM>`AA>fv<6%kV^+?v^|TgiHPdO+ za3q^$A_CfIMoZXQQXo=*-DPA9=`m+3P^23?CQRd$X3?-XA`qPANc2HQ1$?@Z$x(E5 z0eibTy5a}g<-40gnZ9g7H4M!XSo?td_r$eP&1xp96uhXQ)j{C^;UW-f8%<~#TPHFU zyu|ZCGiN2V-7KO&h2#HB&FW@iOYRT!Tq;yd{ z8pe5yhjBqNzm78sE{5?2-Xzuz8N-G-VniKlO;H7Jh4D7t5m>pfO!M;~Q03Uv%~;Er zt?jZbb!=9e!nlNYrN{5d<$dP%{z!E*C3!yx<3oHDX1`w+Xt=*rA$${>Z4QFmu%ZH` z_0cxVGOeg?L~X*JN&GmBEBIvIlQwGChjCTr=?bpReN3?}`S_`Hs%)0Ngqg~v4ZeIP zUus;-S~A*ZB%|hus4Qo+wr&6Jx(!h_V3OX5dX{Tpe)C{1ohju0{vq}O-I%#@J5->2 z=IS1d1lHU?Sv{T3P$1N7IT1S8;q2q`zJ(J&px8DKWip!8s%9k|YwHRz`L&ZdHANkB zriklya~<2zuTqD>M&4Lp7%Wto$1FRH=HuqbwE2K-P6s|a7h_plOLH7)7GYlLI!H8j za){0Js+*~~*X-boWJ+;v%yHed;!YusNQrAk=dG>lYvGWn?Q4YRmlN2sQ@ zzyN6-R4uoY9iE^;nB|MToO%5pBrpm5E^rc;N`|2vKNYcESfPBW{^$<=Pidv6Vv@Pi3(B%luKNZ0dJ zgbna;&!NRN#+w+aAoZ=Ag!tBB*~HcFTt@I1_hFX-4S1XIEG4OGSU&;J1iaS}JYOWfn)=Oo`~t^s!`C|rf0;6Y0C|EW&VB-+_&pVs z(<<)C|DKnxzKP;#6=7FJfT9y9p$k=C(-#k<|7#KCx`L-_tVEOvsKIXT`mqW_SdDZ1 zp>Tl-lJP~|81nHk8Z_cbM(DvfwotMNTgkNh%?`@R#M!b`#X!31rQX_NJN)Cfuspvlx{gZ)C97s6AK?d_ zf+V-Fq9Aki40BY#F(WC>6lAZNVPBbNmz3;PSK&DyWbMoI5l+jmqDaJ_k7~6mUxBr= z0+Kj%>v)VX20>dv$X2tmTUfE3tkhm&Q6~~dNKdm~ChPShEA$KLudLG) zwuurni&E?m71$(}pEgFC;h=`<#|+v#9J-aUm~ zti9Z|pp|}Bh%I;;ZS0I{v5_cyhA^pNySZ8__qZM+N(wXHwuUF8>YB6tU)?&qw_o{P#joi$Ev$MR@K%#?tSs literal 0 HcmV?d00001