From eea6659a40b48e23cb660276248c7310ab879613 Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Fri, 4 Dec 2020 22:27:12 -0800 Subject: 7331 - hacky way to convert slice to string --- apps/advent2020/4b.mu | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'apps/advent2020/4b.mu') diff --git a/apps/advent2020/4b.mu b/apps/advent2020/4b.mu index d4a3496e..ffeddb32 100644 --- a/apps/advent2020/4b.mu +++ b/apps/advent2020/4b.mu @@ -157,6 +157,26 @@ fn main -> _/ebx: int { var pid?/eax: boolean <- slice-equal? key-slice, "pid" compare pid?, 0 # false break-if-= + # convert val + var s: (handle array byte) + var s2: (addr handle array byte) <- address s + _slice-to-string val-slice, s2 + # check length + var len/eax: int <- length s2 + compare len, 9 + { + break-if-= + curr-passport-field-count <- copy 8 + } + # check valid decimal int + # parse-decimal-int-from-slice currently returns 0 on invalid parse, + # which isn't ideal but suffices for our purposes + var val/eax: int <- parse-decimal-int-from-slice val-slice + compare val, 0 + { + break-if-> + curr-passport-field-count <- copy 8 + } } loop } -- cgit 1.4.1-2-gfad0