From ea85af3e59831ccb105fdc36dc32d8c55d2aa0a6 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sat, 7 Aug 2021 19:01:36 -0700 Subject: [PATCH] implement `#ifnot` --- src/lib.zig | 9 +++++++++ src/main.zig | 4 ++++ test.html | 1 + 3 files changed, 14 insertions(+) diff --git a/src/lib.zig b/src/lib.zig index 386766734e92803b72ccb94b7b11e1f9572df7c5..3b6a0bb8e3e326d02c4f01323f5e0e882887303b 100644 --- a/src/lib.zig +++ b/src/lib.zig @@ -108,6 +108,15 @@ fn do(writer: anytype, comptime value: astgen.Value, data: anytype, ctx: anytype } } }, + .ifnot => { + comptime assertEqual(v.args.len, 1); + const x = comptime search(data, v.args[0]); + if (!x) { + inline for (v.body) |val| { + try do(writer, val, data, ctx, indent, flag1); + } + } + }, else => @compileError("pek: block: TODO " ++ @tagName(v.name)), } }, diff --git a/src/main.zig b/src/main.zig index 3b5d746aa2d7fcf326083ee33c6163aa7587042d..fcfd1d4d5fa7beaa94edac5f492ca0c4cb2fb7ac 100644 --- a/src/main.zig +++ b/src/main.zig @@ -27,6 +27,10 @@ const example_document = \\ {#if am_i_a_girl} \\ p("#1") \\ /if/ + \\ + \\ {#ifnot is_it_my_birthday} + \\ p("#2") + \\ /ifnot/ \\ ) \\) ; diff --git a/test.html b/test.html index f68012d434473fb1e140d7a28bcd258fc461e1ae..c01951e6971551d23dcfdb68389c138fa36b5777 100644 --- a/test.html +++ b/test.html @@ -23,5 +23,6 @@

Spooky text: <strong>I better not be in bold.</strong>

#1

+

#2

-- 2.54.0