diff options
Diffstat (limited to 'nihil.ucl/parser.ccm')
| -rw-r--r-- | nihil.ucl/parser.ccm | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/nihil.ucl/parser.ccm b/nihil.ucl/parser.ccm index 968e906..8e715d0 100644 --- a/nihil.ucl/parser.ccm +++ b/nihil.ucl/parser.ccm @@ -17,6 +17,7 @@ export module nihil.ucl:parser; import nihil; import :error; import :object; +import :map; namespace nihil::ucl { @@ -138,7 +139,7 @@ export struct parser { } // Return the top object of this parser. - auto top(this parser &self) -> object + auto top(this parser &self) -> map<object> { if (self._parser == nullptr) throw error("attempt to call top() on an empty parser"); @@ -161,8 +162,8 @@ private: std::vector<std::unique_ptr<macro_handler>> _macros; }; -// Utility function to parse something and return the object. -export auto parse(std::ranges::range auto &&data) -> object { +// Utility function to parse something and return the top-level object. +export auto parse(std::ranges::range auto &&data) -> map<object> { auto p = parser(); p.add(std::forward<decltype(data)>(data)); return p.top(); |
