Cleaning up strings, officially add exit command.
This commit is contained in:
parent
1b51632360
commit
6c453709a5
1 changed files with 20 additions and 13 deletions
33
src/main.zig
33
src/main.zig
|
@ -24,22 +24,24 @@ const TOO_MANY_ARGUMENTS = "Wrong number of arguments";
|
|||
const WRONG_ARGUMENT = "Invalid argument";
|
||||
// COMMAND
|
||||
const PROMPT_COMMAND = "prompt";
|
||||
const SEGMENT_REGISTER_COMMAND = "sr";
|
||||
const SEGMENT_REGISTER_COMMAND = "sreg";
|
||||
const REGISTER_COMMAND = "reg";
|
||||
const CLEAR_COMMAND = "cls";
|
||||
const HELP_COMMAND = "?";
|
||||
const EXIT_COMMAND = "exit";
|
||||
// DESCRIPTION
|
||||
const PROMPT_DESCRIPTION = "Change the prompt between Long-mode or Short-mode.";
|
||||
const REGISTER_DESCRIPTION = "Print the current values for Registers.";
|
||||
const SEGMENT_REGISTER_DESCRIPTION = "Print the current values for Segment Registers.";
|
||||
const CLEAR_DESCRIPTION = "Clears the screen.";
|
||||
const EXIT_DESCRIPTION = "Exits the REPL.";
|
||||
// USAGE
|
||||
const PROMPT_USAGE = "prompt {short|long}";
|
||||
const REGISTER_USAGE = "reg";
|
||||
const SEGMENT_REGISTER_USAGE = "sr";
|
||||
const HELP_USAGE = "?";
|
||||
const CLEAR_USAGE = "cls";
|
||||
|
||||
const REGISTER_USAGE = REGISTER_COMMAND;
|
||||
const SEGMENT_REGISTER_USAGE = SEGMENT_REGISTER_COMMAND;
|
||||
const HELP_USAGE = HELP_COMMAND;
|
||||
const CLEAR_USAGE = CLEAR_COMMAND;
|
||||
const EXIT_USAGE = EXIT_COMMAND;
|
||||
pub fn main() !void {
|
||||
var memory = mem.Memory.init();
|
||||
var cpu = cpu_.Cpu.init();
|
||||
|
@ -59,10 +61,13 @@ pub fn main() !void {
|
|||
\\ to redistribute it under certain coditions;
|
||||
\\ for details please refer to the LICENSE file.
|
||||
\\
|
||||
\\Type `?` for help.
|
||||
\\Type `exit` to quit.
|
||||
\\Type `{s}` for help.
|
||||
\\Type `{s}` to quit.
|
||||
\\
|
||||
, .{});
|
||||
, .{
|
||||
HELP_COMMAND,
|
||||
EXIT_COMMAND,
|
||||
});
|
||||
var buffer: [256]u8 = undefined;
|
||||
while (true) {
|
||||
if (long_prompt) {
|
||||
|
@ -74,13 +79,13 @@ pub fn main() !void {
|
|||
const clean = std.mem.trim(u8, line.?, " \n\r");
|
||||
var it = std.mem.splitSequence(u8, clean, " ");
|
||||
if (it.next()) |first_argument| {
|
||||
if (std.mem.eql(u8, first_argument, "exit")) {
|
||||
if (std.mem.eql(u8, first_argument, EXIT_COMMAND)) {
|
||||
break;
|
||||
} else if (std.mem.eql(u8, first_argument, "sr")) {
|
||||
} else if (std.mem.eql(u8, first_argument, SEGMENT_REGISTER_COMMAND)) {
|
||||
try handleSegmentRegisterCommand(&cpu, &it);
|
||||
} else if (std.mem.eql(u8, first_argument, "prompt")) {
|
||||
} else if (std.mem.eql(u8, first_argument, PROMPT_COMMAND)) {
|
||||
try handlePromptCommand(&it);
|
||||
} else if (std.mem.eql(u8, first_argument, "?")) {
|
||||
} else if (std.mem.eql(u8, first_argument, HELP_COMMAND)) {
|
||||
try handleHelpCommand(&it);
|
||||
} else if (std.mem.eql(u8, first_argument, CLEAR_COMMAND)) {
|
||||
try handleClearScreenCommand(&it);
|
||||
|
@ -151,12 +156,14 @@ fn handleHelpCommand(it: anytype) !void {
|
|||
\\{s: <20} {s}
|
||||
\\{s: <20} {s}
|
||||
\\{s: <20} {s}
|
||||
\\{s: <20} {s}
|
||||
\\
|
||||
, .{
|
||||
PROMPT_USAGE, PROMPT_DESCRIPTION,
|
||||
REGISTER_USAGE, REGISTER_DESCRIPTION,
|
||||
SEGMENT_REGISTER_USAGE, SEGMENT_REGISTER_DESCRIPTION,
|
||||
CLEAR_USAGE, CLEAR_DESCRIPTION,
|
||||
EXIT_USAGE, EXIT_DESCRIPTION,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue