|
|
|
|
@@ -31,7 +31,7 @@
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
#include <Variant.h>
|
|
|
|
|
#include <ISO8601.h>
|
|
|
|
|
#include <Lexer.h>
|
|
|
|
|
#include <Lexer2.h>
|
|
|
|
|
#include <Date.h>
|
|
|
|
|
#include <Duration.h>
|
|
|
|
|
#include <RX.h>
|
|
|
|
|
@@ -196,10 +196,10 @@ bool Variant::operator&& (const Variant& other) const
|
|
|
|
|
Variant right (other);
|
|
|
|
|
|
|
|
|
|
if (left._type == type_string)
|
|
|
|
|
Lexer::dequote (left._string);
|
|
|
|
|
Lexer2::dequote (left._string);
|
|
|
|
|
|
|
|
|
|
if (right._type == type_string)
|
|
|
|
|
Lexer::dequote (right._string);
|
|
|
|
|
Lexer2::dequote (right._string);
|
|
|
|
|
|
|
|
|
|
left.cast (type_boolean);
|
|
|
|
|
right.cast (type_boolean);
|
|
|
|
|
@@ -214,10 +214,10 @@ bool Variant::operator|| (const Variant& other) const
|
|
|
|
|
Variant right (other);
|
|
|
|
|
|
|
|
|
|
if (left._type == type_string)
|
|
|
|
|
Lexer::dequote (left._string);
|
|
|
|
|
Lexer2::dequote (left._string);
|
|
|
|
|
|
|
|
|
|
if (right._type == type_string)
|
|
|
|
|
Lexer::dequote (right._string);
|
|
|
|
|
Lexer2::dequote (right._string);
|
|
|
|
|
|
|
|
|
|
left.cast (type_boolean);
|
|
|
|
|
right.cast (type_boolean);
|
|
|
|
|
@@ -232,10 +232,10 @@ bool Variant::operator_xor (const Variant& other) const
|
|
|
|
|
Variant right (other);
|
|
|
|
|
|
|
|
|
|
if (left._type == type_string)
|
|
|
|
|
Lexer::dequote (left._string);
|
|
|
|
|
Lexer2::dequote (left._string);
|
|
|
|
|
|
|
|
|
|
if (right._type == type_string)
|
|
|
|
|
Lexer::dequote (right._string);
|
|
|
|
|
Lexer2::dequote (right._string);
|
|
|
|
|
|
|
|
|
|
left.cast (type_boolean);
|
|
|
|
|
right.cast (type_boolean);
|
|
|
|
|
@@ -251,10 +251,10 @@ bool Variant::operator< (const Variant& other) const
|
|
|
|
|
Variant right (other);
|
|
|
|
|
|
|
|
|
|
if (left._type == type_string)
|
|
|
|
|
Lexer::dequote (left._string);
|
|
|
|
|
Lexer2::dequote (left._string);
|
|
|
|
|
|
|
|
|
|
if (right._type == type_string)
|
|
|
|
|
Lexer::dequote (right._string);
|
|
|
|
|
Lexer2::dequote (right._string);
|
|
|
|
|
|
|
|
|
|
switch (left._type)
|
|
|
|
|
{
|
|
|
|
|
@@ -396,10 +396,10 @@ bool Variant::operator<= (const Variant& other) const
|
|
|
|
|
Variant right (other);
|
|
|
|
|
|
|
|
|
|
if (left._type == type_string)
|
|
|
|
|
Lexer::dequote (left._string);
|
|
|
|
|
Lexer2::dequote (left._string);
|
|
|
|
|
|
|
|
|
|
if (right._type == type_string)
|
|
|
|
|
Lexer::dequote (right._string);
|
|
|
|
|
Lexer2::dequote (right._string);
|
|
|
|
|
|
|
|
|
|
switch (left._type)
|
|
|
|
|
{
|
|
|
|
|
@@ -542,10 +542,10 @@ bool Variant::operator> (const Variant& other) const
|
|
|
|
|
Variant right (other);
|
|
|
|
|
|
|
|
|
|
if (left._type == type_string)
|
|
|
|
|
Lexer::dequote (left._string);
|
|
|
|
|
Lexer2::dequote (left._string);
|
|
|
|
|
|
|
|
|
|
if (right._type == type_string)
|
|
|
|
|
Lexer::dequote (right._string);
|
|
|
|
|
Lexer2::dequote (right._string);
|
|
|
|
|
|
|
|
|
|
switch (left._type)
|
|
|
|
|
{
|
|
|
|
|
@@ -686,10 +686,10 @@ bool Variant::operator>= (const Variant& other) const
|
|
|
|
|
Variant right (other);
|
|
|
|
|
|
|
|
|
|
if (left._type == type_string)
|
|
|
|
|
Lexer::dequote (left._string);
|
|
|
|
|
Lexer2::dequote (left._string);
|
|
|
|
|
|
|
|
|
|
if (right._type == type_string)
|
|
|
|
|
Lexer::dequote (right._string);
|
|
|
|
|
Lexer2::dequote (right._string);
|
|
|
|
|
|
|
|
|
|
switch (left._type)
|
|
|
|
|
{
|
|
|
|
|
@@ -832,10 +832,10 @@ bool Variant::operator== (const Variant& other) const
|
|
|
|
|
Variant right (other);
|
|
|
|
|
|
|
|
|
|
if (left._type == type_string)
|
|
|
|
|
Lexer::dequote (left._string);
|
|
|
|
|
Lexer2::dequote (left._string);
|
|
|
|
|
|
|
|
|
|
if (right._type == type_string)
|
|
|
|
|
Lexer::dequote (right._string);
|
|
|
|
|
Lexer2::dequote (right._string);
|
|
|
|
|
|
|
|
|
|
switch (left._type)
|
|
|
|
|
{
|
|
|
|
|
@@ -962,16 +962,16 @@ bool Variant::operator_match (const Variant& other, const Task& task) const
|
|
|
|
|
Variant right (other);
|
|
|
|
|
|
|
|
|
|
if (left._type == type_string)
|
|
|
|
|
Lexer::dequote (left._string);
|
|
|
|
|
Lexer2::dequote (left._string);
|
|
|
|
|
|
|
|
|
|
if (right._type == type_string)
|
|
|
|
|
Lexer::dequote (right._string);
|
|
|
|
|
Lexer2::dequote (right._string);
|
|
|
|
|
|
|
|
|
|
left.cast (type_string);
|
|
|
|
|
right.cast (type_string);
|
|
|
|
|
|
|
|
|
|
std::string pattern = right._string;
|
|
|
|
|
Lexer::dequote (pattern);
|
|
|
|
|
Lexer2::dequote (pattern);
|
|
|
|
|
|
|
|
|
|
if (searchUsingRegex)
|
|
|
|
|
{
|
|
|
|
|
@@ -1032,10 +1032,10 @@ bool Variant::operator_partial (const Variant& other) const
|
|
|
|
|
Variant right (other);
|
|
|
|
|
|
|
|
|
|
if (left._type == type_string)
|
|
|
|
|
Lexer::dequote (left._string);
|
|
|
|
|
Lexer2::dequote (left._string);
|
|
|
|
|
|
|
|
|
|
if (right._type == type_string)
|
|
|
|
|
Lexer::dequote (right._string);
|
|
|
|
|
Lexer2::dequote (right._string);
|
|
|
|
|
|
|
|
|
|
switch (left._type)
|
|
|
|
|
{
|
|
|
|
|
@@ -1220,7 +1220,7 @@ bool Variant::operator_hastag (const Variant& other, const Task& task) const
|
|
|
|
|
{
|
|
|
|
|
Variant right (other);
|
|
|
|
|
right.cast (type_string);
|
|
|
|
|
Lexer::dequote (right._string);
|
|
|
|
|
Lexer2::dequote (right._string);
|
|
|
|
|
return task.hasTag (right._string);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -1236,7 +1236,7 @@ bool Variant::operator! () const
|
|
|
|
|
Variant left (*this);
|
|
|
|
|
|
|
|
|
|
if (left._type == type_string)
|
|
|
|
|
Lexer::dequote (left._string);
|
|
|
|
|
Lexer2::dequote (left._string);
|
|
|
|
|
|
|
|
|
|
left.cast (type_boolean);
|
|
|
|
|
return ! left._bool;
|
|
|
|
|
@@ -1401,7 +1401,7 @@ Variant& Variant::operator+= (const Variant& other)
|
|
|
|
|
Variant right (other);
|
|
|
|
|
|
|
|
|
|
if (right._type == type_string)
|
|
|
|
|
Lexer::dequote (right._string);
|
|
|
|
|
Lexer2::dequote (right._string);
|
|
|
|
|
|
|
|
|
|
switch (_type)
|
|
|
|
|
{
|
|
|
|
|
@@ -1513,7 +1513,7 @@ Variant& Variant::operator*= (const Variant& other)
|
|
|
|
|
Variant right (other);
|
|
|
|
|
|
|
|
|
|
if (right._type == type_string)
|
|
|
|
|
Lexer::dequote (right._string);
|
|
|
|
|
Lexer2::dequote (right._string);
|
|
|
|
|
|
|
|
|
|
switch (_type)
|
|
|
|
|
{
|
|
|
|
|
@@ -1970,7 +1970,7 @@ Variant::operator std::string () const
|
|
|
|
|
void Variant::sqrt ()
|
|
|
|
|
{
|
|
|
|
|
if (_type == type_string)
|
|
|
|
|
Lexer::dequote (_string);
|
|
|
|
|
Lexer2::dequote (_string);
|
|
|
|
|
|
|
|
|
|
cast (type_real);
|
|
|
|
|
if (_real < 0.0)
|
|
|
|
|
@@ -2046,7 +2046,7 @@ void Variant::cast (const enum type new_type)
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case type_string:
|
|
|
|
|
Lexer::dequote (_string);
|
|
|
|
|
Lexer2::dequote (_string);
|
|
|
|
|
switch (new_type)
|
|
|
|
|
{
|
|
|
|
|
case type_unknown: break;
|
|
|
|
|
|