arithmetic on chars
This commit is contained in:
@ -195,6 +195,18 @@ namespace Tesses::CrossLang {
|
|||||||
{
|
{
|
||||||
cse.back()->Push(gc,std::get<int64_t>(left) - std::get<double>(right));
|
cse.back()->Push(gc,std::get<int64_t>(left) - std::get<double>(right));
|
||||||
}
|
}
|
||||||
|
else if(std::holds_alternative<char>(left) && std::holds_alternative<char>(right))
|
||||||
|
{
|
||||||
|
cse.back()->Push(gc, (int64_t)(std::get<char>(left) - std::get<char>(right)));
|
||||||
|
}
|
||||||
|
else if(std::holds_alternative<char>(left) && std::holds_alternative<int64_t>(right))
|
||||||
|
{
|
||||||
|
cse.back()->Push(gc, (int64_t)(std::get<char>(left) - std::get<int64_t>(right)));
|
||||||
|
}
|
||||||
|
else if(std::holds_alternative<int64_t>(left) && std::holds_alternative<char>(right))
|
||||||
|
{
|
||||||
|
cse.back()->Push(gc, (int64_t)(std::get<int64_t>(left) - std::get<char>(right)));
|
||||||
|
}
|
||||||
else if(std::holds_alternative<THeapObjectHolder>(left))
|
else if(std::holds_alternative<THeapObjectHolder>(left))
|
||||||
{
|
{
|
||||||
auto obj = std::get<THeapObjectHolder>(left).obj;
|
auto obj = std::get<THeapObjectHolder>(left).obj;
|
||||||
@ -582,6 +594,10 @@ namespace Tesses::CrossLang {
|
|||||||
{
|
{
|
||||||
cse.back()->Push(gc,std::get<char>(left) < std::get<int64_t>(right));
|
cse.back()->Push(gc,std::get<char>(left) < std::get<int64_t>(right));
|
||||||
}
|
}
|
||||||
|
else if(std::holds_alternative<char>(left) && std::holds_alternative<char>(right))
|
||||||
|
{
|
||||||
|
cse.back()->Push(gc,std::get<char>(left) < std::get<char>(right));
|
||||||
|
}
|
||||||
else if(std::holds_alternative<int64_t>(left) && std::holds_alternative<char>(right))
|
else if(std::holds_alternative<int64_t>(left) && std::holds_alternative<char>(right))
|
||||||
{
|
{
|
||||||
cse.back()->Push(gc,std::get<int64_t>(left) < std::get<char>(right));
|
cse.back()->Push(gc,std::get<int64_t>(left) < std::get<char>(right));
|
||||||
@ -653,6 +669,10 @@ namespace Tesses::CrossLang {
|
|||||||
{
|
{
|
||||||
cse.back()->Push(gc,std::get<char>(left) > std::get<int64_t>(right));
|
cse.back()->Push(gc,std::get<char>(left) > std::get<int64_t>(right));
|
||||||
}
|
}
|
||||||
|
else if(std::holds_alternative<char>(left) && std::holds_alternative<char>(right))
|
||||||
|
{
|
||||||
|
cse.back()->Push(gc,std::get<char>(left) > std::get<char>(right));
|
||||||
|
}
|
||||||
else if(std::holds_alternative<int64_t>(left) && std::holds_alternative<char>(right))
|
else if(std::holds_alternative<int64_t>(left) && std::holds_alternative<char>(right))
|
||||||
{
|
{
|
||||||
cse.back()->Push(gc,std::get<int64_t>(left) > std::get<char>(right));
|
cse.back()->Push(gc,std::get<int64_t>(left) > std::get<char>(right));
|
||||||
@ -719,7 +739,10 @@ namespace Tesses::CrossLang {
|
|||||||
{
|
{
|
||||||
cse.back()->Push(gc,std::get<int64_t>(left) <= std::get<double>(right));
|
cse.back()->Push(gc,std::get<int64_t>(left) <= std::get<double>(right));
|
||||||
}
|
}
|
||||||
|
else if(std::holds_alternative<char>(left) && std::holds_alternative<char>(right))
|
||||||
|
{
|
||||||
|
cse.back()->Push(gc,std::get<char>(left) <= std::get<char>(right));
|
||||||
|
}
|
||||||
else if(std::holds_alternative<char>(left) && std::holds_alternative<int64_t>(right))
|
else if(std::holds_alternative<char>(left) && std::holds_alternative<int64_t>(right))
|
||||||
{
|
{
|
||||||
cse.back()->Push(gc,std::get<char>(left) <= std::get<int64_t>(right));
|
cse.back()->Push(gc,std::get<char>(left) <= std::get<int64_t>(right));
|
||||||
@ -795,6 +818,10 @@ namespace Tesses::CrossLang {
|
|||||||
{
|
{
|
||||||
cse.back()->Push(gc,std::get<char>(left) >= std::get<int64_t>(right));
|
cse.back()->Push(gc,std::get<char>(left) >= std::get<int64_t>(right));
|
||||||
}
|
}
|
||||||
|
else if(std::holds_alternative<char>(left) && std::holds_alternative<char>(right))
|
||||||
|
{
|
||||||
|
cse.back()->Push(gc,std::get<char>(left) >= std::get<char>(right));
|
||||||
|
}
|
||||||
else if(std::holds_alternative<int64_t>(left) && std::holds_alternative<char>(right))
|
else if(std::holds_alternative<int64_t>(left) && std::holds_alternative<char>(right))
|
||||||
{
|
{
|
||||||
cse.back()->Push(gc,std::get<int64_t>(left) >= std::get<char>(right));
|
cse.back()->Push(gc,std::get<int64_t>(left) >= std::get<char>(right));
|
||||||
@ -1307,8 +1334,18 @@ namespace Tesses::CrossLang {
|
|||||||
cse.back()->Push(gc,std::get<std::string>(left) + std::get<Tesses::Framework::Filesystem::VFSPath>(right));
|
cse.back()->Push(gc,std::get<std::string>(left) + std::get<Tesses::Framework::Filesystem::VFSPath>(right));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
else if(std::holds_alternative<char>(left) && std::holds_alternative<char>(right))
|
||||||
|
{
|
||||||
|
cse.back()->Push(gc,std::get<char>(left) + std::get<char>(right));
|
||||||
|
}
|
||||||
|
else if(std::holds_alternative<int64_t>(left) && std::holds_alternative<char>(right))
|
||||||
|
{
|
||||||
|
cse.back()->Push(gc, (char)(std::get<int64_t>(left) + std::get<char>(right)));
|
||||||
|
}
|
||||||
|
else if(std::holds_alternative<char>(left) && std::holds_alternative<int64_t>(right))
|
||||||
|
{
|
||||||
|
cse.back()->Push(gc, (char)(std::get<char>(left) + std::get<int64_t>(right)));
|
||||||
|
}
|
||||||
else if(std::holds_alternative<Tesses::Framework::Filesystem::VFSPath>(left) && std::holds_alternative<std::string>(right))
|
else if(std::holds_alternative<Tesses::Framework::Filesystem::VFSPath>(left) && std::holds_alternative<std::string>(right))
|
||||||
{
|
{
|
||||||
cse.back()->Push(gc,std::get<Tesses::Framework::Filesystem::VFSPath>(left) + std::get<std::string>(right));
|
cse.back()->Push(gc,std::get<Tesses::Framework::Filesystem::VFSPath>(left) + std::get<std::string>(right));
|
||||||
|
|||||||
Reference in New Issue
Block a user