aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <william@herges.fr>2026-04-16 16:42:53 +0200
committerAnhgelus Morhtuuzh <william@herges.fr>2026-04-16 16:42:53 +0200
commit4ce2a56b2e76b631bae5f845e310e3f46dde4dbe (patch)
tree5a5175f2c6b65c1fecd8ac8608d8dc8931adf7df
parentc76b6669517aeb0f0453a0abf6e2b17e50588792 (diff)
feat(lexer): supports tag
-rw-r--r--grammar.ebnf1
-rw-r--r--src/lexer/lexed.zig1
-rw-r--r--src/lexer/lexer.zig5
3 files changed, 6 insertions, 1 deletions
diff --git a/grammar.ebnf b/grammar.ebnf
index 76c124c..d443a9d 100644
--- a/grammar.ebnf
+++ b/grammar.ebnf
@@ -25,3 +25,4 @@ code-inline = "`", content, "`";
math-inline = "$", content, "$";
link = "[", [ content ], "](", content, ")";
ref = "<", content, ">";
+tag = "#", ? [^\n ]+ ?;
diff --git a/src/lexer/lexed.zig b/src/lexer/lexed.zig
index cb3a4b7..63395bb 100644
--- a/src/lexer/lexed.zig
+++ b/src/lexer/lexed.zig
@@ -18,6 +18,7 @@ pub const Kind = enum {
callout,
list_ordored,
list_unordored,
+ tag,
};
pub const Lexed = struct {
diff --git a/src/lexer/lexer.zig b/src/lexer/lexer.zig
index 873d40b..e2a4f7b 100644
--- a/src/lexer/lexer.zig
+++ b/src/lexer/lexer.zig
@@ -50,7 +50,10 @@ pub const Lexer = struct {
_ = self.iter.nextCodepoint();
break;
}
- current_kind = .literal;
+ current_kind = switch (current_kind.?) {
+ .title => if (acc.items.len == 1) .tag else .literal,
+ else => .literal,
+ };
}
}
}