61 lines
1.8 KiB
C++
61 lines
1.8 KiB
C++
#include <utility>
|
|
|
|
#ifndef PORYGONLANG_EVALVALUEHELPER_HPP
|
|
#define PORYGONLANG_EVALVALUEHELPER_HPP
|
|
|
|
#include "EvalValue.hpp"
|
|
#include "NumericEvalValue.hpp"
|
|
#include "StringEvalValue.hpp"
|
|
|
|
namespace Porygon::Evaluation{
|
|
class EvalValueHelper{
|
|
public:
|
|
static EvalValue* Create(unsigned char i){
|
|
return new IntegerEvalValue((long)i);
|
|
}
|
|
static EvalValue* Create(signed char i){
|
|
return new IntegerEvalValue((long)i);
|
|
}
|
|
static EvalValue* Create(short int i){
|
|
return new IntegerEvalValue(i);
|
|
}
|
|
static EvalValue* Create(unsigned short int i){
|
|
return new IntegerEvalValue(i);
|
|
}
|
|
static EvalValue* Create(signed int i){
|
|
return new IntegerEvalValue(i);
|
|
}
|
|
static EvalValue* Create(unsigned int i){
|
|
return new IntegerEvalValue(i);
|
|
}
|
|
static EvalValue* Create(signed long l){
|
|
return new IntegerEvalValue(l);
|
|
}
|
|
static EvalValue* Create(unsigned long l){
|
|
return new IntegerEvalValue(l);
|
|
}
|
|
|
|
static EvalValue* Create(float f){
|
|
return new FloatEvalValue(f);
|
|
}
|
|
static EvalValue* Create(double f){
|
|
return new FloatEvalValue(f);
|
|
}
|
|
static EvalValue* Create(long double f){
|
|
return new FloatEvalValue(f);
|
|
}
|
|
|
|
static EvalValue* Create(bool b){
|
|
return new BooleanEvalValue(b);
|
|
}
|
|
static EvalValue* Create(const string& s){
|
|
return new StringEvalValue(Utilities::StringUtils::ToUTF8(s));
|
|
}
|
|
static EvalValue* Create(u16string s){
|
|
return new StringEvalValue(std::move(s));
|
|
}
|
|
};
|
|
}
|
|
|
|
#endif //PORYGONLANG_EVALVALUEHELPER_HPP
|