package tokens; /** * Ein Token ist ein zusammengehöriges Symbol, das Teil eines mathematischen Ausdrucks ist. Es entspricht ungefähr * einem "Wort"; hier kann es entweder Operatoren oder Operanden von Rechenoperationen darstellen. Eine einzelne Zahl * (nicht Ziffer) ist bspw. ein Token, die Variable x ist ein Token, ein Operator ist ein Token, der Name einer Funktion * ist ein Token. */ public class Token { protected TokenType type; // TODO: Schreibe zwei(2) Konstruktoren, die die jeweiligen Bedingungen erfüllen: /** * Es soll kein Token ohne Type konstruiert werden, außer von Unterklassen. */ /** * Erzeugt einen Token mit dem angegebenen Typ. * @param type Tokentyp. */ // TODO: Schreibe einen Getter für den TokenType /** * getType gibt den Typ dieses Tokens zurück. * @return Tokentyp. */ /** * toString gibt den Token in lesbarer Form aus. * @return Token als String. */ public String toString() { switch (this.type) { case X: return "x"; case PLUS: return "+"; case MINUS: return "-"; case TIMES: return "*"; case DIVIDED: return "/"; case POWER: return "^"; default: throw new IllegalArgumentException("Keine toString-Implementierung für tokenType " + this.type); } } }