From 6c453709a54f3cac386287aa55d97b54ac33a7d9 Mon Sep 17 00:00:00 2001 From: Lynn Leichtle Date: Wed, 18 Sep 2024 22:06:24 +0200 Subject: [PATCH] Cleaning up strings, officially add exit command. --- src/main.zig | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/main.zig b/src/main.zig index 80cde3b..6fa323d 100644 --- a/src/main.zig +++ b/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, }); } }