From 9eb7d0c68f54387c7a21e26051141ffd6f57e97c Mon Sep 17 00:00:00 2001 From: CHatingPython Date: Tue, 2 Jun 2026 12:47:51 +0200 Subject: [PATCH] docs: document parser --- furc/include/furc/front/parser.hpp | 42 ++++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/furc/include/furc/front/parser.hpp b/furc/include/furc/front/parser.hpp index a2ce903..2f9f160 100644 --- a/furc/include/furc/front/parser.hpp +++ b/furc/include/furc/front/parser.hpp @@ -10,18 +10,50 @@ namespace furc { namespace front { -class parser { +/** + * @brief Parser. + * + * Furlang's parser. + */ +class parser final { public: + /** + * @brief Construct a new parser from content. + * + * @param filename Filename for debugging. + * @param content Content. + */ parser(std::string_view filename, std::string_view content); + + /** + * @brief Construct a new parser from file. + * + * Constructs a lexer with content read from file passed through \p filename. + * + * @param filename Name of the file. + */ parser(std::string_view filename); ~parser() = default; - parser(parser&&) = default; - parser(const parser&) = delete; - parser& operator=(parser&&) = default; + /** + * @brief Move constructor. + */ + parser(parser&&) = default; + + parser(const parser&) = delete; + + /** + * @brief Move constructor. + */ + parser& operator=(parser&&) = default; + parser& operator=(const parser&) = delete; public: - // parser owns the arena :3c + /** + * @brief Returns a parsed program. + * + * @return Handle to an AST node of the program. + */ ast::program_node_h parse() &; private: ast::declaration_node_h parse_declaration();