#pragma once
#include "extract_basic.h"
#include "convert_basic.h"
///
/// ·Òë³ÌÐòºËÐÄ
///
class TranslateBasic {
private:
QHash> _extractor_types;
std::shared_ptr _default_translate_rule = nullptr;
QHash> _size_provider_types;
std::shared_ptr _default_size_provider = nullptr;
public:
TranslateBasic();
std::shared_ptr defaultRule() const;
std::shared_ptr defaultSizeProvider() const;
QHash> extactors() const;
QHash> sizeProviders() const;
};
class ConstNumberProvider : public SizeProvider {
private:
QString _number_value;
public:
QString name() const override;
int32_t value(const QString& expr) const override;
void setExpression(const QString& expr) override;
QString expression() const override;
};