summaryrefslogtreecommitdiff
path: root/cpp/include/Slice/Parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/include/Slice/Parser.h')
-rw-r--r--cpp/include/Slice/Parser.h22
1 files changed, 17 insertions, 5 deletions
diff --git a/cpp/include/Slice/Parser.h b/cpp/include/Slice/Parser.h
index 63f40f00909..98a1b7cf577 100644
--- a/cpp/include/Slice/Parser.h
+++ b/cpp/include/Slice/Parser.h
@@ -53,6 +53,7 @@ class Dictionary;
class Enum;
class Enumerator;
class Unit;
+class CICompare;
typedef ::IceUtil::Handle<GrammarBase> GrammarBasePtr;
typedef ::IceUtil::Handle<SyntaxTreeBase> SyntaxTreeBasePtr;
@@ -114,9 +115,6 @@ typedef std::list<ContainedPtr> ContainedList;
typedef std::list<ModulePtr> ModuleList;
typedef std::list<ConstructedPtr> ConstructedList;
typedef std::list<ClassDefPtr> ClassList;
-typedef std::list<ClassList> GraphPartitionList; // TODO: ML: Can't this be a private typedef for Container?
-typedef std::set<std::string> StringSet;
-typedef std::list<StringSet> StringSetList;
typedef std::list<ExceptionPtr> ExceptionList;
typedef std::list<StructPtr> StructList;
typedef std::list<SequencePtr> SequenceList;
@@ -331,12 +329,15 @@ protected:
private:
+ typedef std::list<ClassList> GraphPartitionList;
+ typedef std::list<StringList> StringPartitionList;
+
bool isInList(const GraphPartitionList&, const ClassDefPtr) const;
void addPartition(GraphPartitionList&,
GraphPartitionList::reverse_iterator,
const ClassDefPtr) const;
- StringSetList toStringSetList(const GraphPartitionList&) const;
- StringList unionOfAllPairIntersections(const StringSetList&) const;
+ StringPartitionList toStringPartitionList(const GraphPartitionList&) const;
+ void checkPairIntersections(const StringPartitionList&, const std::string&) const;
};
// ----------------------------------------------------------------------
@@ -732,6 +733,17 @@ private:
extern SLICE_API Unit* unit; // The current parser for bison/flex
+// ----------------------------------------------------------------------
+// CICompare -- function object to do case-insensitive string comparison.
+// ----------------------------------------------------------------------
+
+class CICompare : public std::binary_function<std::string, std::string, bool>
+{
+public:
+
+ bool operator()(const std::string&, const std::string&) const;
+};
+
}
#endif