41 lines
1.2 KiB
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;
|
|
}
|
|
|
|
}
|