83 lines
1.7 KiB
Java
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!";
|
|
}
|
|
|
|
}
|
|
|
|
}
|