#ifndef NIX_IRC_PARSER_H
#define NIX_IRC_PARSER_H

#include "types.h"
#include <string>
#include <memory>

namespace nix_irc {

class Parser {
public:
    Parser();
    ~Parser();
    
    std::shared_ptr<Node> parse(const std::string& source, const std::string& path = "<stdin>");
    std::shared_ptr<Node> parse_file(const std::string& path);
    
private:
    struct Impl;
    std::unique_ptr<Impl> pImpl;
};

}

#endif