BareGit
#ifndef MACRODOWN_PARSER_H
#define MACRODOWN_PARSER_H

#include <string>
#include <vector>
#include <memory>
#include "nodes.h"
#include "markups.h"

namespace macrodown
{

class Parser
{
public:
    // Parses a string into a list of nodes (Text and Macros)
    // This handles the Inline Parsing phase (Phase 2 of the design)
    static std::vector<std::unique_ptr<Node>> parse(
        const std::string& input,
        const std::vector<PrefixMarkup>& prefix_markups = {},
        const std::vector<DelimitedMarkup>& delimited_markups = {});
};

} // namespace macrodown

#endif // MACRODOWN_PARSER_H