aboutsummaryrefslogtreecommitdiff
path: root/src/lexer
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <william@herges.fr>2026-04-26 21:38:06 +0200
committerAnhgelus Morhtuuzh <william@herges.fr>2026-04-26 21:38:06 +0200
commitdca42e27fe9c7d28c72bb6cb8e5cc4ec481572e8 (patch)
tree5492f9c4b46b48e58d8002fd36deebd13c059291 /src/lexer
parentb0902c05ffc84d282e10a0179e041948d49fabf8 (diff)
feat(): support image
Diffstat (limited to 'src/lexer')
-rw-r--r--src/lexer/Lexer.zig23
-rw-r--r--src/lexer/Token.zig7
2 files changed, 30 insertions, 0 deletions
diff --git a/src/lexer/Lexer.zig b/src/lexer/Lexer.zig
index cdf1bd8..983aa23 100644
--- a/src/lexer/Lexer.zig
+++ b/src/lexer/Lexer.zig
@@ -223,6 +223,29 @@ test "lexer common" {
try std.testing.expect(l.next() == null);
}
+test "lexer image" {
+ var l = try init("![alt](src)");
+
+ try doTest(&l, .image, "!");
+ try doTest(&l, .link, "[");
+ try doTest(&l, .literal, "alt");
+ try doTest(&l, .link, "](");
+ try doTest(&l, .literal, "src");
+ try doTest(&l, .link, ")");
+
+ try std.testing.expect(l.next() == null);
+
+ l = try init("![](src)");
+
+ try doTest(&l, .image, "!");
+ try doTest(&l, .link, "[");
+ try doTest(&l, .link, "](");
+ try doTest(&l, .literal, "src");
+ try doTest(&l, .link, ")");
+
+ try std.testing.expect(l.next() == null);
+}
+
test "lexer multiline" {
var l = try init(
\\# Title
diff --git a/src/lexer/Token.zig b/src/lexer/Token.zig
index 18b2d10..bd2a07b 100644
--- a/src/lexer/Token.zig
+++ b/src/lexer/Token.zig
@@ -27,6 +27,13 @@ pub const Kind = enum {
else => false,
};
}
+
+ pub fn isPar(self: @This()) bool {
+ return switch (self) {
+ .literal, .link, .code, .math, .bold, .italic, .ref => true,
+ else => false,
+ };
+ }
};
kind: Kind,