blob: caf2b2cf8b4c7ecb92f812cef5194175b3bde77c [file] [log] [blame]
#!/usr/bin/env python
#===----------------------------------------------------------------------===##
#
# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
#
#===----------------------------------------------------------------------===##
# This script reads lines from standard input and looks for the names of public C++ headers.
# Specifically, it looks for lines of the form 'c++/v1/header' where 'header' is the name
# of a public C++ header, excluding C compatibility headers.
import os
import re
import sys
headers = []
for line in sys.stdin.readlines():
match = re.search('c\+\+/v[0-9]+/(.+)', line)
if not match:
continue
header = match.group(1)
if os.path.basename(header).endswith('.h'): # Skip C headers
continue
if os.path.basename(header).startswith('__'): # Skip internal headers
continue
headers.append(header)
print('\n'.join(sorted(set(headers))))