Files
dhbw-compilerbau/ÜB-Praxis-JFlex Scanner für AS-Leer/src/de/dhbw/compiler/jflexasscanner/Token.java
2020-04-27 13:22:10 +02:00

83 lines
1.7 KiB
Java

/* **********************************************
* Duale Hochschule Baden-Württemberg Karlsruhe
* Prof. Dr. Jörn Eisenbiegler
*
* Vorlesung Übersetzerbau
* Praxis AS-Scanner mit JFlex
* - Token-Definition
*
* **********************************************
*/
package de.dhbw.compiler.jflexasscanner;
public class Token {
public static final int EOF = 0;
public static final int INVALID = -1;
public static final int LSBR = 1;
public static final int RSBR = 2;
public static final int COMMA = 3;
public static final int NUM = 4;
public static final int ID = 5;
public static final int NULL = 6;
public static final int FRAC = 7;
public static final int TO = 8;
public static final int STR = 9;
private int type;
private String text;
private int line;
private int columnm;
public Token(int type, String text, int line, int column) {
this.type = type;
this.text = text;
this.line = line;
this.columnm = column;
}
public Token(int type, String text) {
this(type,text,0,0);
}
public int getType() {
return type;
}
public String getText() {
return text;
}
public int getLine() {
return line;
}
public int getColumn() {
return columnm;
}
public String toString() {
return "(" + getTypeName(type) + "," + text + "," + line + "," + columnm + ")";
}
public static String getTypeName(int tokenType) {
switch (tokenType) {
case EOF: return "EOF";
case INVALID: return "INVALID";
case LSBR: return "LSBR";
case RSBR: return "RSBR";
case COMMA: return "COMMA";
case NUM: return "NUM";
case ID: return "ID";
case NULL: return "NULL";
case FRAC: return "FRAC";
case TO: return "TO";
case STR: return "STR";
default: return "Unknown token type!";
}
}
}