From 648aa3b32fb75ced3a02bc32900901c4f33fb8be Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Tue, 31 Mar 2015 23:39:10 +0200 Subject: Add equals and smaller than operator to SyntaxDescriptor (for std::sort or the use in std::set) --- src/core/model/Syntax.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/core/model/Syntax.cpp') diff --git a/src/core/model/Syntax.cpp b/src/core/model/Syntax.cpp index a97acf7..0e92ef5 100644 --- a/src/core/model/Syntax.cpp +++ b/src/core/model/Syntax.cpp @@ -32,6 +32,22 @@ bool TokenDescriptor::isValid() const /* Class SyntaxDescriptor */ +bool operator==(const SyntaxDescriptor &o1, const SyntaxDescriptor &o2) +{ + return (o1.depth == o2.depth) && (o1.open == o2.open) && + (o1.close == o2.close) && (o1.shortForm == o2.shortForm) && + (o1.descriptor == o2.descriptor); +} + +bool operator<(const SyntaxDescriptor &o1, const SyntaxDescriptor &o2) +{ + return (o1.depth < o2.depth) || + (o1.isFieldDescriptor() && !o2.isFieldDescriptor()) || + (o1.open < o2.open) || (o1.close < o2.close) || + (o1.shortForm < o2.shortForm) || + (o1.descriptor.get() < o2.descriptor.get()); +} + bool SyntaxDescriptor::isAnnotation() const { return descriptor->isa(&RttiTypes::AnnotationClass); -- cgit v1.2.3