载入中...
搜索中...
未找到
DnutBlockScanner.cpp
浏览该文件的文档.
10eve::Result<std::vector<DnutBlock>> scanFailure(const std::string& path, const DnutToken& token, std::string message) {
13 {{"line", std::to_string(token.line)}, {"column", std::to_string(token.column)}}, "dnut.block-scanner"));
22eve::Result<std::vector<DnutBlock>> scanDnutBlocks(const std::vector<DnutToken>& tokens, const std::string& path) {
55 (tokens[index].kind == DnutTokenKind::Identifier || tokens[index].kind == DnutTokenKind::String))
58 while (index < tokens.size() && tokens[index].kind != DnutTokenKind::EndOfFile && !isPunct(tokens[index], "{"))
Shared top-level block discovery for `.dnut` dialects.
std::unordered_map< const Graphics *, std::shared_ptr< Lifetime > > tokens
Definition GraphicsLifetime.cpp:13
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
Definition ConversationDialect.cpp:13
eve::Result< std::vector< DnutBlock > > scanDnutBlocks(const std::vector< DnutToken > &tokens, const std::string &path)
Discover balanced top-level dialect blocks in one lexed document.
Definition DnutBlockScanner.cpp:22
@ Identifier
Bare word: keyword, field name, identifier, or bare enum value.
@ Punctuator
One- or two-character punctuator such as {, =, ==, ->.
@ Number
Unsigned numeric literal; sign handling belongs to the parser.
@ ParseError
One top-level dialect block in a shared token buffer.
Definition DnutBlockScanner.h:21