Commit 6a8b096a by Aaron Leung

Merged the other node comparison functions into the refactor.

parent 11a8906f
...@@ -65,6 +65,9 @@ namespace Sass { ...@@ -65,6 +65,9 @@ namespace Sass {
return false; return false;
} }
bool Node::operator!=(Node rhs) const
{ return !(*this == rhs); }
bool Node::operator<(Node rhs) const bool Node::operator<(Node rhs) const
{ {
Type lhs_type = type(); Type lhs_type = type();
...@@ -86,6 +89,15 @@ namespace Sass { ...@@ -86,6 +89,15 @@ namespace Sass {
throw Error(Error::evaluation, line_number(), file_name(), "incomparable types"); throw Error(Error::evaluation, line_number(), file_name(), "incomparable types");
} }
} }
bool Node::operator<=(Node rhs) const
{ return *this < rhs || *this == rhs; }
bool Node::operator>(Node rhs) const
{ return !(*this <= rhs); }
bool Node::operator>=(Node rhs) const
{ return !(*this < rhs); }
// ------------------------------------------------------------------------ // ------------------------------------------------------------------------
......
...@@ -180,7 +180,11 @@ namespace Sass { ...@@ -180,7 +180,11 @@ namespace Sass {
Token unit() const; Token unit() const;
bool operator==(Node rhs) const; bool operator==(Node rhs) const;
bool operator!=(Node rhs) const;
bool operator<(Node rhs) const; bool operator<(Node rhs) const;
bool operator<=(Node rhs) const;
bool operator>(Node rhs) const;
bool operator>=(Node rhs) const;
}; };
struct Node_Impl { struct Node_Impl {
......
...@@ -39,5 +39,8 @@ int main() ...@@ -39,5 +39,8 @@ int main()
cout << (num3[2] < num2[2]) << endl; cout << (num3[2] < num2[2]) << endl;
cout << (num2[3] < num3[3]) << endl << endl; cout << (num2[3] < num3[3]) << endl << endl;
cout << (num2[2] >= num3[2]) << endl;
cout << (num2[3] != num3[3]) << endl << endl;
return 0; return 0;
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment