Add a method for replacing tokens in the preprocessed headers

Change-Id: I14cf6337945560b012732ae0fe7a247074810678
diff --git a/libc/kernel/tools/cpp.py b/libc/kernel/tools/cpp.py
index 4b4bd38..8828a5d 100644
--- a/libc/kernel/tools/cpp.py
+++ b/libc/kernel/tools/cpp.py
@@ -1863,6 +1863,16 @@
         tokens = tokens[:-1]  # remove trailing tokLN
         self.blocks = [ Block(tokens) ] + self.blocks
 
+    def replaceTokens(self,replacements=dict()):
+        """replace tokens according to the given dict
+           """
+        for b in self.blocks:
+            if not b.isDirective():
+                for tok in b.tokens:
+                    if tok.id == tokIDENT:
+                        if tok.value in replacements:
+                            tok.value = replacements[tok.value]
+
 class BlockParser:
     """a class used to convert an input source file into a BlockList object"""