function CStringLessThanOperator() {}
CStringLessThanOperator.prototype =
{
	cardinality : 2,
	invoke : function (op1, op2) { return(String(op1) < String(op2)); }
};

function CStringLessThanEqualOperator() {}
CStringLessThanEqualOperator.prototype =
{
	cardinality : 2,
	invoke : function (op1, op2) { return(String(op1) <= String(op2)); }
};

function CStringGreaterThanOperator() {}
CStringGreaterThanOperator.prototype =
{
	cardinality : 2,
	invoke : function (op1, op2) { return(String(op1) > String(op2)); }
};

function CStringGreaterThanEqualOperator() {}
CStringGreaterThanEqualOperator.prototype =
{
	cardinality : 2,
	invoke : function (op1, op2) { return(String(op1) >= String(op2)); }
};

function CStringEqualityOperator() {}
CStringEqualityOperator.prototype =
{
	cardinality : 2,
	invoke : function (op1, op2) { return(String(op1) == String(op2)); }
};

function CConcatenationOperator() {}
CConcatenationOperator.prototype =
{
	cardinality : 2,
	invoke : function (op1, op2) { return(String(op1) + String(op2)); }
};

function CRegExpOperator() {}
CRegExpOperator.prototype =
{
	cardinality : 2,
	invoke : function (op1, op2) { return(String(op1).search(eval(op2))); }
};

