diff --git a/src/lib.zig b/src/lib.zig index 6e7b6d3d6f2675d60aa7b3c754e1b0ae317c48ef..271d6e7203f25b75f68f0501eb722ff587a53638 100644 --- a/src/lib.zig +++ b/src/lib.zig @@ -127,7 +127,16 @@ fn do(writer: anytype, comptime value: astgen.Value, data: anytype, ctx: anytype } } }, - else => @compileError("pek: block: TODO " ++ @tagName(v.name)), + .ifnotequal => { + comptime assertEqual(v.args.len, 2); + const x = comptime search(data, v.args[0]); + const y = comptime search(data, v.args[1]); + if (x != y) { + inline for (v.body) |val| { + try do(writer, val, data, ctx, indent, flag1); + } + } + }, } }, else => unreachable, diff --git a/src/main.zig b/src/main.zig index 20f35eae419ab931cfdb48038ed03d8bcb4c8a1e..8f03c03235d7c3ba14a1cf83210578ee8d184e50 100644 --- a/src/main.zig +++ b/src/main.zig @@ -35,6 +35,10 @@ const example_document = \\ {#ifequal top_cities.len best_rating} \\ p("#3") \\ /ifequal/ + \\ + \\ {#ifnotequal favorite.color sky} + \\ p("#4") + \\ /ifnotequal/ \\ ) \\) ; diff --git a/test.html b/test.html index b58ac4c548999e6cae141681901bbd6e435262f8..cd1fe1373654fbc5ac827d2e869d36e6535d4565 100644 --- a/test.html +++ b/test.html @@ -25,5 +25,6 @@
#1
#2
#3
+#4