summaryrefslogtreecommitdiffstats
path: root/include/clang/Basic/TokenKinds.h
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2007-10-23 22:18:37 +0000
committerTed Kremenek <kremenek@apple.com>2007-10-23 22:18:37 +0000
commitc637e6b7afeebc6b4f751e4373715b6a8ea77272 (patch)
treeaf7d80893b0a99bd38fad34dc0a5019436b557f5 /include/clang/Basic/TokenKinds.h
parentb9b00ad6260b17c18195ff4a54c8b3abbf33fcc9 (diff)
Implemented serialization for IdentifierInfo and IdentifierTable.
Updated serialization test code in the driver to test serialization of these types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43266 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Basic/TokenKinds.h')
-rw-r--r--include/clang/Basic/TokenKinds.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/include/clang/Basic/TokenKinds.h b/include/clang/Basic/TokenKinds.h
index e51f0c7f8a..2e213bddf1 100644
--- a/include/clang/Basic/TokenKinds.h
+++ b/include/clang/Basic/TokenKinds.h
@@ -48,4 +48,33 @@ const char *getTokenName(enum TokenKind Kind);
} // end namespace tok
} // end namespace clang
+//===----------------------------------------------------------------------===//
+// Serialization traits.
+//===----------------------------------------------------------------------===//
+
+namespace llvm {
+ template <typename T> struct SerializeTrait;
+ class Serializer;
+ class Deserializer;
+
+template<>
+struct SerializeTrait<clang::tok::TokenKind> {
+ static void Serialize(llvm::Serializer& S, clang::tok::TokenKind X);
+ static void Deserialize(llvm::Deserializer& D, clang::tok::TokenKind& X);
+};
+
+template<>
+struct SerializeTrait<clang::tok::PPKeywordKind> {
+ static void Serialize(llvm::Serializer& S, clang::tok::PPKeywordKind X);
+ static void Deserialize(llvm::Deserializer& D, clang::tok::PPKeywordKind& X);
+};
+
+template<>
+struct SerializeTrait<clang::tok::ObjCKeywordKind> {
+ static void Serialize(llvm::Serializer& S, clang::tok::ObjCKeywordKind X);
+ static void Deserialize(llvm::Deserializer& D, clang::tok::ObjCKeywordKind& X);
+};
+
+} // end namespace llvm
+
#endif