Switch kernel header parsing to python libclang
Replace the tokenizer in cpp.py with libclang.
Bug: 18937958
Change-Id: I27630904c6d2849418cd5ca3d3c612ec3078686d
diff --git a/libc/kernel/tools/clean_header.py b/libc/kernel/tools/clean_header.py
index ebebe80..0e0ed76 100755
--- a/libc/kernel/tools/clean_header.py
+++ b/libc/kernel/tools/clean_header.py
@@ -60,12 +60,7 @@
# using them anyway.
#
#
-# 3. Whitespace cleanup:
-#
-# The final pass removes any comments and empty lines from the final headers.
-#
-#
-# 4. Add a standard disclaimer:
+# 3. Add a standard disclaimer:
#
# The message:
#
@@ -141,8 +136,9 @@
# now, let's parse the file
#
- blocks = cpp.BlockParser().parseFile(path)
- if not blocks:
+ parser = cpp.BlockParser()
+ blocks = parser.parseFile(path)
+ if not parser.parsed:
sys.stderr.write( "error: can't parse '%s'" % path )
sys.exit(1)
@@ -157,9 +153,7 @@
blocks.optimizeIf01()
blocks.removeVarsAndFuncs( statics )
blocks.replaceTokens( kernel_token_replacements )
- blocks.removeComments()
blocks.removeMacroDefines( kernel_ignored_macros )
- blocks.removeWhiteSpace()
out = StringOutput()
out.write( kernel_disclaimer )