[cfe-dev] Headers from C++ standard
Kim Gräsman via cfe-dev
cfe-dev at lists.llvm.org
Mon May 9 08:51:20 PDT 2016
Hi Eric,
On Mon, May 9, 2016 at 3:30 PM, Eric Liu via cfe-dev
<cfe-dev at lists.llvm.org> wrote:
>
> As an alternative, we are thinking about parsing header synopses from C++
> standard. So, we are wondering if there are existing syntax-correct header
> synopses in the form of C++ header files somewhere that we can use. If not,
> Manual(@klimek) suggests that maybe we could have the header synopses as C++
> header files and have the standard draft includes them so that syntax can be
> easily checked, and we can conveniently parse the synopses too.
We've had similar plans for IWYU, and I think we eventually parsed the
TeX source from https://github.com/cplusplus/draft/tree/master/source
with a simple shell script.
I didn't do this myself, but I found a couple of examples in our source here:
// These headers are defined in C++14 [headers]p3. You can get them with
// $ sed -n '/begin{floattable}.*{tab:cpp.c.headers}/,/end{floattable}/p'
lib-intro.tex | grep tcode | perl -nle 'm/tcode{<c(.*)>}/ && print qq@
{ "<$1.h>", kPublic, "<c$1>", kPublic },@' | sort
// on https://github.com/cplusplus/draft/blob/master/source/lib-intro.tex
// These headers are defined in C++14 [headers]p2. You can get them with
// $ sed -n '/begin{floattable}.*{tab:cpp.library.headers}/,/end{floattable}/p'
lib-intro.tex | grep tcode | perl -nle 'm/tcode{(.*)}/ && print qq@
"$1",@' | sort
// on https://github.com/cplusplus/draft/blob/master/source/lib-intro.tex
(from https://github.com/include-what-you-use/include-what-you-use/blob/master/iwyu_include_picker.cc)
Assuming you want this to be portable I'm sure you can do something
similar in C++ relatively easily.
FWIW,
- Kim
More information about the cfe-dev
mailing list