// Copyright (c) Huawei Technologies Co., Ltd. 2025. All rights reserved.
// This source file is part of the Cangjie project, licensed under Apache-2.0
// with Runtime Library Exception.
//
// See https://cangjie-lang.cn/pages/LICENSE for license information.

#pragma once
#ifndef CLANGSESSION_H
#define CLANGSESSION_H

#include <memory>
#include <string>
#include <vector>

namespace objcgen {

class ClangSession {
public:
    [[nodiscard]] static std::unique_ptr<ClangSession> create();

    virtual ~ClangSession() = default;

    virtual void parse_sources(const std::vector<std::string>& files, const std::vector<std::string>& arguments) = 0;

protected:
    explicit ClangSession() = default;
};

} // namespace objcgen

#endif // CLANGSESSION_H