06_Praktikum-2_Befehlssystem/src/Parser.java

41 lines
1.2 KiB
Java

import java.util.Scanner;
/**
* Dieser Parser liest Benutzereingaben und wandelt sie in Befehle um. Bei jedem
* Aufruf liest er eine Zeile von der Konsole und versucht, diese als einen
* Befehl aus bis zu zwei Woertern zu interpretieren. Er liefert den Befehl als
* ein Objekt der Klasse Befehl zurueck.
*
* Der Parser verfuegt ueber einen Satz an bekannten Befehlen. Er
* vergleicht die Eingabe mit diesen Befehlen. Wenn die Eingabe
* keinen bekannten Befehl enthaelt, dann liefert der Parser ein als
* unbekannter Befehl gekennzeichnetes Objekt zurueck.
*
* @author tebe
* @version 18.10.2013
*/
class Parser {
// Lieferant fuer eingegebene Befehle
private Scanner leser = new Scanner(System.in);
/**
* @return Der naechste Befehl des Benutzers.
*/
public Befehl liefereBefehl() {
Befehl befehl;
String eingabezeile; // fuer die gesamte Eingabezeile
System.out.print("> "); // Eingabeaufforderung
eingabezeile = leser.nextLine();
String[] woerter = eingabezeile.split(" ");
if (woerter.length >= 2) {
befehl = new Befehl(woerter[0], woerter[1]);
} else {
befehl = new Befehl(woerter[0], null);
}
return befehl;
}
}