#pragma once

#include "ccl/lang/TextProcessor.h"

namespace xtr::core {

//! Python implementation for ccl::lang::TextProcessor
class PyTextProcessor final : public ccl::lang::TextProcessor {
  bool isInit{ false };
  std::string moduleKey{};

public:
  void InitModule(const std::string& key);

  [[nodiscard]] std::string Inflect(const std::string& target, const ccl::lang::Morphology& form) const override;
  [[nodiscard]] std::string InflectDependant(const std::string& dependant, const std::string& main) const override;
  [[nodiscard]] bool IsSubstr(
    const std::string& needle,
    const std::string& haystack
  ) const override;
};

} // namespace xtr::core