docs: document lexer

This commit is contained in:
2026-06-02 12:41:36 +02:00
parent 1f4d0b992d
commit 16ca41b75a
+31
View File
@@ -6,19 +6,50 @@
namespace furc { namespace furc {
namespace front { namespace front {
/**
* @brief Lexer.
*
* Furlang's lazy tokenizer.
*/
class lexer { class lexer {
public: public:
lexer() = default; lexer() = default;
/**
* @brief Construct a new lexer.
*
* @param filename Filename for debugging.
* @param content Content.
*/
lexer(std::string_view filename, std::string_view content); lexer(std::string_view filename, std::string_view content);
~lexer() = default; ~lexer() = default;
/**
* @brief Move constructor.
*/
lexer(lexer&&) = default; lexer(lexer&&) = default;
lexer(const lexer&) = delete; lexer(const lexer&) = delete;
/**
* @brief Move constructor.
*/
lexer& operator=(lexer&&) = default; lexer& operator=(lexer&&) = default;
lexer& operator=(const lexer&) = delete; lexer& operator=(const lexer&) = delete;
public: public:
/**
* @brief Returns a handle to next token.
*
* @return The token handle.
*/
token_handle<> next_token(); token_handle<> next_token();
/**
* @brief Checks whether the cursor is at the EOF.
*
* @return true if the cursor is at the EOF.
*/
bool empty() const { return m_cursor >= m_content.size(); } bool empty() const { return m_cursor >= m_content.size(); }
private: private:
void next(); void next();