From 4cd6257831e80066670faec425336d938f19683e Mon Sep 17 00:00:00 2001 From: Humenius Date: Wed, 29 Apr 2020 10:17:50 +0200 Subject: [PATCH] [03 - JFlex Scanner] Get TestASScanner1 to work --- .../.idea/vcs.xml | 2 +- .../compiler/jflexasscanner/FracToken.class | Bin 618 -> 618 bytes .../jflexasscanner/JFlexASScanner.class | Bin 8766 -> 9855 bytes .../compiler/jflexasscanner/JFlexASScanner.flex | 75 ++ .../jflexasscanner/JFlexASScanner.java~ | 695 ++++++++++++++++++ .../jflexasscanner/JFlexASScannerMain.class | Bin 853 -> 853 bytes .../dhbw/compiler/jflexasscanner/NumToken.class | Bin 534 -> 659 bytes .../compiler/jflexasscanner/StringToken.class | Bin 654 -> 654 bytes .../jflexasscanner/TestASScanner1.class | Bin 3764 -> 3928 bytes .../jflexasscanner/TestASScanner2.class | Bin 2746 -> 2870 bytes .../jflexasscanner/TestASScanner3.class | Bin 2123 -> 2123 bytes .../jflexasscanner/TestASScanner4.class | Bin 1559 -> 1671 bytes .../jflexasscanner/TestASScanner5.class | Bin 1574 -> 1654 bytes .../dhbw/compiler/jflexasscanner/TestsAll.class | Bin 860 -> 860 bytes .../de/dhbw/compiler/jflexasscanner/Token.class | Bin 1970 -> 1996 bytes .../jflexasscanner/TokenStreamTest.class | Bin 3110 -> 3080 bytes .../compiler/jflexasscanner/JFlexASScanner.flex | 57 +- .../compiler/jflexasscanner/JFlexASScanner.java | 104 ++- .../jflexasscanner/JFlexASScanner.java~ | 90 ++- .../dhbw/compiler/jflexasscanner/NumToken.java | 8 +- 20 files changed, 951 insertions(+), 80 deletions(-) create mode 100644 ÜB-Praxis-JFlex Scanner für AS-Leer/bin/de/dhbw/compiler/jflexasscanner/JFlexASScanner.flex create mode 100644 ÜB-Praxis-JFlex Scanner für AS-Leer/bin/de/dhbw/compiler/jflexasscanner/JFlexASScanner.java~ diff --git a/ÜB-Praxis-JFlex Scanner für AS-Leer/.idea/vcs.xml b/ÜB-Praxis-JFlex Scanner für AS-Leer/.idea/vcs.xml index 94a25f7..6c0b863 100644 --- a/ÜB-Praxis-JFlex Scanner für AS-Leer/.idea/vcs.xml +++ b/ÜB-Praxis-JFlex Scanner für AS-Leer/.idea/vcs.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/ÜB-Praxis-JFlex Scanner für AS-Leer/bin/de/dhbw/compiler/jflexasscanner/FracToken.class b/ÜB-Praxis-JFlex Scanner für AS-Leer/bin/de/dhbw/compiler/jflexasscanner/FracToken.class index dee394ccfe8bcda93a60c39d569bb4cb1a99f84e..e7c32f3e4b5165cb4eeb2b5e03740635fad80ade 100644 GIT binary patch delta 275 zcmXYqu}Z^W6otRrCVxmxYP43PRT>_@-2a?=mccSee|{HVz!?V-9e-$riwKNkKei+PXwiIhUiRp+mJpE``AKzk zU%%AlLp__8H_uOZv*|@uo!-V6{e%!Vzy5ZNCA;2R@!Ff@;V0?4S~{$2_H_;h#B50q z$)qlEni(5x>TPJCUu$W|wvx?mN4qAQk&A+sRH#zeWl#QCRLb2X!^sEfTOnHYx^|l@ O4av&!-)HQ%uF)Uj9UO-M delta 270 zcmaFG@`^?3)W2Q(7#J8#7-YE^SQsQY8JHO)*%_qR8KftsSWG;9h>M4Tok50&ft7)6 zBCifJBZKNh0fmY2?D7&Co<3QLWr_MZiFxVz!6ikRdFj@ko|<6{ia;}1CQoM6sb|!Z zVBN~Vv=L|l69X5JKsiP*OMpQT zs1qb61QY}56#(ky2f7r*0=fx^8GvSq0@ZT@S^7ZLAf2pQTNs$u>i}60d)dIE5@7py PAS$5tF*1mORfz)t{LdWe diff --git a/ÜB-Praxis-JFlex Scanner für AS-Leer/bin/de/dhbw/compiler/jflexasscanner/JFlexASScanner.class b/ÜB-Praxis-JFlex Scanner für AS-Leer/bin/de/dhbw/compiler/jflexasscanner/JFlexASScanner.class index 86ce69bbd6929fd419bc38bd93e034c3cf69435e..8534ee693e69c405271ab5e83f41b64a5b03ba86 100644 GIT binary patch literal 9855 zcmcgy3tW`fl|Scx-#0T10}RNZ2-2xU1A_rYB+&r!5OfrQ@X(-1bc9jSVTKGt6uQmQ z)}-k+?RL9O+oVlmv)PhOZIbnYv|2UWZnJ&w_WkZ|cbm59rjMlACe4HWpZg8tsARMI z`|Yl9ALl;KJ@5m60yJL#t``d2qG{hOPX)6XP(+C@K?mS4E&mr_3C zqF+h*?{4a$XERXywPe4M?6;Er&PC5j`MhMmm+S?Da*3q&ACmpSO)t_*Qv0K1FT3d# zdeupUMxI|+;klmOY@QpdXY<<{3bWm)3Yx2qvSWs*rhHm z72+y4FXQDdzFHc~TwE@V0U;_}yh6%rB&(FHO0tzMUghFy7q1qo#>s1#tp5Ji&Ne0v zGG(>IqN9mWG_frd84DY;_=mGzF&V8lc1hJlwWqgRst%0k=xf)bT}&#tL0a7y(9yS5svf3HEY#k5V^42WZ!3oE zgh1J7YT4S13J^ zu8E26aA+_b$4WMvp;(pOB9Kf>^dv%wFd&?mXb&GA8VE&_4Vc(Gws)^g%$%6m8j2qb z4|c^yA>G78%UC=fjwUpTPRxiWgeNeYm}rd-+I7eHcw{IF-lz=h4}p;jl~`nKII34} zN;G%2L!)*iDXm|^ptEg5Oy=cJOtcL}Ly=8G`}X%>$=E(Es&i;iD<1d_C3R5C-xnPT z4IFG5NDRfWfLT^9s$sUo2Ei()9g=j64etrZdqaC7Xvu4jVYAyp@gbp;jgEMDbS#p9 z$g#b9N5iNrD!UT=;Lczi#)zk9~yj2v}C(V;{GG$JX~#iK0W22P3nLzua; zeK1@#xPQ-~s)5+>$WSC4uR5?d5x4!`Vx!m`rehDFaRdT9j>1-3G>zIiiXng<^q%lOk=QH?${ZJ#1j-tr@$p3X zFlOhMm0x*owgN&ELl_~GWhWz|(@@MvIJz%^gAjcNFs)EGXsmNMJUSZM2l*H&kjAqq z9uJKNql4kYonwj4z0J^t!O_�BS~9Scv***Pj8uKR!M(HoAWg6axDLAkapQ*x^KP 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%0Al8*4quJ!Ms z#gLIvv7eR{2%<|Wsx!Tr<_+d<*cs$<{n9jBaJ2!~n&Lvh3eD*Xj6yS~s+pj>{Kb;e zyhyouNgW{^9+FTIZ5UG&)ibV|F0jB^kS6O@6gUd2uC1uf@@A>sWS@X~-mDpv%NOS5 z#nq-a)8o9s`^eLa1-Y^9Y{j@caVLCwThth)>;$=OH{t@w|rTBZ$bA zB^AQvqUnoH(7p+JT85o75ATvO$IN46GA1vzGl;!f#%wc>)ybHB=CS!Q=J||4r{6@# zPaMA+`_d;T--3@4#BU%8y-99G=-%_+47S@8O*OfGYSy{MYk$RLj4o z2L1@wh7BMt8{unWzb71i(Xb9 zdYykuZ>n5+N9ED`DxYntfZb{i=cppiSH)bSO89f?9QG?8SE_UQLN$*Y)qL(!=kYpK z#(k=shgAiSsYOc!o)4=AepWT| z^XgK5QLW)uR1^P9UB<7f%lUQH!f&Zoepj{gN!6hos#9gCZZ%u2Qzhz3HBa@Z1!}!o zqOMleDxhjquWD9(>IxN9{c1pcPi<4LtC0Goil|?!s5-8$S5s<-k*{J#q56VRrEV~m zs&S)D-DGsAoyMTL#R#k0j4!L(jXTwy##fbf+8sx7uf>sh5J}aIOVe(=u&hP`R%W_}cWR_oPd>o6|c){K*MAsq%^7L^(O z^bDk=1J!&wg1$`2-BzmSxA@y}DeKg7M21|{D~!!_3@w8e7$JHVEtBlVU5F|9(&094 zqrb(K(2j(8Gkp&&2hBEapuaQ~q8|5QSC3(|_Lz8VW^0cfj{}brk4FfPP##UDNy{Zg zy4kvy7Ux_%Nz3+9`6OMkmzGXa&0e}-l9unK^X<>z;%4O3cJ!DzD>`~?IV(H%()>xP r+e;O4ap05})^b{ouV4+d0v~Fx!q>I!_^^5}J`g { + "null" { return new Token(Token.NULL, yytext(), yyline+1, yycolumn+1); } + {AllChars} { yybegin(ID); + idValue = yytext(); System.out.println("BEGIN ID <"+idValue+">"); } + {Numbers} { yybegin(NUM); + intValue = yycharat(0)-'0'; } + [\[] { return new Token(Token.LSBR, yytext(), yyline+1, yycolumn+1); } + [\]] { return new Token(Token.RSBR, yytext(), yyline+1, yycolumn+1); } + [,] { return new Token(Token.COMMA, yytext(), yyline+1, yycolumn+1); } +} + + { + {Numbers} { intValue = intValue * 10 + yycharat(0) - '0'; } + {SmallChars} | {CapitalChars} { yybegin(ID); idValue = String.valueOf(intValue); yypushback(1); } + [^] { yybegin(YYINITIAL); + yypushback(1); + return new NumToken(String.valueOf(intValue), yyline+1, yycolumn+1); } + + { + {AllChars} { idValue += yytext(); } +} + [^] { yybegin(YYINITIAL);System.out.println("PUSHBACK BEFORE <"+yytext()+">"); + yypushback(1); System.out.println("PUSHBACK AFTER <"+yytext()+">"); System.out.println("LINE <"+yyline+"> / COLUMN <"+yycolumn+">"); + return new Token(Token.ID, idValue, yyline+1, yycolumn); } + + +[^] { return new Token(Token.INVALID, yytext(), yyline+1, yycolumn+1); + /*throw new Error("Illegal character <" + yytext() + ">"); */} + + + diff --git a/ÜB-Praxis-JFlex Scanner für AS-Leer/bin/de/dhbw/compiler/jflexasscanner/JFlexASScanner.java~ b/ÜB-Praxis-JFlex Scanner für AS-Leer/bin/de/dhbw/compiler/jflexasscanner/JFlexASScanner.java~ new file mode 100644 index 0000000..ea54ce9 --- /dev/null +++ b/ÜB-Praxis-JFlex Scanner für AS-Leer/bin/de/dhbw/compiler/jflexasscanner/JFlexASScanner.java~ @@ -0,0 +1,695 @@ +/* The following code was generated by JFlex 1.6.1 */ + +/* ********************************************** + * Duale Hochschule Baden-Württemberg Karlsruhe + * Prof. Dr. Jörn Eisenbiegler + * + * Vorlesung Übersetzerbau + * Praxis AS-Scanner mit JFlex 4 + * + * ********************************************** + */ + +package de.dhbw.compiler.jflexasscanner; + + +/** + * This class is a scanner generated by + * JFlex 1.6.1 + * from the specification file C:/Development/Schule/Java/ÜB-Praxis-JFlex Scanner für AS-Leer/src/de/dhbw/compiler/jflexasscanner/JFlexASScanner.flex + */ +public final class JFlexASScanner { + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + + /** initial size of the lookahead buffer */ + private static final int ZZ_BUFFERSIZE = 16384; + + /** lexical states */ + public static final int YYINITIAL = 0; + public static final int FRAC = 2; + public static final int EXP = 4; + public static final int STR = 6; + public static final int NULL = 8; + public static final int NUM = 10; + public static final int ID = 12; + + /** + * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l + * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l + * at the beginning of a line + * l is of the form l = 2*k, k a non negative integer + */ + private static final int ZZ_LEXSTATE[] = { + 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3 + }; + + /** + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = + "\10\0\3\1\2\0\1\1\22\0\1\1\13\0\1\11\3\0\12\3"+ + "\7\0\32\2\1\7\1\0\1\10\3\0\13\2\1\6\1\2\1\4"+ + "\6\2\1\5\5\2\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uff95\0"; + + /** + * Translates characters to character classes + */ + private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED); + + /** + * Translates DFA states to action switch labels. + */ + private static final int [] ZZ_ACTION = zzUnpackAction(); + + private static final String ZZ_ACTION_PACKED_0 = + "\4\0\1\1\1\2\1\3\1\4\1\3\1\5\1\6"+ + "\1\7\1\10\1\11\1\12\1\13\1\14\1\15\2\0"+ + "\1\16"; + + private static int [] zzUnpackAction() { + int [] result = new int[21]; + int offset = 0; + offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackAction(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + + /** + * Translates a state to a row index in the transition table + */ + private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); + + private static final String ZZ_ROWMAP_PACKED_0 = + "\0\0\0\12\0\24\0\36\0\12\0\50\0\12\0\12"+ + "\0\62\0\12\0\12\0\12\0\12\0\12\0\12\0\12"+ + "\0\74\0\12\0\106\0\120\0\12"; + + private static int [] zzUnpackRowMap() { + int [] result = new int[21]; + int offset = 0; + offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackRowMap(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int high = packed.charAt(i++) << 16; + result[j++] = high | packed.charAt(i++); + } + return j; + } + + /** + * The transition table of the DFA + */ + private static final int [] ZZ_TRANS = zzUnpackTrans(); + + private static final String ZZ_TRANS_PACKED_0 = + "\1\5\1\6\1\7\1\10\1\11\2\7\1\12\1\13"+ + "\1\14\12\0\2\15\1\16\1\17\3\16\3\15\1\20"+ + "\1\21\5\22\3\20\1\0\1\6\15\0\1\23\5\0"+ + "\1\21\16\0\1\24\11\0\1\25\3\0"; + + private static int [] zzUnpackTrans() { + int [] result = new int[90]; + int offset = 0; + offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackTrans(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + value--; + do result[j++] = value; while (--count > 0); + } + return j; + } + + + /* error codes */ + private static final int ZZ_UNKNOWN_ERROR = 0; + private static final int ZZ_NO_MATCH = 1; + private static final int ZZ_PUSHBACK_2BIG = 2; + + /* error messages for the codes above */ + private static final String ZZ_ERROR_MSG[] = { + "Unknown internal scanner error", + "Error: could not match input", + "Error: pushback value was too large" + }; + + /** + * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + */ + private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); + + private static final String ZZ_ATTRIBUTE_PACKED_0 = + "\1\0\1\10\2\0\1\11\1\1\2\11\1\1\7\11"+ + "\1\1\1\11\2\0\1\11"; + + private static int [] zzUnpackAttribute() { + int [] result = new int[21]; + int offset = 0; + offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackAttribute(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** the input device */ + private java.io.Reader zzReader; + + /** the current state of the DFA */ + private int zzState; + + /** the current lexical state */ + private int zzLexicalState = YYINITIAL; + + /** this buffer contains the current text to be matched and is + the source of the yytext() string */ + private char zzBuffer[] = new char[ZZ_BUFFERSIZE]; + + /** the textposition at the last accepting state */ + private int zzMarkedPos; + + /** the current text position in the buffer */ + private int zzCurrentPos; + + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + + /** endRead marks the last character in the buffer, that has been read + from input */ + private int zzEndRead; + + /** number of newlines encountered up to the start of the matched text */ + private int yyline; + + /** the number of characters up to the start of the matched text */ + private int yychar; + + /** + * the number of characters from the last newline up to the start of the + * matched text + */ + private int yycolumn; + + /** + * zzAtBOL == true <=> the scanner is currently at the beginning of a line + */ + private boolean zzAtBOL = true; + + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + + /** denotes if the user-EOF-code has already been executed */ + private boolean zzEOFDone; + + /** + * The number of occupied positions in zzBuffer beyond zzEndRead. + * When a lead/high surrogate has been read from the input stream + * into the final zzBuffer position, this will have a value of 1; + * otherwise, it will have a value of 0. + */ + private int zzFinalHighSurrogate = 0; + + /* user code: */ + int intValue = 0; + String idValue = ""; + + + /** + * Creates a new scanner + * + * @param in the java.io.Reader to read input from. + */ + public JFlexASScanner(java.io.Reader in) { + this.zzReader = in; + } + + + /** + * Unpacks the compressed character translation table. + * + * @param packed the packed character translation table + * @return the unpacked character translation table + */ + private static char [] zzUnpackCMap(String packed) { + char [] map = new char[0x110000]; + int i = 0; /* index in packed string */ + int j = 0; /* index in unpacked array */ + while (i < 80) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do map[j++] = value; while (--count > 0); + } + return map; + } + + + /** + * Refills the input buffer. + * + * @return false, iff there was new input. + * + * @exception java.io.IOException if any I/O-Error occurs + */ + private boolean zzRefill() throws java.io.IOException { + + /* first: make room (if you can) */ + if (zzStartRead > 0) { + zzEndRead += zzFinalHighSurrogate; + zzFinalHighSurrogate = 0; + System.arraycopy(zzBuffer, zzStartRead, + zzBuffer, 0, + zzEndRead-zzStartRead); + + /* translate stored positions */ + zzEndRead-= zzStartRead; + zzCurrentPos-= zzStartRead; + zzMarkedPos-= zzStartRead; + zzStartRead = 0; + } + + /* is the buffer big enough? */ + if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) { + /* if not: blow it up */ + char newBuffer[] = new char[zzBuffer.length*2]; + System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length); + zzBuffer = newBuffer; + zzEndRead += zzFinalHighSurrogate; + zzFinalHighSurrogate = 0; + } + + /* fill the buffer with new input */ + int requested = zzBuffer.length - zzEndRead; + int numRead = zzReader.read(zzBuffer, zzEndRead, requested); + + /* not supposed to occur according to specification of java.io.Reader */ + if (numRead == 0) { + throw new java.io.IOException("Reader returned 0 characters. See JFlex examples for workaround."); + } + if (numRead > 0) { + zzEndRead += numRead; + /* If numRead == requested, we might have requested to few chars to + encode a full Unicode character. We assume that a Reader would + otherwise never return half characters. */ + if (numRead == requested) { + if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) { + --zzEndRead; + zzFinalHighSurrogate = 1; + } + } + /* potentially more input available */ + return false; + } + + /* numRead < 0 ==> end of stream */ + return true; + } + + + /** + * Closes the input stream. + */ + public final void yyclose() throws java.io.IOException { + zzAtEOF = true; /* indicate end of file */ + zzEndRead = zzStartRead; /* invalidate buffer */ + + if (zzReader != null) + zzReader.close(); + } + + + /** + * Resets the scanner to read from a new input stream. + * Does not close the old reader. + * + * All internal variables are reset, the old input stream + * cannot be reused (internal buffer is discarded and lost). + * Lexical state is set to ZZ_INITIAL. + * + * Internal scan buffer is resized down to its initial length, if it has grown. + * + * @param reader the new input stream + */ + public final void yyreset(java.io.Reader reader) { + zzReader = reader; + zzAtBOL = true; + zzAtEOF = false; + zzEOFDone = false; + zzEndRead = zzStartRead = 0; + zzCurrentPos = zzMarkedPos = 0; + zzFinalHighSurrogate = 0; + yyline = yychar = yycolumn = 0; + zzLexicalState = YYINITIAL; + if (zzBuffer.length > ZZ_BUFFERSIZE) + zzBuffer = new char[ZZ_BUFFERSIZE]; + } + + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + + /** + * Enters a new lexical state + * + * @param newState the new lexical state + */ + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); + } + + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead+pos]; + } + + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos-zzStartRead; + } + + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } + catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + + throw new Error(message); + } + + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if ( number > yylength() ) + zzScanError(ZZ_PUSHBACK_2BIG); + + zzMarkedPos -= number; + } + + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException if any I/O-Error occurs + */ + public Token nextToken() throws java.io.IOException { + int zzInput; + int zzAction; + + // cached fields: + int zzCurrentPosL; + int zzMarkedPosL; + int zzEndReadL = zzEndRead; + char [] zzBufferL = zzBuffer; + char [] zzCMapL = ZZ_CMAP; + + int [] zzTransL = ZZ_TRANS; + int [] zzRowMapL = ZZ_ROWMAP; + int [] zzAttrL = ZZ_ATTRIBUTE; + + while (true) { + zzMarkedPosL = zzMarkedPos; + + boolean zzR = false; + int zzCh; + int zzCharCount; + for (zzCurrentPosL = zzStartRead ; + zzCurrentPosL < zzMarkedPosL ; + zzCurrentPosL += zzCharCount ) { + zzCh = Character.codePointAt(zzBufferL, zzCurrentPosL, zzMarkedPosL); + zzCharCount = Character.charCount(zzCh); + switch (zzCh) { + case '\u000B': + case '\u000C': + case '\u0085': + case '\u2028': + case '\u2029': + yyline++; + yycolumn = 0; + zzR = false; + break; + case '\r': + yyline++; + yycolumn = 0; + zzR = true; + break; + case '\n': + if (zzR) + zzR = false; + else { + yyline++; + yycolumn = 0; + } + break; + default: + zzR = false; + yycolumn += zzCharCount; + } + } + + if (zzR) { + // peek one character ahead if it is \n (if we have counted one line too much) + boolean zzPeek; + if (zzMarkedPosL < zzEndReadL) + zzPeek = zzBufferL[zzMarkedPosL] == '\n'; + else if (zzAtEOF) + zzPeek = false; + else { + boolean eof = zzRefill(); + zzEndReadL = zzEndRead; + zzMarkedPosL = zzMarkedPos; + zzBufferL = zzBuffer; + if (eof) + zzPeek = false; + else + zzPeek = zzBufferL[zzMarkedPosL] == '\n'; + } + if (zzPeek) yyline--; + } + zzAction = -1; + + zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; + + zzState = ZZ_LEXSTATE[zzLexicalState]; + + // set up zzAction for empty match case: + int zzAttributes = zzAttrL[zzState]; + if ( (zzAttributes & 1) == 1 ) { + zzAction = zzState; + } + + + zzForAction: { + while (true) { + + if (zzCurrentPosL < zzEndReadL) { + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL); + zzCurrentPosL += Character.charCount(zzInput); + } + else if (zzAtEOF) { + zzInput = YYEOF; + break zzForAction; + } + else { + // store back cached positions + zzCurrentPos = zzCurrentPosL; + zzMarkedPos = zzMarkedPosL; + boolean eof = zzRefill(); + // get translated positions and possibly new buffer + zzCurrentPosL = zzCurrentPos; + zzMarkedPosL = zzMarkedPos; + zzBufferL = zzBuffer; + zzEndReadL = zzEndRead; + if (eof) { + zzInput = YYEOF; + break zzForAction; + } + else { + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL); + zzCurrentPosL += Character.charCount(zzInput); + } + } + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ]; + if (zzNext == -1) break zzForAction; + zzState = zzNext; + + zzAttributes = zzAttrL[zzState]; + if ( (zzAttributes & 1) == 1 ) { + zzAction = zzState; + zzMarkedPosL = zzCurrentPosL; + if ( (zzAttributes & 8) == 8 ) break zzForAction; + } + + } + } + + // store back cached position + zzMarkedPos = zzMarkedPosL; + + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + { return new Token(Token.EOF, "", yyline+1, yycolumn+1); + } + } + else { + switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { + case 1: + { return new Token(Token.INVALID, yytext(), yyline+1, yycolumn+1); + /*throw new Error("Illegal character <" + yytext() + ">"); */ + } + case 15: break; + case 2: + { /* Ignore */ + } + case 16: break; + case 3: + { yybegin(ID); + idValue = yytext(); System.out.println("BEGIN ID <"+idValue+">"); + } + case 17: break; + case 4: + { yybegin(NUM); + intValue = yycharat(0)-'0'; + } + case 18: break; + case 5: + { return new Token(Token.LSBR, yytext(), yyline+1, yycolumn+1); + } + case 19: break; + case 6: + { return new Token(Token.RSBR, yytext(), yyline+1, yycolumn+1); + } + case 20: break; + case 7: + { return new Token(Token.COMMA, yytext(), yyline+1, yycolumn+1); + } + case 21: break; + case 8: + { yybegin(YYINITIAL); + yypushback(1); + return new NumToken(String.valueOf(intValue), yyline+1, yycolumn+1); + } + case 22: break; + case 9: + { yybegin(ID); idValue = String.valueOf(intValue); yypushback(1); + } + case 23: break; + case 10: + { intValue = intValue * 10 + yycharat(0) - '0'; + } + case 24: break; + case 11: + { yybegin(YYINITIAL);System.out.println("PUSHBACK BEFORE <"+yytext()+">"); + yypushback(1); System.out.println("PUSHBACK AFTER <"+yytext()+">"); System.out.println("LINE <"+yyline+"> / COLUMN <"+yycolumn+">"); + return new Token(Token.ID, idValue, yyline+1, yycolumn); + } + case 25: break; + case 12: + { + } + case 26: break; + case 13: + { idValue += yytext(); System.out.println("IN ID <"+idValue+">"); + } + case 27: break; + case 14: + { return new Token(Token.NULL, yytext(), yyline+1, yycolumn+1); + } + case 28: break; + default: + zzScanError(ZZ_NO_MATCH); + } + } + } + } + + +} diff --git a/ÜB-Praxis-JFlex Scanner für AS-Leer/bin/de/dhbw/compiler/jflexasscanner/JFlexASScannerMain.class b/ÜB-Praxis-JFlex Scanner für AS-Leer/bin/de/dhbw/compiler/jflexasscanner/JFlexASScannerMain.class index 908dab87478f3ab0337a1cb179ebd4b6711c5a6b..dc91e64fbdd01cd71becbd9617be82f2bed50277 100644 GIT binary patch delta 365 zcmYLE%}N4M7(L&eamFU?$I{gPG%ZIlXA!k2+C-ZOf&xKk;iQAi5Hn#z^aibE9%dk+ zWs4wa<6HC$(Kln{;@-pg`Of|BM42e*kDu2!00+=jh~SeBb1G!Ql4CxZ#=YqdjH^4x z>iHwRDJ3x%2(e!xC?~dS`=i17yB1H mEm+Bnk?)LA>|~N5HbQI%i&CYqg9>}goUURwZrWomQ2Pa)B}Nwj delta 365 zcmYL^OH0E*6ot=B9us3Deb}c~tx+4LHXB_jZp4iUf`V9FrEMrFl1L5W&SlpjKPF(o zr3=^g?}#_8*u}kP?#G!qcc$u8wZ4AdKL8xT(xIU)upzK1u%)4)L&CNW4pU$!x^I;j z)Kky*!ZQZR+P`Cv&x5`jeUIZDe=sgyd+t-{1^% f3Dg84u1cm^M2S2(x>rVpdX*-bv_`c?XO8t>OvOcg diff --git a/ÜB-Praxis-JFlex Scanner für AS-Leer/bin/de/dhbw/compiler/jflexasscanner/NumToken.class b/ÜB-Praxis-JFlex Scanner für AS-Leer/bin/de/dhbw/compiler/jflexasscanner/NumToken.class index 0d18168988695b1e967c7b67d5a396a2c3c34998..bff1aa59974141a318bea20f76ecffc32ddf5818 100644 GIT binary patch literal 659 zcmah`O;5r=6rAP5LM<^#H0!F0&-u<3dOP|r6@njix)K>`~m(b z<6A!B0S%Ykd2eTD=Iwrce|!SCz_Er1gV_;Qr`LY69Dgu$JrP*_drwUGXykAysk|Kz zn*M{38e$A5tJqU2!`h`Q-SCQG$E^4HBey&*yH+C%T-mMJcBRD-yY@RmM-)i|ap(*M z)BcZ}uDeoDkhTb#yzL2wY~6Rb*W!Vz>UlF3_S_LewZ1ClVx}6!2*o5+dP_0s%p+R{ zX4629?~MnNA<-3Ki+f}0N6m_@gJv{Pz%GMEN6o2P&a5o!>DWg}Ly;l#>t)MObVXp` z0EZ+#I_HJi=g}i1}c(U delta 298 zcmXX9mW6zUjW$98et;hp za?ah{;+&Z|b7wO9%j(^Kzi$9Sv=mGPE*dVH1m|THul5r{YcNZ9o%HhR9(NIeW|>d@ zhVzkZ4%?VeSVsHB`{uwWbCCT|*Y;q+PW_Qd=%0RNR2@GO2)Y9cc!2SzVTn-#sO4j}X_Z}RL delta 235 zcmXAiF%E)25Jmq23xbQHC<5A03MMwz9K*r`cnxoW*>Dj}G$s}nmR`nq0pn+FX5P&F z-Pg!Q=CAMl0bqkg00%Q4Hc}6nhg|P>`uz+QJj@j&T!E@BM5XIer23fjmRl5zJMB%Z z2BOU571o)5SqR#Xh!1^o4VN{7Ldf3H07D2v5pR~E5qGwsG08DRA*Dc!3G+T_&ECC~ ZKoP5JmMJ=&`Ui}Tv%u8Ek{`p77J~o) diff --git a/ÜB-Praxis-JFlex Scanner für AS-Leer/bin/de/dhbw/compiler/jflexasscanner/TestASScanner1.class b/ÜB-Praxis-JFlex Scanner für AS-Leer/bin/de/dhbw/compiler/jflexasscanner/TestASScanner1.class index f954a2106df8f3781eb49a4d26c0f66ad8fc62ac..7196c7895ad4a084e19d3d0cdb4fc987d536283b 100644 GIT binary patch literal 3928 zcma)8OLG+089i6i(p(J^G;Kpb;?Wob(zuPD2+49VLP#JyNT3lyk0^0#rjbS(^~j?c zA;7OVcH&pwabgm@^ERo<#;!^#&VpU4Qf2>yY_rKC`&7>D9`$r%#CX%w_nhzE^WF2^ z`}O?ee}DNBKo1_oQ73RZ>vUw77jJiD3Tx}Ryi@F0xs`Xe?2V0#?YbOJIUA*+blM+v z#i0pw)SOdTb=-8R=-6v&xUj|PD~shsPKm)91Z z;*`CZcLa=7A!FyK?P5-iE1*_d&TR;ErfMb-NqSJAv7}N;r7uhhBu2I}&Uz_Va5v)E zEAZ5cy=iykZFi|7U<3|Mmfccr&6&<^lRA3H%UNG6^ct8D`oD<^Jh?EA9rP% z^JX015jasZKb4KdK>;zJz<#tU9}Wo|Xd6pav!R1IcWH2JtbIBGfg?>g3R9rD#NADK z`^hPD&$WGX&fI)$kJJi-svN#KlQc)-xVMi5Q{n`ZTcBH>bHfu?uMSDHd8|b?N!Hq) zIyZDVCGosRc9QHM*(uTG0Rsej2nDc=E*a$JDipZpAy(r&5QHs(_z!J7c*Js*3xorWi`L%7S>-aZj{QKx3})x<(wIT zmYoA6=Da0_E(~8B8NGCQ?8?ijtK$>bu1}_?ZcN{tnVsVj-{TTH2S|LM4w>fojZ})k zuW-BSRbtVH%XtN770lP|>i8i`UWi-H=NXb?h0K=sOP0BGrq43f)-3N~_Af}h$0d4tB|e~#7ccPKm@ z`Tmd+)qgFpciyxubI~#rX2vp`6IrhKF(Vfxe#f7T#C`tI^hCN)E@qrjc2PE!Xx}`o zZZ(e4*ch8H(9Ab>K0f0db?}$2qdxfsV14J~ZQi*6;;d(x2mSRVYD0;AymAUr4Mq5Igqm z#hwX?)f><5D0YxyEsqsD`R&C{g~S?+_8rBJQ0nMo#h$An_HM<-iKJnL#Nx*3KrCr= zMwspp(;H#>0;X!c!TJHmnc%bN#R-h#WGK;zpalI-PE?frM8(mhF%S}!#$X_tG`<^Q zUJ5Zo5oS2Vj6|4AA!aPXyc}Y#Mwp2Zb3MYOL(Gi`b2G%uMws~!vk+l^5Mt~IlL?rr z@!d2GNYeP{XuL(^pT{yz<89u?2k6A-=)za%#=rUT($Fi8;7qkJ;%HD9=gEb^6~8bz zlr(OIlF}QD<;P^@-^2m5;)SXj4h3o}HPkjMYUh*2YAnWU&wH+3s~sR_tZDU?4v;j~ z9$~a^^alTco?|vI@pzu+b10PA`5?1Gjm$y~X+0!bXB2~Us>Shb7-4ZnLt@p2RH9g2 zsQW$A@yZc_+dKL^Mu97j6}a={-H4uw&tE5vyD_~f(qBDyXSMBi8&{Uj)~lgvh`QH) zXB*U58n0=(^!T_Ms~)EB_Qo<8@A1aEH^B?geZZR`jW;xXuMbqG?DK&}wMN`{OVjuJ zKq6T5pbzZwBi`2Z76n8;3gf0(#C5?Au`re4G-qG}JjT=Al4~=iDa>aMK;_C3W z%T-r>-m^#=?{B*va<$oaq~hv_nqINF>T1PA&sAysRMQVU>S}AqRqul9hkc|eF#ebi zG%LUldB#U}2O%eYV2@v$pKE%X59kW;j!?S-BE_2I*Bf|+rrRvmB8!zlKeD(Cho!lN z9F}mG{p~}(Jz(knh*f-vJPWmkf5F9nQDB!_7yI~U?>PThoVk2 zFYYIeU&ZvsoeCIymUbxMZ)z0qxAp!d3+h+z-zvRQzE2wb)1rITqh}4R{13n; vw|SeEZPBtjwCpY|yGP4jqgk&LeFN{|O?-?^e1f;Cmf(J1$?s`=9sclt1i_|> literal 3764 zcmb7FTX!2p68>5mOBKaVCIiVPb}kb_5?c(BZ@HL25+|_}2gL^4F?LLL8A}sejyy8D zIELl6EbMZ>vrB+S{s1p<4jlF+4|@(z@HhAo>{fS6qnTi%!-J&i`l{;d{<^F5!ruw65ndLyD@o#~|qXoZEJtGkB?wJuVE|l_~ z!1ipx_r_~03toBJT`020%9e6&amFndeb-}$MxaMS%IVi#x6FziIdZFJ$+J>;XQ+RH;_Zd82%Kf%~H8 zJ+|zwx$QUy-jre6^R~d@mWoMz1jM||yVH)(@r6ph!O7x=G976;%IuY9uQG?EImCys z?Y{nj!Q&@Ro*I&Hs<~2eu8eb)IV?@Rw{>Z*EAOl{X9e19yH^IsdO4aGv$9%jmf5z2 zDP+jjCI`pvvu$@Fm-lWiE)|w<6<7Sy>a*oawYGM9{ki8kx^r_>B@ds!aB*bx(&e!$ zk7uurPdxGDz?e^rEED;8yh{NF^v+E%$}53OoE%rlV|A=6ZN=io4~WmjzvnN* zGK|ExXq);5iDt=fCw7L)cGb&XX3XH?W4OYWq<>tIWj7*AhRE71+LUY$lXd<9 zva1`BZ3&SjtkkAt`6@IFYuthRBjudq9@9IwHun5VAdjm;ut1-ePHi zL%hKU`QP_2#&IOH(TNsUFwxkksOgQ018HkVh?FcVAWd8MMUeYL$j%6|D}?+hg6s|< zdm>0@2+2(mwf9Ec!x2ss!*9ta_aBFKXwgZn-d^zrH!`w1V~%ydl2I{vq3-5GuX;A z>M&2Iv&_{TJ?C2NY% z7?WN3T{3~`;57fM>-=-t%EZm~$b41m&KZqyo0O8ywaKL%h^899a|yX7tJg3|;Yqoc zGtAtk))cI_tF@^TRDh`+Dub*(!`z`A&6J(mu|?KMTK$H(OFL3Q(LLI+RYwdMW~X#) z@TV}&O)wvl<>wX`eyt&qxTYl%N7L3|+}sh7NIf$xQPMiDAApufo=_`RS7=v5v8F;A zSH~smL_@)lLLK^ab%jnEW?izTLUlouLS&sX%-#1Y)D==lHLJN#d)fmL4{Aq;bm))= zv}aooazs0}Yn_J-vs*h%=}^z1M>;kT{uyxu<)-lBXba(I8p7kh^|yH^Z9NhjTQ-&IeAYx`?A+VuYxoSWG>?iqEspvW5AGOd F{|}C4j=cZ? diff --git a/ÜB-Praxis-JFlex Scanner für AS-Leer/bin/de/dhbw/compiler/jflexasscanner/TestASScanner2.class b/ÜB-Praxis-JFlex Scanner für AS-Leer/bin/de/dhbw/compiler/jflexasscanner/TestASScanner2.class index c43a69377ca5b848ccb15bb826726062761c9af5..237cd91cd3a9817024e61d4dfe0254f7fbd3e740 100644 GIT binary patch literal 2870 zcma)6T~`xV6y29h$R&b|qgcMG;}?aP<^vKw3ThR#1*5G5QACmsVT8djagosa(%;a( z(7(_=)V12xzVxln{RLgC{*12fI~l^HCJirh?>+aNv-jEO%>Cn^pML`|g;x=D2_&}d z!-;GG=XHtn93{L&DRcWYhQ&6 zbT2rrQ@be;8lPAb&=xD(b`&A>^dgLIf&QH1+K&$Rx9o#eYpZMv7`aNxDz8}wjyn5B zt+wk_1yZ?=1e!?C3&@(HlrE+PqW9jE?AJA?;#MO#BXD-l`r1mCEq5o`xDgmyIdp5z zzP;vD9TK?hx|N#c1qtZ6%E3-@?~o;V^2|#Nutw8NC(>pF9|&CQNKny{7@{H!isC#* zloX=^gX2rNV@4Fwad+mImL}Gs5V+8bi!cTHYAkS7<;Xco-<#v_$2{NYER)JGuR0R( z^^v$D5LT6#64wN}(ut$XVp?L{yJVFTF#(Z~h;vb*9_g#RlGNK1qo5pl8)l6Ku06h& za>_8Ta`JqpITLCtFyOhQ(vztoKU4l!VoqSpG?ginot~MUOCj3A#A7BoibxeQ*$s(2+u%ddAn}AGHz<15 zc5Ajh9TIF&jZca`mGTFG9NyN=;qL7`Ao2;*pO2y5Y*-eS(?3?E)@q(G+ z60A7v1xb9x(a5m_?2ojB_FFSDarD{lbqPF$T5nw;0a z7Hx=V!!6OqI-qU)wZ&q_N1nrZZDw*m$V3{SYkIT|lLa!lK_)lJWPwa>wPdnfWZGx@Ta$x4ukW~^#@UmGUNWb%Maa%8ehCJ$ROS^Iw`BInP^yO{Ab zr1v$R00pfnPH(DY8< z;Y$xZre-VDFwd836?1q(CD-sAPf^A*e2aB_$J6)Nz>j!=-?525QNUk}`y0i8-tQWJ KgTt&{*!ve;D8RY^ literal 2746 zcmb7^Z&TYw5XPUgW$Q2o6aj4@G!;p3z;XQtY#@b_5)xXdlQx*T0UEo)C?I0wjBVO{ zt-fhy+G#&PzDM&hI@vqPMsDo!_>FYCxBL9GyLWo`-=F^g$l_H5ckwmHrizCgTM-2D zD1sOsb8K^b!|^T04#zIXcN}?+Cmc^XzUTOX;~B>uM}cFX<42An$4?y3ISx1uIgU7f z=6JzT;wW?c!eMe8b5uA^R9GrrGKAM{$8K&g1m_ou49ZsR#9|oB+m7}0^5WR4@0-U} z^62?m#jF<1x-D$asWi{*217c3Vx>;bj(?F*}DH*7*}I!>)=%54TMU#p*{ z&M)bcr6wtFTiC0pvk81f9Uo|Nl!W-(o+$CCFX-T(U;Mtv^xxWX`U<&d_1Wv9#8 zT)yydk6;bUXj88GX}$4-!_V-(Wod~ z5{fDV^-U1-EHvwuc_EGmof2^@QdQGAO|@?Y!}a-{{M81< z+s^6Q&W^aRBTdTN7czNU2yD!M9C>)u|9%REwS^*P>Bn=IeoH_UOdL;o#>q<2o6$QI ze+%|IEdsbl&#-iANYGj&PyoI_lHOE3B?o2luD3T6*8@T2Zv+p5f6+rzbwvrkMX2xx z!dIFR(gr4Q1Cu`88BaG&dkU#%ut+PxUy`(JH=5c><2`9pM4KLfmTS|Vd$q;m`cN>` zt}UQPT-bpkN>%k?MeR}PP12h6vEzLzU2d~|eT{ZjI?}V!IjS_~qxI|SN;leQCvB`J zEl#w11JG8x(X>w5wVt#T(J}+j?zd@&-V_sYUH46qPUyIQi~)T@(MEgBF-MiI`sj&1 zbNsR!eX^7OiJ#8(PZcfFgT7Am2LsU8y3wz9(x*P65A~pL5q*0A`g%9|bSM3WpRVXL ziZ;@NzDx8c1JJ)}(b4VW>yRmQ)NU!-r0bDMGGy9y40$TI6>Y}#MB1ENu47m@ nRQ-;k-EkdJ;Rxw-iWU=&F8|nP_!nhg-`@8*u^aTK4dB5CvBS10 diff --git a/ÜB-Praxis-JFlex Scanner für AS-Leer/bin/de/dhbw/compiler/jflexasscanner/TestASScanner3.class b/ÜB-Praxis-JFlex Scanner für AS-Leer/bin/de/dhbw/compiler/jflexasscanner/TestASScanner3.class index cf020e15ee3dcefa6e16847f1896a489eb64697c..d5f9e1a3ab8839821deeea29603996b72ac2de65 100644 GIT binary patch literal 2123 zcma)+-*yvK6vn^Pq|G!GsKdXOqNE^@j5;&<*A|1-3RI)9N>ihNMknczPDv)LBvr1x z@*#W)Z(uE5`T$anH8rOH(Dm!1f$Q{SxWL>E&-X@~ z0*P#{A&|V;-*?kUV15C!m=icz^L%&bsMm4_drqtC3h1?d+vzr(fhX;;GdVi&h5~kN zDnJanBA|^VQq?C*`u5|t`)K6#{b35P37k4~esHX=<9Do35m??m@<(3JZFobE09(G_ zA2}*WV6oO8bgaW8wxq^W(Qt-MWioaqg>wQ|rs7E$4a)+;PU9?A;2@MD6 z`JGC&nroyX@WuizA|r5o#OC&7hMFg5yP5rO%)R^5M;at#fa1ZK%@XEeMiFk{;q zuBvwO^km7H*I=kU`2sy}b5FjY!Q`=KGWkN0KAR`Ym4*WOl(SS`Ti>`YbCx)AYGa3n zH5F&CZ&2G{99J6N6_}R{rLy9Sp zKH`xxpJ_LxyUHlFj%H(5wV*4RZAW&+Y+nRjnX>m?*_FwCdny~3P3h(Zo>gmsg^*2k zf0y}X)qJ5@EOF<3fz;U2@U0pRF-qm8ZL6_;$NdwB28VY`P0!@C?B;lYZ3Z&^#K)|` zb-tzHK`^*{!D+Qw@jwnv85#}+j*&)L3a869{xw;--ai_&-EBU4K7#l&H{~tFDsNqa z{}sR-SA3}aP0_OW75vT`Poe$F#SGHpO~4|KalH_1;P*H!ffEc);3U^cT8q%f`%m%9 zlwxHZ@!Zf)CzF5R?A^rg{7LCc$+@REUw?wv4ShAHT#hJLV#>9Ml8Y&CMU;19iWO1v zF{Kz$$}wd}j0G8I<_wcW@2|Si(+Kx*fhth;!=g|QfQm$eRmv9G{Bdoh2>nE?y z`f0rCXJJ)C|2!_;iAeRh^kpc$$a;;eS+eHHYP^*7t5;|JI$rf&Sk=(KiA&9h^nF}v zh0=?xCRr`A+GNeYly!d!YiE21%7*Sns%m;CENbXpOnDe86Py$3$(MN{*LY3WBPiwY Lh`TO5L{sK_JAcw2?nDB{$EyAZc zq;MmL_i>YOi?B`jjBuM!Bitc;PN);UAnXvnBz#4lf|-NR&2LQ(r%S_`cf&gmI^4& z1!|?by0(5z#^%@>YJso0wl0175SW$uE7hPzb}WsH>N2^>^f|ey%QPuIc;tcFl7~@EF(^haWdVKaZ6tP0z?d2!udm?`9lI}gfmcHA zfYGzPt`Y5~z(TQBp8)Lddfkm$P5w1=KF96JG<8=d*ew3v^ZtYBe~HYnvC_mczXn(N ztpKtRau@k)ux9Wn_{?a}Abw|I24?64%)??iKXyO~W!3~gH#)yB94wYX?1iSzq|<*Q zbuaatKZ=@8XP+U{c#5p1DhY&Q$ZP`1#gJnOBp*ZO63Fowaw37u$B?%Yh#EsqCXiDR zG8x2W%yQGGa1N)r@iW-LSsY*izhDu+vGpmI@DI+%2K6EwRF&h>Jg!x&u_ULy9*pnW z%kkmYaD2O(dOAjAUQy3POf>au5?Y8si%IBQ1Wov>%mFAc%VlPA0e5jR#&vfJ*AHLE zbtzf(d{k9a-%djB#GrSRP$7a|<$8s=7Mbe`bJgB}>&EN2E+?yAh^lJp#U%7z47!wr zE=SO-Ty^GZFjtegT5rJhdc?IG?m$&juf(d7T8xTn>PiC9B4k46IRBAAl^1fA*K{pL Or8?z`KjOF(n(*TT^`O5S~N_< zUSjaaM>ZG&x2;V*3_t232qMJLm^Ms(eSbHvm$F*Es53}utDqG(w35O7>S4g%Hp&bW z>6!q}fle_9Hiwk87{YfC3i_UHSY}zkb%v%L?Wv{~HFHaKZy4I|?VGl-t8W-(gX%Av zre$kR5JNO=mA2HKed@?zCnchVAsCA(N=(2FhQXTfI2aM_3_e8(qZOT;hc1S;_-gtL z4>4$%TdCF6k&Q4IdLp=q7(;_i-DP=-w86<;ieHX-@US*VJVT1h(cq9n^k*$HBKjHX zVzC78Cm9nl$iNaJhG|KP7$Gw0Qc?KTC_}yDDD+DbwrftRm6BGd=2D1p{>5ps3F*dL_7X{6RkYuS~a3e zmYV&6uV~HrKa+`yQd=N&h>pxhbe~lUQ$?T|ooMk?>vF60UR{mds#ZIer9OYittLnV zm14PoTU_MDb3yJ4(oi7k_yk6l;x!_L3z4U7$dc?AudL~bbO?w#p}CL?s)8aXxTwOH zC|YwUZYNUawVTN&J2B+f>+o@Ci6-tC)n=oyvJcn=M zADPk72k@6Xi9CVh-6W)eI;Jz--FtV>xo6Ma$qGA%aIp!7I;aE^1p`=2? zB8Seg#BrD79*4nUax8P)=Xk*JkfW?%MZqJ6+?wM${yKwHT5K@L&%7O*VWR4|_RD@} z+wRt_?KWk!s@JmG4Xf*jI7-U?p3`GkuI||8&ffM%v*mRToVMLH_usYcL#x+oS*}ZA z-R}7twOSaJD-4S7y|>-E$DlqxY}p6C z?ykAtC&d9J5sd{zB(?6*z%U-fn_a6FCDfYN@3!nslEpB2R*120eX#Plh)WFFV$m>) z4D+dX5y}}dh9Qto@_33>hLK{iEC^PJf|cpNLYJhRVTjCVurlZ;B2`4Ehcjh^x*#%Q zOQMN^hsQ-CA0vZ(BURlQry0ytfVfW0@7h*Jm_r^3Q_QyI?wWCH7^X{G)xidxcii2| z)|PlPV?N>Pf~M*Sg7wny$v1D)--uwSEH*Gl4|tNEHz0$F=Fm7rkx4V7IjbLmeWpbQ zmubue$pWTnoevLS23IIzxJqCt0KbU#W_2wi$=@M0rEfG8xF*ZFBV=n|kQ;ES#0@Gf z@B`l2h`_ zF1AXKtUA%PeB#0dMH?IPD$+SHYb27TYvakLD%wQcR9!2i(VlNXU{BD33kf6tsVD&r uoeZr_I2lMxI5|4x_V!hrXPM%f7FRJM z(4lE6E>L1z6=Td$$VoX5&ZK{}{#fvr?w@tA@ z8b-5F#iEK?fkg?oWo;LB?A=$zlH-RU zla!QkYn8mU%!k6hX?+?gSw5U&xk7wjU|E?jba4#RGB^vltAB?2k&6yQI7&AV#UYM8 zjRTwy(-JsBZwN=ZR%k^L<4T_IvKp#%CFGp~K{}KI|;Z757Hh??#|8QC>!Lah1K#z^Kx)OowPq;zC zogvB~;f4rzmT*Iai~kc&Zv*$<&)k|GyVy!VGsxWKR+kaL>9O%v*JR*oa_jZ_4s#qK z_b|Cfxw=5^QF1463rVbUegge~hP5EU(`__-@HOQ0*i0)8%|OEyrR!j0Tx+;;ir*;L zm1sns&2{=4^GdY$ul^WCH`^^mDF&saC}oUN#xacvEK|@^+Rrg{Kt?W*af^{1Soj4A C964$L literal 1574 zcmb7E?NZY~6g^ARb}2<_Kma4A zjE+8l59N5b4Jk#Pj+2?}-aU8EIeYIWKYxAw0bm@90dyk5G3ZA$01xg4a0T}`?sE)r zs2sx_BOId~V;tig6C9HqQykMAGaL^%X8oA+;~|4@&M*yop1~6tOfg7H){f557BftJ zt(@Q1i%D%eM=Ns7%4oTiRy0KHEK2sCQDPX5?da;x-u982vGN5Yrx(@z-JE``l}Z`S zG$~B#C3_)}s74dB49z9GXqefB#U+No@^MBl*oI}6{2(XY@v>Ke4z(bz zqKm<+XxkZup}*m&tOMN?n;r%67z+&kaAj+l>KIlO8k!X1@rD(8sKPW5qHKx9K$u4H z2!x-_X-cVE)qG!d#;_zg`5)Q}9t)t1P6b>}I!=J%d(>uHvTI#e^9Lrt`Q7Lk(+D z*I@>=;RaE>gk99Nyl4e=M6^K7X=YY+F9btZWHnX;D4%Z4?CPqxtF1QeOA4BpAqeIp ze`apJYkW5a!|Y%Rx9B74r0)yxf{Cj@?{11z8kty)o`QX*NfWNo+gDi(;X2KO)dck5 z21N|LwAoYHY&h6dRBn=_@9?BO-{=);7U3zR#24a~eHS6G1J&d%5h2h)a-EnY`kL&N zBYTr@iNwQnlBzwWV&?YW%=qgSxpbx&m7D9KfD2tT(?ceD$xQe^%=EctK01|&N9C4! zMGD=@1nZ$z*GyEtR1dYeP|c@I1p)fV-vIfHU>(tOUgHf4*YA4$h)X9I9RwGr_!&wx~A`XIs z58&?BXAw_=%l~rD|6FG7%x!)DetrR`?0Z<#Yin@k(NMIL@F~>eFdgZeha@tE!o7&o zxVTi<{o^}DV>o$?d~BKl4({vV=e?);s-p<5(lpA3<1o*o++%zCVjVqu>?*pGY^0M? z*66IPLb<*z<06uon*V3$Ay?!pgjKa&&=aR?56;O4b8k|x@CBq%tcD5h52j&>^^jl_PKhDkKUH zKu?#mASNl;mFAys{#orLm;~+b-_I}LguMul&5*5-?fN3A%b$agT|<2JcsD9ehj~>M zmGG=Ai-&*gpO0T{@9o|gKV}ZUZXPFw)*ye%vteG|W|udE!i_>Y<7a#58B+Dr7xuCG zZhDNa9!djIHe>LQJ}~bJETJ?|3~S6w Tsbk%-!RoXcX}Qb}EB(eFuzn^! diff --git a/ÜB-Praxis-JFlex Scanner für AS-Leer/bin/de/dhbw/compiler/jflexasscanner/Token.class b/ÜB-Praxis-JFlex Scanner für AS-Leer/bin/de/dhbw/compiler/jflexasscanner/Token.class index 70f35c577e0ac514fc6b37a08d2e29efda5303a2..bd5db198e6cc9c169813912140b8f6b06f56e9de 100644 GIT binary patch literal 1996 zcma)7T~pge6g_KWTQUL?5ki2Zg|;NN>fokr(xwms7@RoxBf-WgY0@HW1q?=JjA+ug z{+>=B)R_XAcBVfd5BW)L&&q1h7(dj^YVTRyd(XLdcg5Sk|M&~Q7ubm*BrsjK()FFK zSLs@7|De&d+UebwP3yIJcvv%So3PT_v+Nl91TO5FKbq;LX>X@XTf0`x5eTo8vH~I} zFpz24hmL7GRkL|yg~BvUFB7UhdDQx?|? z(j;Msk+dT8F0SYE(vH&3t}SMy9ivC3BrSzu<%*YDrGxX+fh8yFH6`l#GudUQ-LSW3 z`L5Zp=@P58nn(NgzCd)YVKuJ>ROC&8pdMNbE26IXjI*fgAb% zwK1$E+9^Wdaxdx0YMg4ml8QfO!P}No@w!9p+%*q-ZMu|5p0B&(Aax6<49$4$5>T90 zr-L`AdSy>K@)k|XgE_@kdZ@Dx17*jo?G?-efBWO* z)=|4=WqB0^;@;((k^SWv;(_B?AHo={t?dO z#wn(aiDM*;)G-X>+A&hbNZ&DLe)D2KlRjSj6#5viGQ%J<3}c!KuHzQpf7!`|&-uBN zzj05A@GPk%C;T|aS}vlJ3Ben;Y08X?Gvd+^*nTJ%i_Z zGN-zkZ}$wo*E4vgJNRzTU|tqq_AWal%Uk#p_c!##Q)FcEZ;(B~BfZE6p%JiCCwTnd z`i!*8e0hTP?uzdPco+P3sq%B;^S=H+jxgpPUf7$62BN3 zK9{k=zlX?Tl^jJ{PpGd#uBTji#!t`-a>_&7+4fD;y~AyBWf0n2= CSU{5i literal 1970 zcma)7ZBr9h6n<`AH!*-+L2#Xz!QLa6pze@~|$ zwlf7f?M#0_KlCTHea>c;osbXB%(?eG_nw#MoO5^b*FV4i31Av;q8Pzi1Xr*wOF@>R zEE`cSr7&JZ5yqN^uVvqq!)G(o8O2Zuu_cTmv z_%4jCFboC%!s?=e$}03^8rDI}uv#Ufc4+#^1`6S9zLd^o=l%ckrx3^$=GNs(QD1j; zpF%LRy0Vg%3qM2VH&#RqDER0}ElBJ9MlL6Mi2CAsIwN|R7R6Q3G`bavPUr{?T0iWY zvYGE&3VLqW_})m>3~MJVd-TT*XXP-fq83l^gZ_YRzn> zcHh*@_r}3N*|03aVq?#=$SKq&qj0es1tAdLFUsF7WGAc1FBS$nLh_O{7hG$q( z=-;sRtj0TQ%waVq!yZ?-`M=t%aQ-y!>h`W#<_lpn+1!w^zi(OKqPCBEmupAk=c@O^UR@Eoq3pR;p>&dw=v*H{Zj$@LM@kF*bRA4;A;C5MmT zOHLfYpByoXjlA%H`DD%_zGzvu@@%F(S(c7 z(S(hB{6m{UjvWSljSpvdG6|5qY?@R+z_v z8#u*Xhy;_r!uK;3AEcs?b2#Y)jI|BifC`IP;)(Rg>+H8XobPsZe%dv2pfmIRuFl!6 z&cROShh3fdt+}-8P7i?09|&)rK+_|~h)Vsx;T$zR)`otM9ymtNhx4H5y}Ud|UuV&e zJgGBo$0G9KyQ%-?F74hL`iU#>O8!W=M<~+w8A_TmPg$ZoqpVP#Qwo$4Wm7+I>z~-V zZtMNFe!l%hgI8Oj+Jb;k|9H#;`S&0c*l z!5LiL$*7*_)6KYO=R0kg;dq*1WB31r6=HB^2%bdS9ZwUYR$q4kCM6IzhC%~}p3HGb z`bS*nb8o!b_R_$2(==|vwDK`x_ll?U0wb@6|^H} zMW-d9==FGB!%jhg3{0IOWSejvX4p25x1t2CEf<>GBjUBsj+dZaC*$qb(D^V?u@zOk zKwGegmuNDP9W$iu9u0eiZ3U6iCcEu;5eF3PXIN5Lq)sElhq$Ss2fehGDcwwS>U)fI zJ5|u0a$DNrvAlZ5^+c9S4ZSSZxu2oh*Ev@S4_8ycAqL+<5~E{As?3f79MN!80gMjc2ke$ z88eX;jE&2U5H4?>{Og}Q}X)b|EM$>CZRr-<8H!R=cb z-WK$iC%7?`85Uhm^XRM+fFx}*B9B>?r-$cjTZB&_=uo36YMxq?<(3;`NT*7(WEg>d!6hC2(^r3 z-7vlB_A>ZTd$>`D1J$g!B$qFvfP1uvnno%y;qmx>OAbRpIf@X0d*lIwEp?3vP zLN&Vb>8nsHKqaHHZ2c6}pXIQfzG4_~!9icmGN95)tuuHEi^$1hs@rH}iEvZefePve zyLStf{kP!mZ8?Wu4pn}X#YTMny&Ww%h%?^-j3I!}2H z>vCvxZJ z_auZLDbwF%wxBG5x_n#o9mvPRn`359l_Q5F&8c#TDP|6tD#ucs7@fw+n`pJ>z3zIG<^`P|r_JNc;j}H5 z!#hFej1SQ%S#$~?=W=+T*g2yxx8hc>-#=AM{slok@h8du(3(~;!@H0}DTEw8!&>^f zX|by)eGeM30uijlekyxWO$XyDoSMJLF zYj6!;!cM5_@fE&?gRnH=8}jU=%s{tR`2$MOu7D|s(f>Pzo^@cN20Xyuj|?fOr(b@! Tamxb&|CqUAZ(gSeCAje)1$`ad literal 3110 zcma)8TToL+82%PQ&fyTML{Orr0jmU1qE@MZ+Nyv;QCgw4cxw;I5dz^PCMSs2UbJ3% zvsinv+Pk*p!Rf`9;M9)O=gzcG?X)v}=u7+5w?6hk`|U{};o`uV+5Pw5{rB7dw*Q_V z?|yd&zy^$JSc@(NPb%1_As0_+$idUH>sGK|gMuy<2P8eHp%#Z!9G1)>$vmUsS?DTy zBomNKP=z6xBPx0&?b8rKzls65C#+yl!(x~!A}XR9jv}TZ4ofa36bxx7$1&&D6Tkg? z_4{vjNxWed$5ot=qR+|hq=M%)RO1B|FRFM+!6^l&6}&9q+#E7P)>eUBU)4SV$BszQ z5SZ5E^>{p>n@wn3qd=iWYEQR^;+DWxUwgkkr2E6V+3Tld$n0(0 ze_(FFjZ$+pWLo?5aDuvuR)KTXPP(@w^7qG?&-%7!x)Yl0m}#qRL=2e0cG&G zZHGWk$Rrzxm_tU4CW-w5`B^6V=4uW>(vA~YJF6aTEp+v^&d!vprE5DaJut9akJ?eP z1ARupPCHjm324p30V8UKB4%8{S@NBcL@Z#mFm3|HQzBI>gW|$EtQV-AEy|NMA($P} zP$V7Cy@nn%ViN3}?9RLJ3SJdhG&Szq6QM8#X-Kmj4zI0~*M-;cx(jdMg24P*Z*wdb ziFre&*E$|GYF&5}BML6M@D?sjSvQ6)uD^{7a`BzXi(%$D7vIGQQ#=ba5D6y+O|HBr zVK2MzKCTFqq!coOX_ba#zS)Xh74XgG9^NP05*I#@$BDyihJrILe29+}eC)y}_*7c? znLyQSU@b8{FoAYWT6UcYc(8()6)t>^5f{F|mjX4j0j2KR1QeZHK4E3E8T3Yucx7sM zea#&$Rja+c!a*+&sTEi`8?+57;GdIRraCY}nUv`0>F14{G?mg=U_nM|BBdFl848K4 z4-3-sOvh9r+EpXpWOk(WtnyXOdf9AI-Z7^hjT$EF#G09on^s%WDb0U@JV%&6qoUI?8-a z(*ZL&^Xa5eX||H-Xf`!9Ne4Q^hS_WN(SPwoPuzZn1Qz;QXYfR$qa1$zTF5U4d|R=e z{X^vZq=GcBdJN*Gy}W_F)1Gu=Bgd|k0P65Cxii>=dV+9sZa4Dr03iOpjhyb=NQy2qfp^OMj#>jN5=$iVC{Eh)?lSk%B$nO6 z^7?}8ZKZUIm)lAU!Me{T5#Q%sSDM4!<~swc;Yyi5vW9_?q-4O2rs9i94tlf1$xn)F=uh9=S$nM5)GR zY~dXDVk;g&A+gWnQEX$d)`@f2&QYFB-*jrr(GJS-K5*28W~R9uwO}VLFA~3C7h2)q znU(3iZS+PLocCyKzJkXTv=wkihku|=T2atpuaWZhHT;Jy_ozhPBpISU Q&gP&dPq6LfI0v2o0}yB=FaQ7m diff --git a/ÜB-Praxis-JFlex Scanner für AS-Leer/src/de/dhbw/compiler/jflexasscanner/JFlexASScanner.flex b/ÜB-Praxis-JFlex Scanner für AS-Leer/src/de/dhbw/compiler/jflexasscanner/JFlexASScanner.flex index 8d3f1c1..3dcb201 100644 --- a/ÜB-Praxis-JFlex Scanner für AS-Leer/src/de/dhbw/compiler/jflexasscanner/JFlexASScanner.flex +++ b/ÜB-Praxis-JFlex Scanner für AS-Leer/src/de/dhbw/compiler/jflexasscanner/JFlexASScanner.flex @@ -22,33 +22,58 @@ package de.dhbw.compiler.jflexasscanner; %public %final -%xstate NUM, FRAC, EXP, STR, NULL - -WhiteSpace = [ \t\b\r\n]+ -SmallChars = [a-z]+ -CapitalChars = [A-Z]+ -Numbers = [0-9]+ -AllChars = [a-zA-Z0-9]+ - +%xstate FRAC, EXP, STR, NULL, ID, NUM %{ + String idValue = ""; + int intValue = 0; %} +WhiteSpace = [ \t\b\r\n]+ +SmallChars = [a-z] +CapitalChars = [A-Z] +Numbers = [0-9] +AllChars = [a-zA-Z0-9] + %eofval{ return new Token(Token.EOF, "", yyline+1, yycolumn+1); %eofval} %% //[^] { return new Token(Token.INVALID, yytext(), yyline+1, yycolumn+1); } -"null" { return new Token(Token.NULL, yytext(), yyline+1, yycolumn+1); } -{Numbers} { return new Token(Token.NUM, yytext(), yyline+1, yycolumn+1); } -{AllChars} { return new Token(Token.ID, yytext(), yyline+1, yycolumn+1); } -[\[] { return new Token(Token.LSBR, yytext(), yyline+1, yycolumn+1); } -[\]] { return new Token(Token.RSBR, yytext(), yyline+1, yycolumn+1); } -[,] { return new Token(Token.COMMA, yytext(), yyline+1, yycolumn+1); } {WhiteSpace} { /* Ignore */ } -[^] { return new Token(Token.INVALID, yytext(), yyline+1, yycolumn+1); - /*throw new Error("Illegal character <" + yytext() + ">"); */} + { + "null" { return new Token(Token.NULL, yytext(), yyline+1, yycolumn+1); } + {Numbers} { yybegin(NUM); + intValue = yycharat(0)-'0'; System.out.println("BEGIN INT <"+intValue+">"); } + {AllChars} { yybegin(ID); System.out.println("BEGIN ID <"+yytext()+">"); + idValue = yytext(); } + [\[] { return new Token(Token.LSBR, yytext(), yyline+1, yycolumn+1); } + [\]] { return new Token(Token.RSBR, yytext(), yyline+1, yycolumn+1); } + [,] { return new Token(Token.COMMA, yytext(), yyline+1, yycolumn+1); } +} + + { + {Numbers} { intValue = intValue * 10 + yycharat(0) - '0'; } + {SmallChars} | {CapitalChars} { yybegin(ID); idValue = String.valueOf(intValue); yypushback(1); } + <> { yybegin(YYINITIAL); + return new Token(Token.NUM, String.valueOf(intValue), yyline+1, yycolumn+1-String.valueOf(intValue).length()); } + [^] { yybegin(YYINITIAL); + yypushback(1); + return new Token(Token.NUM, String.valueOf(intValue), yyline+1, yycolumn+1-String.valueOf(intValue).length()); } +} + + { + {AllChars} { idValue += yytext(); } + <> { yybegin(YYINITIAL); + return new Token(Token.NUM, String.valueOf(intValue), yyline+1, yycolumn+1-String.valueOf(intValue).length()); } + [^] { yybegin(YYINITIAL); + yypushback(1); + return new Token(Token.ID, idValue, yyline+1, yycolumn+1-idValue.length()); } +} + +[^] { System.out.println("Illegal character <" + yytext() + ">"); + return new Token(Token.INVALID, yytext(), yyline+1, yycolumn+1); } diff --git a/ÜB-Praxis-JFlex Scanner für AS-Leer/src/de/dhbw/compiler/jflexasscanner/JFlexASScanner.java b/ÜB-Praxis-JFlex Scanner für AS-Leer/src/de/dhbw/compiler/jflexasscanner/JFlexASScanner.java index cdfcec6..dd04437 100644 --- a/ÜB-Praxis-JFlex Scanner für AS-Leer/src/de/dhbw/compiler/jflexasscanner/JFlexASScanner.java +++ b/ÜB-Praxis-JFlex Scanner für AS-Leer/src/de/dhbw/compiler/jflexasscanner/JFlexASScanner.java @@ -28,11 +28,12 @@ public final class JFlexASScanner { /** lexical states */ public static final int YYINITIAL = 0; - public static final int NUM = 2; - public static final int FRAC = 4; - public static final int EXP = 6; - public static final int STR = 8; - public static final int NULL = 10; + public static final int FRAC = 2; + public static final int EXP = 4; + public static final int STR = 6; + public static final int NULL = 8; + public static final int ID = 10; + public static final int NUM = 12; /** * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l @@ -41,7 +42,7 @@ public final class JFlexASScanner { * l is of the form l = 2*k, k a non negative integer */ private static final int ZZ_LEXSTATE[] = { - 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3 }; /** @@ -63,11 +64,11 @@ public final class JFlexASScanner { private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\2\0\1\1\1\2\1\3\1\4\1\3\1\5\1\6"+ - "\1\7\2\3\1\10"; + "\4\0\1\1\1\2\1\3\1\4\1\3\1\5\1\6"+ + "\1\7\1\10\1\11\1\12\1\13\1\14\2\0\1\15"; private static int [] zzUnpackAction() { - int [] result = new int[13]; + int [] result = new int[20]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -92,11 +93,12 @@ public final class JFlexASScanner { private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\12\0\12\0\24\0\36\0\50\0\62\0\12"+ - "\0\12\0\12\0\74\0\106\0\36"; + "\0\0\0\12\0\24\0\36\0\12\0\50\0\12\0\12"+ + "\0\62\0\12\0\12\0\12\0\12\0\12\0\12\0\12"+ + "\0\12\0\74\0\106\0\12"; private static int [] zzUnpackRowMap() { - int [] result = new int[13]; + int [] result = new int[20]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -119,10 +121,10 @@ public final class JFlexASScanner { private static final int [] ZZ_TRANS = zzUnpackTrans(); private static final String ZZ_TRANS_PACKED_0 = - "\1\3\1\4\1\5\1\6\1\7\2\5\1\10\1\11"+ - "\1\12\13\0\1\4\12\0\5\5\5\0\1\5\1\6"+ - "\3\5\5\0\3\5\1\13\1\5\5\0\4\5\1\14"+ - "\5\0\4\5\1\15\3\0"; + "\1\5\1\6\1\7\1\10\1\11\2\7\1\12\1\13"+ + "\1\14\12\0\2\15\5\16\3\15\2\17\1\20\1\21"+ + "\3\20\3\17\1\0\1\6\15\0\1\22\12\0\1\23"+ + "\11\0\1\24\3\0"; private static int [] zzUnpackTrans() { int [] result = new int[80]; @@ -163,10 +165,11 @@ public final class JFlexASScanner { private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\0\1\10\1\11\4\1\3\11\3\1"; + "\1\0\1\10\2\0\1\11\1\1\2\11\1\1\10\11"+ + "\2\0\1\11"; private static int [] zzUnpackAttribute() { - int [] result = new int[13]; + int [] result = new int[20]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -242,6 +245,8 @@ public final class JFlexASScanner { private int zzFinalHighSurrogate = 0; /* user code: */ + String idValue = ""; + int intValue = 0; /** @@ -610,44 +615,83 @@ public final class JFlexASScanner { if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { zzAtEOF = true; + switch (zzLexicalState) { + case ID: { + yybegin(YYINITIAL); + return new Token(Token.NUM, String.valueOf(intValue), yyline+1, yycolumn+1-String.valueOf(intValue).length()); + } + case 21: break; + case NUM: { + yybegin(YYINITIAL); + return new Token(Token.NUM, String.valueOf(intValue), yyline+1, yycolumn+1-String.valueOf(intValue).length()); + } + case 22: break; + default: { return new Token(Token.EOF, "", yyline+1, yycolumn+1); } + } } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { case 1: - { return new Token(Token.INVALID, yytext(), yyline+1, yycolumn+1); - /*throw new Error("Illegal character <" + yytext() + ">"); */ + { System.out.println("Illegal character <" + yytext() + ">"); + return new Token(Token.INVALID, yytext(), yyline+1, yycolumn+1); } - case 9: break; + case 14: break; case 2: { /* Ignore */ } - case 10: break; + case 15: break; case 3: - { return new Token(Token.ID, yytext(), yyline+1, yycolumn+1); + { yybegin(ID); System.out.println("BEGIN ID <"+yytext()+">"); + idValue = yytext(); } - case 11: break; + case 16: break; case 4: - { return new Token(Token.NUM, yytext(), yyline+1, yycolumn+1); + { yybegin(NUM); + intValue = yycharat(0)-'0'; System.out.println("BEGIN INT <"+intValue+">"); } - case 12: break; + case 17: break; case 5: { return new Token(Token.LSBR, yytext(), yyline+1, yycolumn+1); } - case 13: break; + case 18: break; case 6: { return new Token(Token.RSBR, yytext(), yyline+1, yycolumn+1); } - case 14: break; + case 19: break; case 7: { return new Token(Token.COMMA, yytext(), yyline+1, yycolumn+1); } - case 15: break; + case 20: break; case 8: + { yybegin(YYINITIAL); + yypushback(1); + return new Token(Token.ID, idValue, yyline+1, yycolumn+1-idValue.length()); + } + case 21: break; + case 9: + { idValue += yytext(); + } + case 22: break; + case 10: + { yybegin(YYINITIAL); + yypushback(1); + return new Token(Token.NUM, String.valueOf(intValue), yyline+1, yycolumn+1-String.valueOf(intValue).length()); + } + case 23: break; + case 11: + { yybegin(ID); idValue = String.valueOf(intValue); yypushback(1); + } + case 24: break; + case 12: + { intValue = intValue * 10 + yycharat(0) - '0'; + } + case 25: break; + case 13: { return new Token(Token.NULL, yytext(), yyline+1, yycolumn+1); } - case 16: break; + case 26: break; default: zzScanError(ZZ_NO_MATCH); } diff --git a/ÜB-Praxis-JFlex Scanner für AS-Leer/src/de/dhbw/compiler/jflexasscanner/JFlexASScanner.java~ b/ÜB-Praxis-JFlex Scanner für AS-Leer/src/de/dhbw/compiler/jflexasscanner/JFlexASScanner.java~ index 1e1efe7..0d8ae72 100644 --- a/ÜB-Praxis-JFlex Scanner für AS-Leer/src/de/dhbw/compiler/jflexasscanner/JFlexASScanner.java~ +++ b/ÜB-Praxis-JFlex Scanner für AS-Leer/src/de/dhbw/compiler/jflexasscanner/JFlexASScanner.java~ @@ -28,11 +28,12 @@ public final class JFlexASScanner { /** lexical states */ public static final int YYINITIAL = 0; - public static final int NUM = 2; - public static final int FRAC = 4; - public static final int EXP = 6; - public static final int STR = 8; - public static final int NULL = 10; + public static final int FRAC = 2; + public static final int EXP = 4; + public static final int STR = 6; + public static final int NULL = 8; + public static final int ID = 10; + public static final int NUM = 12; /** * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l @@ -41,7 +42,7 @@ public final class JFlexASScanner { * l is of the form l = 2*k, k a non negative integer */ private static final int ZZ_LEXSTATE[] = { - 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3 }; /** @@ -63,11 +64,11 @@ public final class JFlexASScanner { private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\2\0\1\1\1\2\1\3\1\4\1\3\1\5\1\6"+ - "\1\7\2\3\1\10"; + "\4\0\1\1\1\2\1\3\1\4\1\3\1\5\1\6"+ + "\1\7\1\10\1\11\1\12\1\13\1\14\2\0\1\15"; private static int [] zzUnpackAction() { - int [] result = new int[13]; + int [] result = new int[20]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -92,11 +93,12 @@ public final class JFlexASScanner { private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\12\0\12\0\24\0\36\0\50\0\62\0\12"+ - "\0\12\0\12\0\74\0\106\0\36"; + "\0\0\0\12\0\24\0\36\0\12\0\50\0\12\0\12"+ + "\0\62\0\12\0\12\0\12\0\12\0\12\0\12\0\12"+ + "\0\12\0\74\0\106\0\12"; private static int [] zzUnpackRowMap() { - int [] result = new int[13]; + int [] result = new int[20]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -119,10 +121,10 @@ public final class JFlexASScanner { private static final int [] ZZ_TRANS = zzUnpackTrans(); private static final String ZZ_TRANS_PACKED_0 = - "\1\3\1\4\1\5\1\6\1\7\2\5\1\10\1\11"+ - "\1\12\13\0\1\4\12\0\5\5\5\0\1\5\1\6"+ - "\3\5\5\0\3\5\1\13\1\5\5\0\4\5\1\14"+ - "\5\0\4\5\1\15\3\0"; + "\1\5\1\6\1\7\1\10\1\11\2\7\1\12\1\13"+ + "\1\14\12\0\2\15\5\16\3\15\2\17\1\20\1\21"+ + "\3\20\3\17\1\0\1\6\15\0\1\22\12\0\1\23"+ + "\11\0\1\24\3\0"; private static int [] zzUnpackTrans() { int [] result = new int[80]; @@ -163,10 +165,11 @@ public final class JFlexASScanner { private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\0\1\10\1\11\4\1\3\11\3\1"; + "\1\0\1\10\2\0\1\11\1\1\2\11\1\1\10\11"+ + "\2\0\1\11"; private static int [] zzUnpackAttribute() { - int [] result = new int[13]; + int [] result = new int[20]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -242,6 +245,8 @@ public final class JFlexASScanner { private int zzFinalHighSurrogate = 0; /* user code: */ + String idValue = ""; + int intValue = 0; /** @@ -616,37 +621,64 @@ public final class JFlexASScanner { else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { case 1: - { throw new Error("Illegal character <" + yytext() + ">"); + { System.out.println("Illegal character <" + yytext() + ">"); + return new Token(Token.INVALID, yytext(), yyline+1, yycolumn+1); } - case 9: break; + case 14: break; case 2: { /* Ignore */ } - case 10: break; + case 15: break; case 3: - { return new Token(Token.ID, yytext(), yyline+1, yycolumn+1); + { yybegin(ID); System.out.println("BEGIN ID <"+yytext()+">"); + idValue = yytext(); } - case 11: break; + case 16: break; case 4: - { return new Token(Token.NUM, yytext(), yyline+1, yycolumn+1); + { yybegin(NUM); + intValue = yycharat(0)-'0'; System.out.println("BEGIN INT <"+intValue+">"); } - case 12: break; + case 17: break; case 5: { return new Token(Token.LSBR, yytext(), yyline+1, yycolumn+1); } - case 13: break; + case 18: break; case 6: { return new Token(Token.RSBR, yytext(), yyline+1, yycolumn+1); } - case 14: break; + case 19: break; case 7: { return new Token(Token.COMMA, yytext(), yyline+1, yycolumn+1); } - case 15: break; + case 20: break; case 8: + { yybegin(YYINITIAL); + yypushback(1); + return new Token(Token.ID, idValue, yyline+1, yycolumn+1-idValue.length()); + } + case 21: break; + case 9: + { idValue += yytext(); + } + case 22: break; + case 10: + { yybegin(YYINITIAL); + yypushback(1); + return new Token(Token.NUM, String.valueOf(intValue), yyline+1, yycolumn+1-String.valueOf(intValue).length()); + } + case 23: break; + case 11: + { yybegin(ID); idValue = String.valueOf(intValue); yypushback(1); + } + case 24: break; + case 12: + { intValue = intValue * 10 + yycharat(0) - '0'; + } + case 25: break; + case 13: { return new Token(Token.NULL, yytext(), yyline+1, yycolumn+1); } - case 16: break; + case 26: break; default: zzScanError(ZZ_NO_MATCH); } diff --git a/ÜB-Praxis-JFlex Scanner für AS-Leer/src/de/dhbw/compiler/jflexasscanner/NumToken.java b/ÜB-Praxis-JFlex Scanner für AS-Leer/src/de/dhbw/compiler/jflexasscanner/NumToken.java index 18f3c13..957e74c 100644 --- a/ÜB-Praxis-JFlex Scanner für AS-Leer/src/de/dhbw/compiler/jflexasscanner/NumToken.java +++ b/ÜB-Praxis-JFlex Scanner für AS-Leer/src/de/dhbw/compiler/jflexasscanner/NumToken.java @@ -12,13 +12,13 @@ package de.dhbw.compiler.jflexasscanner; public class NumToken extends Token { - - public NumToken(int type, String text, int line, int column) { - super(type,text,line,column); + + public NumToken(String text, int line, int column) { + super(Token.NUM,text,line,column); } int getValue() { - return 0; + return Integer.parseInt(getText()); }