first commit

This commit is contained in:
Boris
2024-01-15 20:14:10 +00:00
commit 8c81ee28b7
3106 changed files with 474415 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
import java.util.Scanner;
/**
* A class that reads input lines from the user.
* Input is filtered via getCommand for valid commands.
*
* @author David J. Barnes and Michael Kölling.
* @version 2016.02.29
*/
public class Parser
{
// Hold all valid command words.
private CommandWords commands;
private Scanner reader;
public Parser()
{
commands = new CommandWords();
reader = new Scanner(System.in);
}
/**
* Read the next command from the user.
* The returned command will be valid.
* @return A valid command.
*/
public String getCommand()
{
String command = null;
do {
// Print a prompt.
System.out.print("> ");
String word = reader.next();
// Discard the rest of the line.
readLine();
if(commands.isCommand(word)) {
command = word;
}
else{
System.out.println("Unrecognized command: " + word);
System.out.print("Valid commands are: ");
commands.showAll();
}
} while(command == null);
return command;
}
/**
* Print out a list of valid command words.
*/
public void showCommands()
{
commands.showAll();
}
/**
* @return A line of text from the user.
*/
public String readLine()
{
return reader.nextLine();
}
}