[03 - JFlex Scanner] Get TestASScanner3 to work
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -32,8 +32,9 @@ package de.dhbw.compiler.jflexasscanner;
|
|||||||
int decimalPlace = 0;
|
int decimalPlace = 0;
|
||||||
int exponent = 0;
|
int exponent = 0;
|
||||||
|
|
||||||
private Token intToken(int value) {
|
private Token numToken(String numberString, int value) {
|
||||||
return new Token(Token.NUM, String.valueOf(intValue), yyline+1, yycolumn+1-String.valueOf(intValue).length());
|
//return new Token(Token.NUM, String.valueOf(intValue), yyline+1, yycolumn+1-String.valueOf(intValue).length());
|
||||||
|
return new NumToken(numberString, yyline + 1, yycolumn + 1 - numberString.length(), intValue);
|
||||||
}
|
}
|
||||||
%}
|
%}
|
||||||
|
|
||||||
@@ -66,16 +67,16 @@ Power = \^{Numbers}
|
|||||||
|
|
||||||
<NUM> {
|
<NUM> {
|
||||||
{Numbers} { intValue = intValue * 10 + yycharat(0) - '0'; numberString += yytext(); }
|
{Numbers} { intValue = intValue * 10 + yycharat(0) - '0'; numberString += yytext(); }
|
||||||
{SmallChars} | {CapitalChars} { yybegin(ID); idValue = String.valueOf(intValue); yypushback(1); }
|
{SmallChars} | {CapitalChars} { yybegin(ID); idValue = numberString; yypushback(1); }
|
||||||
<<EOF>> { yybegin(YYINITIAL);
|
<<EOF>> { yybegin(YYINITIAL);
|
||||||
return new Token(Token.NUM, String.valueOf(intValue), yyline+1, yycolumn+1-String.valueOf(intValue).length()); }
|
return numToken(numberString, intValue); }
|
||||||
{Dot} { yybegin(FRAC);
|
{Dot} { yybegin(FRAC);
|
||||||
fracValue = intValue;
|
fracValue = intValue;
|
||||||
System.out.println("BEGIN FRAC <"+yytext()+">");
|
System.out.println("BEGIN FRAC <"+yytext()+">");
|
||||||
numberString += yytext(); }
|
numberString += yytext(); }
|
||||||
[^] { yybegin(YYINITIAL);
|
[^] { yybegin(YYINITIAL);
|
||||||
yypushback(1);
|
yypushback(1);
|
||||||
return new Token(Token.NUM, String.valueOf(intValue), yyline+1, yycolumn+1-String.valueOf(intValue).length()); }
|
return numToken(numberString, intValue); }
|
||||||
}
|
}
|
||||||
|
|
||||||
<ID> {
|
<ID> {
|
||||||
@@ -91,7 +92,7 @@ Power = \^{Numbers}
|
|||||||
{Numbers} { fracValue += (yycharat(0) - '0') * Math.pow(10, -++decimalPlace); numberString += yytext(); }
|
{Numbers} { fracValue += (yycharat(0) - '0') * Math.pow(10, -++decimalPlace); numberString += yytext(); }
|
||||||
<<EOF>> { yybegin(YYINITIAL);
|
<<EOF>> { yybegin(YYINITIAL);
|
||||||
return new FracToken(Token.FRAC, numberString, yyline+1, yycolumn+1-numberString.length(), fracValue); }
|
return new FracToken(Token.FRAC, numberString, yyline+1, yycolumn+1-numberString.length(), fracValue); }
|
||||||
\^{Numbers} { System.out.println("BEGIN EXP <"+yytext()+">"); yybegin(EXP); numberString += yytext(); exponent = yycharat(0) - '0'; }
|
\^{Numbers} { yybegin(EXP); numberString += yytext(); exponent = yycharat(1) - '0'; System.out.println("BEGIN EXP <"+yytext()+"> / exponent: " + exponent); }
|
||||||
[^] { yybegin(YYINITIAL);
|
[^] { yybegin(YYINITIAL);
|
||||||
yypushback(1);
|
yypushback(1);
|
||||||
return new FracToken(Token.FRAC, numberString, yyline+1, yycolumn+1-numberString.length(), fracValue); }
|
return new FracToken(Token.FRAC, numberString, yyline+1, yycolumn+1-numberString.length(), fracValue); }
|
||||||
@@ -100,10 +101,12 @@ Power = \^{Numbers}
|
|||||||
<EXP> {
|
<EXP> {
|
||||||
{Numbers} { numberString += yytext(); exponent = exponent * 10 + yycharat(0) - '0'; }
|
{Numbers} { numberString += yytext(); exponent = exponent * 10 + yycharat(0) - '0'; }
|
||||||
<<EOF>> { yybegin(YYINITIAL);
|
<<EOF>> { yybegin(YYINITIAL);
|
||||||
return new FracToken(Token.FRAC, numberString, yyline+1, yycolumn+1-numberString.length(), fracValue * Math.exp(exponent)); }
|
return new FracToken(Token.FRAC, numberString, yyline+1, yycolumn+1-numberString.length(), fracValue * Math.pow(10, exponent)); }
|
||||||
[^] { yybegin(YYINITIAL);
|
[^] { yybegin(YYINITIAL);
|
||||||
yypushback(1);
|
yypushback(1);
|
||||||
return new FracToken(Token.FRAC, numberString, yyline+1, yycolumn+1-numberString.length(), fracValue * Math.exp(exponent)); }
|
System.out.println("numberString: " + numberString);
|
||||||
|
System.out.println("fracValue: " + fracValue + " / exponent: " + exponent);
|
||||||
|
return new FracToken(Token.FRAC, numberString, yyline+1, yycolumn+1-numberString.length(), fracValue * Math.pow(10, exponent)); }
|
||||||
}
|
}
|
||||||
|
|
||||||
[^] { System.out.println("Illegal character <" + yytext() + ">");
|
[^] { System.out.println("Illegal character <" + yytext() + ">");
|
||||||
|
|||||||
@@ -256,8 +256,9 @@ public final class JFlexASScanner {
|
|||||||
int decimalPlace = 0;
|
int decimalPlace = 0;
|
||||||
int exponent = 0;
|
int exponent = 0;
|
||||||
|
|
||||||
private Token intToken(int value) {
|
private Token numToken(String numberString, int value) {
|
||||||
return new Token(Token.NUM, String.valueOf(intValue), yyline+1, yycolumn+1-String.valueOf(intValue).length());
|
//return new Token(Token.NUM, String.valueOf(intValue), yyline+1, yycolumn+1-String.valueOf(intValue).length());
|
||||||
|
return new NumToken(numberString, yyline + 1, yycolumn + 1 - numberString.length(), intValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -635,7 +636,7 @@ public final class JFlexASScanner {
|
|||||||
case 30: break;
|
case 30: break;
|
||||||
case EXP: {
|
case EXP: {
|
||||||
yybegin(YYINITIAL);
|
yybegin(YYINITIAL);
|
||||||
return new FracToken(Token.FRAC, numberString, yyline+1, yycolumn+1-numberString.length(), fracValue * Math.exp(exponent));
|
return new FracToken(Token.FRAC, numberString, yyline+1, yycolumn+1-numberString.length(), fracValue * Math.pow(10, exponent));
|
||||||
}
|
}
|
||||||
case 31: break;
|
case 31: break;
|
||||||
case ID: {
|
case ID: {
|
||||||
@@ -645,7 +646,7 @@ public final class JFlexASScanner {
|
|||||||
case 32: break;
|
case 32: break;
|
||||||
case NUM: {
|
case NUM: {
|
||||||
yybegin(YYINITIAL);
|
yybegin(YYINITIAL);
|
||||||
return new Token(Token.NUM, String.valueOf(intValue), yyline+1, yycolumn+1-String.valueOf(intValue).length());
|
return numToken(numberString, intValue);
|
||||||
}
|
}
|
||||||
case 33: break;
|
case 33: break;
|
||||||
default:
|
default:
|
||||||
@@ -700,7 +701,9 @@ public final class JFlexASScanner {
|
|||||||
case 10:
|
case 10:
|
||||||
{ yybegin(YYINITIAL);
|
{ yybegin(YYINITIAL);
|
||||||
yypushback(1);
|
yypushback(1);
|
||||||
return new FracToken(Token.FRAC, numberString, yyline+1, yycolumn+1-numberString.length(), fracValue * Math.exp(exponent));
|
System.out.println("numberString: " + numberString);
|
||||||
|
System.out.println("fracValue: " + fracValue + " / exponent: " + exponent);
|
||||||
|
return new FracToken(Token.FRAC, numberString, yyline+1, yycolumn+1-numberString.length(), fracValue * Math.pow(10, exponent));
|
||||||
}
|
}
|
||||||
case 29: break;
|
case 29: break;
|
||||||
case 11:
|
case 11:
|
||||||
@@ -720,11 +723,11 @@ public final class JFlexASScanner {
|
|||||||
case 14:
|
case 14:
|
||||||
{ yybegin(YYINITIAL);
|
{ yybegin(YYINITIAL);
|
||||||
yypushback(1);
|
yypushback(1);
|
||||||
return new Token(Token.NUM, String.valueOf(intValue), yyline+1, yycolumn+1-String.valueOf(intValue).length());
|
return numToken(numberString, intValue);
|
||||||
}
|
}
|
||||||
case 33: break;
|
case 33: break;
|
||||||
case 15:
|
case 15:
|
||||||
{ yybegin(ID); idValue = String.valueOf(intValue); yypushback(1);
|
{ yybegin(ID); idValue = numberString; yypushback(1);
|
||||||
}
|
}
|
||||||
case 34: break;
|
case 34: break;
|
||||||
case 16:
|
case 16:
|
||||||
@@ -739,7 +742,7 @@ public final class JFlexASScanner {
|
|||||||
}
|
}
|
||||||
case 36: break;
|
case 36: break;
|
||||||
case 18:
|
case 18:
|
||||||
{ System.out.println("BEGIN EXP <"+yytext()+">"); yybegin(EXP); numberString += yytext(); exponent = yycharat(0) - '0';
|
{ yybegin(EXP); numberString += yytext(); exponent = yycharat(1) - '0'; System.out.println("BEGIN EXP <"+yytext()+"> / exponent: " + exponent);
|
||||||
}
|
}
|
||||||
case 37: break;
|
case 37: break;
|
||||||
case 19:
|
case 19:
|
||||||
|
|||||||
@@ -66,10 +66,10 @@ public final class JFlexASScanner {
|
|||||||
private static final String ZZ_ACTION_PACKED_0 =
|
private static final String ZZ_ACTION_PACKED_0 =
|
||||||
"\6\0\1\1\1\2\1\3\1\4\1\3\1\5\1\6"+
|
"\6\0\1\1\1\2\1\3\1\4\1\3\1\5\1\6"+
|
||||||
"\1\7\1\10\1\11\1\10\1\12\1\13\1\14\1\15"+
|
"\1\7\1\10\1\11\1\10\1\12\1\13\1\14\1\15"+
|
||||||
"\1\16\1\17\1\20\1\0\1\21\1\0\1\22";
|
"\1\16\1\17\1\20\1\21\1\0\1\22\1\0\1\23";
|
||||||
|
|
||||||
private static int [] zzUnpackAction() {
|
private static int [] zzUnpackAction() {
|
||||||
int [] result = new int[28];
|
int [] result = new int[29];
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
|
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
|
||||||
return result;
|
return result;
|
||||||
@@ -97,10 +97,10 @@ public final class JFlexASScanner {
|
|||||||
"\0\0\0\14\0\30\0\44\0\60\0\74\0\44\0\110"+
|
"\0\0\0\14\0\30\0\44\0\60\0\74\0\44\0\110"+
|
||||||
"\0\44\0\44\0\124\0\44\0\44\0\44\0\44\0\44"+
|
"\0\44\0\44\0\124\0\44\0\44\0\44\0\44\0\44"+
|
||||||
"\0\140\0\44\0\44\0\44\0\44\0\44\0\44\0\44"+
|
"\0\140\0\44\0\44\0\44\0\44\0\44\0\44\0\44"+
|
||||||
"\0\154\0\44\0\170\0\44";
|
"\0\44\0\154\0\44\0\170\0\44";
|
||||||
|
|
||||||
private static int [] zzUnpackRowMap() {
|
private static int [] zzUnpackRowMap() {
|
||||||
int [] result = new int[28];
|
int [] result = new int[29];
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
|
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
|
||||||
return result;
|
return result;
|
||||||
@@ -124,11 +124,11 @@ public final class JFlexASScanner {
|
|||||||
|
|
||||||
private static final String ZZ_TRANS_PACKED_0 =
|
private static final String ZZ_TRANS_PACKED_0 =
|
||||||
"\1\7\1\10\1\11\1\12\2\7\1\13\2\11\1\14"+
|
"\1\7\1\10\1\11\1\12\2\7\1\13\2\11\1\14"+
|
||||||
"\1\15\1\16\3\17\1\20\1\17\1\21\6\17\3\0"+
|
"\1\15\1\16\3\17\1\20\1\17\1\21\6\17\3\22"+
|
||||||
"\1\22\24\0\2\23\2\24\2\23\3\24\3\23\2\25"+
|
"\1\23\10\22\14\0\2\24\2\25\2\24\3\25\3\24"+
|
||||||
"\1\26\1\27\1\30\1\25\3\26\3\25\1\0\1\10"+
|
"\2\26\1\27\1\30\1\31\1\26\3\27\3\26\1\0"+
|
||||||
"\21\0\1\31\7\0\1\32\20\0\1\33\13\0\1\34"+
|
"\1\10\21\0\1\32\7\0\1\33\20\0\1\34\13\0"+
|
||||||
"\3\0";
|
"\1\35\3\0";
|
||||||
|
|
||||||
private static int [] zzUnpackTrans() {
|
private static int [] zzUnpackTrans() {
|
||||||
int [] result = new int[132];
|
int [] result = new int[132];
|
||||||
@@ -170,10 +170,10 @@ public final class JFlexASScanner {
|
|||||||
|
|
||||||
private static final String ZZ_ATTRIBUTE_PACKED_0 =
|
private static final String ZZ_ATTRIBUTE_PACKED_0 =
|
||||||
"\3\0\1\10\2\0\1\11\1\1\2\11\1\1\5\11"+
|
"\3\0\1\10\2\0\1\11\1\1\2\11\1\1\5\11"+
|
||||||
"\1\1\7\11\1\0\1\11\1\0\1\11";
|
"\1\1\10\11\1\0\1\11\1\0\1\11";
|
||||||
|
|
||||||
private static int [] zzUnpackAttribute() {
|
private static int [] zzUnpackAttribute() {
|
||||||
int [] result = new int[28];
|
int [] result = new int[29];
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
|
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
|
||||||
return result;
|
return result;
|
||||||
@@ -256,8 +256,9 @@ public final class JFlexASScanner {
|
|||||||
int decimalPlace = 0;
|
int decimalPlace = 0;
|
||||||
int exponent = 0;
|
int exponent = 0;
|
||||||
|
|
||||||
private Token intToken(int value) {
|
private Token numToken(String numberString, int value) {
|
||||||
return new Token(Token.NUM, String.valueOf(intValue), yyline+1, yycolumn+1-String.valueOf(intValue).length());
|
//return new Token(Token.NUM, String.valueOf(intValue), yyline+1, yycolumn+1-String.valueOf(intValue).length());
|
||||||
|
return new NumToken(numberString, yyline + 1, yycolumn + 1 - numberString.length(), intValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -632,22 +633,22 @@ public final class JFlexASScanner {
|
|||||||
yybegin(YYINITIAL);
|
yybegin(YYINITIAL);
|
||||||
return new FracToken(Token.FRAC, numberString, yyline+1, yycolumn+1-numberString.length(), fracValue);
|
return new FracToken(Token.FRAC, numberString, yyline+1, yycolumn+1-numberString.length(), fracValue);
|
||||||
}
|
}
|
||||||
case 29: break;
|
case 30: break;
|
||||||
case EXP: {
|
case EXP: {
|
||||||
yybegin(YYINITIAL);
|
yybegin(YYINITIAL);
|
||||||
return new FracToken(Token.FRAC, numberString, yyline+1, yycolumn+1-numberString.length(), fracValue);
|
return new FracToken(Token.FRAC, numberString, yyline+1, yycolumn+1-numberString.length(), fracValue * Math.pow(10, exponent));
|
||||||
}
|
}
|
||||||
case 30: break;
|
case 31: break;
|
||||||
case ID: {
|
case ID: {
|
||||||
yybegin(YYINITIAL);
|
yybegin(YYINITIAL);
|
||||||
return new Token(Token.ID, idValue, yyline+1, yycolumn+1-idValue.length());
|
return new Token(Token.ID, idValue, yyline+1, yycolumn+1-idValue.length());
|
||||||
}
|
}
|
||||||
case 31: break;
|
case 32: break;
|
||||||
case NUM: {
|
case NUM: {
|
||||||
yybegin(YYINITIAL);
|
yybegin(YYINITIAL);
|
||||||
return new Token(Token.NUM, String.valueOf(intValue), yyline+1, yycolumn+1-String.valueOf(intValue).length());
|
return numToken(numberString, intValue);
|
||||||
}
|
}
|
||||||
case 32: break;
|
case 33: break;
|
||||||
default:
|
default:
|
||||||
{ return new Token(Token.EOF, "", yyline+1, yycolumn+1);
|
{ return new Token(Token.EOF, "", yyline+1, yycolumn+1);
|
||||||
}
|
}
|
||||||
@@ -659,87 +660,95 @@ public final class JFlexASScanner {
|
|||||||
{ System.out.println("Illegal character <" + yytext() + ">");
|
{ System.out.println("Illegal character <" + yytext() + ">");
|
||||||
return new Token(Token.INVALID, yytext(), yyline+1, yycolumn+1);
|
return new Token(Token.INVALID, yytext(), yyline+1, yycolumn+1);
|
||||||
}
|
}
|
||||||
case 19: break;
|
case 20: break;
|
||||||
case 2:
|
case 2:
|
||||||
{ /* Ignore */
|
{ /* Ignore */
|
||||||
}
|
}
|
||||||
case 20: break;
|
case 21: break;
|
||||||
case 3:
|
case 3:
|
||||||
{ yybegin(ID); System.out.println("BEGIN ID <"+yytext()+">");
|
{ yybegin(ID); System.out.println("BEGIN ID <"+yytext()+">");
|
||||||
idValue = yytext();
|
idValue = yytext();
|
||||||
}
|
}
|
||||||
case 21: break;
|
case 22: break;
|
||||||
case 4:
|
case 4:
|
||||||
{ yybegin(NUM);
|
{ yybegin(NUM);
|
||||||
intValue = yycharat(0)-'0';
|
intValue = yycharat(0)-'0';
|
||||||
numberString = yytext();
|
numberString = yytext();
|
||||||
}
|
}
|
||||||
case 22: break;
|
case 23: break;
|
||||||
case 5:
|
case 5:
|
||||||
{ return new Token(Token.LSBR, yytext(), yyline+1, yycolumn+1);
|
{ return new Token(Token.LSBR, yytext(), yyline+1, yycolumn+1);
|
||||||
}
|
}
|
||||||
case 23: break;
|
case 24: break;
|
||||||
case 6:
|
case 6:
|
||||||
{ return new Token(Token.RSBR, yytext(), yyline+1, yycolumn+1);
|
{ return new Token(Token.RSBR, yytext(), yyline+1, yycolumn+1);
|
||||||
}
|
}
|
||||||
case 24: break;
|
case 25: break;
|
||||||
case 7:
|
case 7:
|
||||||
{ return new Token(Token.COMMA, yytext(), yyline+1, yycolumn+1);
|
{ return new Token(Token.COMMA, yytext(), yyline+1, yycolumn+1);
|
||||||
}
|
}
|
||||||
case 25: break;
|
case 26: break;
|
||||||
case 8:
|
case 8:
|
||||||
{ yybegin(YYINITIAL);
|
{ yybegin(YYINITIAL);
|
||||||
yypushback(1);
|
yypushback(1);
|
||||||
return new FracToken(Token.FRAC, numberString, yyline+1, yycolumn+1-numberString.length(), fracValue);
|
return new FracToken(Token.FRAC, numberString, yyline+1, yycolumn+1-numberString.length(), fracValue);
|
||||||
}
|
}
|
||||||
case 26: break;
|
case 27: break;
|
||||||
case 9:
|
case 9:
|
||||||
{ fracValue += (yycharat(0) - '0') * Math.pow(10, -++decimalPlace); numberString += yytext();
|
{ fracValue += (yycharat(0) - '0') * Math.pow(10, -++decimalPlace); numberString += yytext();
|
||||||
}
|
}
|
||||||
case 27: break;
|
case 28: break;
|
||||||
case 10:
|
case 10:
|
||||||
|
{ yybegin(YYINITIAL);
|
||||||
|
yypushback(1);
|
||||||
|
System.out.println("numberString: " + numberString);
|
||||||
|
System.out.println("fracValue: " + fracValue + " / exponent: " + exponent);
|
||||||
|
return new FracToken(Token.FRAC, numberString, yyline+1, yycolumn+1-numberString.length(), fracValue * Math.pow(10, exponent));
|
||||||
|
}
|
||||||
|
case 29: break;
|
||||||
|
case 11:
|
||||||
{ numberString += yytext(); exponent = exponent * 10 + yycharat(0) - '0';
|
{ numberString += yytext(); exponent = exponent * 10 + yycharat(0) - '0';
|
||||||
}
|
}
|
||||||
case 28: break;
|
case 30: break;
|
||||||
case 11:
|
case 12:
|
||||||
{ yybegin(YYINITIAL);
|
{ yybegin(YYINITIAL);
|
||||||
yypushback(1);
|
yypushback(1);
|
||||||
return new Token(Token.ID, idValue, yyline+1, yycolumn+1-idValue.length());
|
return new Token(Token.ID, idValue, yyline+1, yycolumn+1-idValue.length());
|
||||||
}
|
}
|
||||||
case 29: break;
|
case 31: break;
|
||||||
case 12:
|
case 13:
|
||||||
{ idValue += yytext();
|
{ idValue += yytext();
|
||||||
}
|
}
|
||||||
case 30: break;
|
case 32: break;
|
||||||
case 13:
|
case 14:
|
||||||
{ yybegin(YYINITIAL);
|
{ yybegin(YYINITIAL);
|
||||||
yypushback(1);
|
yypushback(1);
|
||||||
return new Token(Token.NUM, String.valueOf(intValue), yyline+1, yycolumn+1-String.valueOf(intValue).length());
|
return numToken(numberString, intValue);
|
||||||
}
|
|
||||||
case 31: break;
|
|
||||||
case 14:
|
|
||||||
{ yybegin(ID); idValue = String.valueOf(intValue); yypushback(1);
|
|
||||||
}
|
|
||||||
case 32: break;
|
|
||||||
case 15:
|
|
||||||
{ intValue = intValue * 10 + yycharat(0) - '0'; numberString += yytext();
|
|
||||||
}
|
}
|
||||||
case 33: break;
|
case 33: break;
|
||||||
|
case 15:
|
||||||
|
{ yybegin(ID); idValue = String.valueOf(intValue); yypushback(1);
|
||||||
|
}
|
||||||
|
case 34: break;
|
||||||
case 16:
|
case 16:
|
||||||
|
{ intValue = intValue * 10 + yycharat(0) - '0'; numberString += yytext();
|
||||||
|
}
|
||||||
|
case 35: break;
|
||||||
|
case 17:
|
||||||
{ yybegin(FRAC);
|
{ yybegin(FRAC);
|
||||||
fracValue = intValue;
|
fracValue = intValue;
|
||||||
System.out.println("BEGIN FRAC <"+yytext()+">");
|
System.out.println("BEGIN FRAC <"+yytext()+">");
|
||||||
numberString += yytext();
|
numberString += yytext();
|
||||||
}
|
}
|
||||||
case 34: break;
|
case 36: break;
|
||||||
case 17:
|
|
||||||
{ System.out.println("BEGIN EXP <"+yytext()+">");yybegin(EXP); numberString += yytext(); exponent = yycharat(0) - '0';
|
|
||||||
}
|
|
||||||
case 35: break;
|
|
||||||
case 18:
|
case 18:
|
||||||
|
{ yybegin(EXP); numberString += yytext(); exponent = yycharat(1) - '0'; System.out.println("BEGIN EXP <"+yytext()+"> / exponent: " + exponent);
|
||||||
|
}
|
||||||
|
case 37: break;
|
||||||
|
case 19:
|
||||||
{ return new Token(Token.NULL, yytext(), yyline+1, yycolumn+1);
|
{ return new Token(Token.NULL, yytext(), yyline+1, yycolumn+1);
|
||||||
}
|
}
|
||||||
case 36: break;
|
case 38: break;
|
||||||
default:
|
default:
|
||||||
zzScanError(ZZ_NO_MATCH);
|
zzScanError(ZZ_NO_MATCH);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,12 +13,15 @@ package de.dhbw.compiler.jflexasscanner;
|
|||||||
|
|
||||||
public class NumToken extends Token {
|
public class NumToken extends Token {
|
||||||
|
|
||||||
public NumToken(String text, int line, int column) {
|
private int value;
|
||||||
|
|
||||||
|
public NumToken(String text, int line, int column, int value) {
|
||||||
super(Token.NUM,text,line,column);
|
super(Token.NUM,text,line,column);
|
||||||
|
this.value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
int getValue() {
|
int getValue() {
|
||||||
return Integer.parseInt(getText());
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user