diff --git a/src/template/lib.zig b/src/template/lib.zig index 7c402f9..b884144 100644 --- a/src/template/lib.zig +++ b/src/template/lib.zig @@ -15,7 +15,7 @@ pub fn main() !void { pub fn execute(writer: anytype, comptime template: []const u8, args: anytype) !void { @setEvalBranchQuota(@intCast(u32, template.len * 8)); - const tmpl = comptime parseTemplate(TokenIter{ .text = template }, .root); + const tmpl = comptime parseTemplate(ControlTokenIter{ .text = template }, .root); try executeTemplate(writer, tmpl.item, args, .{}); } @@ -123,7 +123,7 @@ const TemplateType = enum { if_block, }; -fn parseTemplate(comptime tokens: TokenIter, comptime template_type: TemplateType) ParseResult(TokenIter, []const TemplateItem) { +fn parseTemplate(comptime tokens: ControlTokenIter, comptime template_type: TemplateType) ParseResult(ControlTokenIter, []const TemplateItem) { comptime { var iter = tokens; var items: []const TemplateItem = &.{}; @@ -177,7 +177,7 @@ fn parseTemplate(comptime tokens: TokenIter, comptime template_type: TemplateTyp } } -fn parseExpression(comptime tokens: TokenIter) ParseResult(TokenIter, Expression) { +fn parseExpression(comptime tokens: ControlTokenIter) ParseResult(ControlTokenIter, Expression) { comptime { var iter = tokens; @@ -203,7 +203,7 @@ fn parseExpression(comptime tokens: TokenIter) ParseResult(TokenIter, Expression } } -fn parseControlBlock(comptime tokens: TokenIter) ParseResult(TokenIter, ControlBlock) { +fn parseControlBlock(comptime tokens: ControlTokenIter) ParseResult(ControlTokenIter, ControlBlock) { comptime { var iter = tokens; var first_token: bool = true; @@ -303,7 +303,7 @@ fn parseControlBlock(comptime tokens: TokenIter) ParseResult(TokenIter, ControlB } } -fn skipWhitespace(comptime tokens: TokenIter) TokenIter { +fn skipWhitespace(comptime tokens: ControlTokenIter) ControlTokenIter { comptime { var iter = tokens; while (iter.peek()) |token| switch (token) { @@ -315,7 +315,7 @@ fn skipWhitespace(comptime tokens: TokenIter) TokenIter { } } -fn endControlBlock(comptime tokens: TokenIter) TokenIter { +fn endControlBlock(comptime tokens: ControlTokenIter) ControlTokenIter { comptime { var iter = skipWhitespace(tokens); @@ -325,7 +325,7 @@ fn endControlBlock(comptime tokens: TokenIter) TokenIter { } } -fn parseForLoop(comptime tokens: TokenIter) ParseResult(TokenIter, ForLoop) { +fn parseForLoop(comptime tokens: ControlTokenIter) ParseResult(ControlTokenIter, ForLoop) { comptime { const iterable = parseExpression(tokens); var iter = iterable.new_iter; @@ -360,7 +360,7 @@ fn parseForLoop(comptime tokens: TokenIter) ParseResult(TokenIter, ForLoop) { } } -fn parseIfStatement(comptime tokens: TokenIter) ParseResult(TokenIter, IfStatement) { +fn parseIfStatement(comptime tokens: ControlTokenIter) ParseResult(ControlTokenIter, IfStatement) { comptime { const condition = parseExpression(tokens); var iter = endControlBlock(condition.new_iter); @@ -371,7 +371,7 @@ fn parseIfStatement(comptime tokens: TokenIter) ParseResult(TokenIter, IfStateme } } -fn parseDeref(comptime tokens: TokenIter) ParseResult(TokenIter, []const []const u8) { +fn parseDeref(comptime tokens: ControlTokenIter) ParseResult(ControlTokenIter, []const []const u8) { comptime { var iter = tokens; var fields: []const []const u8 = &.{}; @@ -450,7 +450,7 @@ const EndKeyword = enum { @"if", }; -const Token = union(enum) { +const ControlToken = union(enum) { text: []const u8, open_bracket: void, close_bracket: void, @@ -463,14 +463,14 @@ const Token = union(enum) { equals: void, }; -const TokenIter = struct { +const ControlTokenIter = struct { start: usize = 0, text: []const u8, - peeked_token: ?Token = null, + peeked_token: ?ControlToken = null, row: usize = 0, - fn next(self: *TokenIter) ?Token { + fn next(self: *ControlTokenIter) ?ControlToken { if (self.peeked_token) |token| { self.peeked_token = null; return token; @@ -509,13 +509,13 @@ const TokenIter = struct { } } - fn peek(self: *TokenIter) ?Token { + fn peek(self: *ControlTokenIter) ?ControlToken { const token = self.next(); self.peeked_token = token; return token; } - fn putBack(self: *TokenIter, token: Token) void { + fn putBack(self: *ControlTokenIter, token: ControlToken) void { std.debug.assert(self.peeked_token == null); self.peeked_token = token; }