From 3abb0eaf592ce12b5d4ae105ee9f441d2203b1ed Mon Sep 17 00:00:00 2001 From: Lucia Ceionia Date: Tue, 3 Dec 2024 02:54:12 -0600 Subject: [PATCH] marginally less unreadable --- 03/src/main.zig | 75 ++++++++++++++----------------------------------- 1 file changed, 21 insertions(+), 54 deletions(-) diff --git a/03/src/main.zig b/03/src/main.zig index dbf130f..bb51b7b 100644 --- a/03/src/main.zig +++ b/03/src/main.zig @@ -75,56 +75,31 @@ fn run2(s: []const u8) !u64 { try s_fbs.seekBy(-1); break :sw STATE.waiting; }, + STATE.waiting => { - switch (reader.readByte() catch { - break :read; - }) { - 'm' => { - break :sw STATE.m; - }, - 'd' => { - break :sw STATE.d; - }, - else => { - break :sw STATE.waiting; - }, + switch (reader.readByte() catch { break :read; }) { + 'm' => { break :sw STATE.m; }, + 'd' => { break :sw STATE.d; }, + else => { break :sw STATE.waiting; }, } }, - STATE.m => if (reader.readByte() catch { - break :read; - } == 'u') STATE.u else STATE.rewind, - STATE.u => if (reader.readByte() catch { - break :read; - } == 'l') STATE.l else STATE.rewind, - STATE.l => if (reader.readByte() catch { - break :read; - } == '(') STATE.open else STATE.rewind, - STATE.d => if (reader.readByte() catch { - break :read; - } == 'o') STATE.o else STATE.rewind, - STATE.o => switch (reader.readByte() catch { - break :read; - }) { + STATE.m => if (reader.readByte() catch { break :read; } == 'u') STATE.u else STATE.rewind, + STATE.u => if (reader.readByte() catch { break :read; } == 'l') STATE.l else STATE.rewind, + STATE.l => if (reader.readByte() catch { break :read; } == '(') STATE.open else STATE.rewind, + + STATE.d => if (reader.readByte() catch { break :read; } == 'o') STATE.o else STATE.rewind, + STATE.o => switch (reader.readByte() catch { break :read; }) { 'n' => STATE.n, '(' => STATE.open_do, else => STATE.rewind, }, - STATE.open_do => if (reader.readByte() catch { - break :read; - } == ')') STATE.close_do else STATE.rewind, - STATE.n => if (reader.readByte() catch { - break :read; - } == '\'') STATE.apo else STATE.rewind, - STATE.apo => if (reader.readByte() catch { - break :read; - } == 't') STATE.t else STATE.rewind, - STATE.t => if (reader.readByte() catch { - break :read; - } == '(') STATE.open_dont else STATE.rewind, - STATE.open_dont => if (reader.readByte() catch { - break :read; - } == ')') STATE.close_dont else STATE.rewind, + STATE.n => if (reader.readByte() catch { break :read; } == '\'') STATE.apo else STATE.rewind, + STATE.apo => if (reader.readByte() catch { break :read; } == 't') STATE.t else STATE.rewind, + STATE.t => if (reader.readByte() catch { break :read; } == '(') STATE.open_dont else STATE.rewind, + + STATE.open_do => if (reader.readByte() catch { break :read; } == ')') STATE.close_do else STATE.rewind, + STATE.open_dont => if (reader.readByte() catch { break :read; } == ')') STATE.close_dont else STATE.rewind, STATE.close_do => { do_mul = true; @@ -185,18 +160,10 @@ fn run1(s: []const u8) !u64 { // state transition state = sw: { break :sw switch (state) { - STATE.waiting => if (reader.readByte() catch { - break :read; - } == 'm') STATE.m else STATE.waiting, - STATE.m => if (reader.readByte() catch { - break :read; - } == 'u') STATE.u else STATE.waiting, - STATE.u => if (reader.readByte() catch { - break :read; - } == 'l') STATE.l else STATE.waiting, - STATE.l => if (reader.readByte() catch { - break :read; - } == '(') STATE.open else STATE.waiting, + STATE.waiting => if (reader.readByte() catch { break :read; } == 'm') STATE.m else STATE.waiting, + STATE.m => if (reader.readByte() catch { break :read; } == 'u') STATE.u else STATE.waiting, + STATE.u => if (reader.readByte() catch { break :read; } == 'l') STATE.l else STATE.waiting, + STATE.l => if (reader.readByte() catch { break :read; } == '(') STATE.open else STATE.waiting, STATE.open => { var fbs = std.io.fixedBufferStream(&buf);