diff options
Diffstat (limited to 'src/estd/parser/common.zig')
| -rw-r--r-- | src/estd/parser/common.zig | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/src/estd/parser/common.zig b/src/estd/parser/common.zig index 986af58..2802838 100644 --- a/src/estd/parser/common.zig +++ b/src/estd/parser/common.zig @@ -4,25 +4,25 @@ const Context = @import("context.zig").Context; const ParseFn = root.ParseFn; pub fn LiteralFn(comptime I: type, comptime O: type) type { - return *const fn (comptime literal: []const I, value: O) ParseFn(I, O); + return *const fn (comptime literal: []const I, value: O) ParseFn(I, O); } pub fn Literal(comptime I: type, comptime O: type) LiteralFn(I, O) { - return struct { - pub fn literal(comptime lit: []const I, value: O) ParseFn(I, O) { - return struct { - pub fn parse(ctx: *Context(I)) !O { - const snapshot = ctx.cursor.snapshot(); - errdefer ctx.cursor.rollback(snapshot); + return struct { + pub fn literal(comptime lit: []const I, value: O) ParseFn(I, O) { + return struct { + pub fn parse(ctx: *Context(I)) !O { + const snapshot = ctx.cursor.snapshot(); + errdefer ctx.cursor.rollback(snapshot); - const slice = try ctx.cursor.consume(lit.len); - if (std.mem.eql(I, lit, slice)) { - return value; - } + const slice = try ctx.cursor.consume(lit.len); + if (std.mem.eql(I, lit, slice)) { + return value; + } - return error.UnexpectedLiteral; - } - }.parse; - } - }.literal; + return error.UnexpectedLiteral; + } + }.parse; + } + }.literal; } |