Files
mdemory/src/include/lexer.h
2024-10-14 21:13:44 +03:00

33 lines
570 B
C++

#pragma once
#include <string>
#include <vector>
#include "result.h"
enum class TokenType {
TextFragment,
QuestionEnd,
MatchGroupEnd,
ElementDashStart,
ElementPlusStart,
ElementOrderModifier,
Cooldown,
CooldownStart,
CooldownEnd,
StartOfFile,
EndOfFile
};
struct Token {
TokenType tokenType;
std::string content;
int32_t row;
int32_t column;
std::string ToString() const;
static std::string ToString(const TokenType* ttype);
};
Result<std::vector<Token>> tokenizeMdem(const std::string& fileRunes);