From 8f98dc579af1993ec85bd849656c4835b4039dd6 Mon Sep 17 00:00:00 2001 From: Stefan Weigl-Bosker Date: Mon, 23 Feb 2026 22:18:22 -0500 Subject: [willow]: frontend plumbing (#13) ... --- willow/tools/willowc/lib/parser.cpp | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'willow/tools/willowc/lib/parser.cpp') diff --git a/willow/tools/willowc/lib/parser.cpp b/willow/tools/willowc/lib/parser.cpp index becc171..e658909 100644 --- a/willow/tools/willowc/lib/parser.cpp +++ b/willow/tools/willowc/lib/parser.cpp @@ -2,8 +2,27 @@ namespace willowc { -std::optional> parse() { +std::optional> Parser::run() { + bool failed = false; + while (true) { + Token t = tokenizer_.scan(); + if (t.kind == TokenKind::Eof) { + willow::emit(diagnostic_engine_, willow::Severity::Debug) + << std::format("[ :: {} : ({}, {}) ]", t.kind, t.start, t.end); + break; + } + willow::emit(diagnostic_engine_, willow::Severity::Debug) + << std::format("[ '{}' :: {} : ({}, {}) ]", + tokenizer_.buf.substr(t.start, t.end - t.start), t.kind, + t.start, t.end); + } + return std::nullopt; } +willow::DiagnosticBuilder Parser::emitParserError(Token t, willow::Severity severity) { + willow::Location loc = file_.getLoc(t.start); + return willow::DiagnosticBuilder(diagnostic_engine_, severity, loc); } + +} // namespace willowc -- cgit v1.2.3