From 791a3f5dcd2498c6ced5f1800f1921e63f54f12b Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Fri, 6 Aug 2021 02:23:41 -0700 Subject: [PATCH] change replacement syntax to separate with periods instead of spaces --- src/astgen.zig | 2 ++ src/lib.zig | 2 +- src/main.zig | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/astgen.zig b/src/astgen.zig index 08df3cbde58a7103c81ba66ae130816bb3e10aa6..93b6810259e8611747331c25e4f9746b044c5b32 100644 --- a/src/astgen.zig +++ b/src/astgen.zig @@ -152,7 +152,9 @@ const Parser = struct { pub fn doReplacement(comptime self: *Parser) []const string { var ret: []const string = &.{}; + ret = ret ++ &[_]string{self.eat(.word)}; while (!self.tryEatSymbol("}")) { + self.eatSymbol("."); ret = ret ++ &[_]string{self.eat(.word)}; } return ret; diff --git a/src/lib.zig b/src/lib.zig index 1e7dfaf83724ac4e1b1a13815fe9cd3a99b3cbf0..ffeca89cf313ddc71d70007dbffba383f450aebc 100644 --- a/src/lib.zig +++ b/src/lib.zig @@ -29,7 +29,7 @@ const tokenize = @import("./tokenize.zig"); const astgen = @import("./astgen.zig"); pub fn parse(comptime input: []const u8) astgen.Value { - return astgen.Value{ .element = astgen.do(tokenize.do(input, &.{ '[', '=', ']', '(', ')', '{', '}', '#', '/' })) }; + return astgen.Value{ .element = astgen.do(tokenize.do(input, &.{ '[', '=', ']', '(', ')', '{', '}', '#', '/', '.' })) }; } pub fn compile(writer: anytype, comptime value: astgen.Value, data: anytype) !void { diff --git a/src/main.zig b/src/main.zig index 195310400e78bae2c16f3ae0135d63cea05fede1..70588ef0ed3eef52e1da0b00ae3da5390adc99a5 100644 --- a/src/main.zig +++ b/src/main.zig @@ -13,7 +13,7 @@ const example_document = \\ hr \\ p("This is an example HTML document written in "a[href="https://github.com/nektro/zig-pek"]("Pek")".") \\ p("Pek is written by "{author}".") - \\ p("Her favorite plant is the "{favorite flower}) + \\ p("Her favorite plant is the "{favorite.flower}) \\ br \\ p("The most populous US cities are:") \\ ul( -- 2.54.0