View difference between Paste ID: XPBsSVup and
SHOW:
|
|
- or go back to the newest paste.
1 | - | |
1 | + | import clang.c.index; |
2 | import std.string; | |
3 | ||
4 | extern (C) int printf(in char*, ...); | |
5 | ||
6 | immutable(char*)* strToCArray (string[] arr) | |
7 | { | |
8 | if (!arr) | |
9 | return null; | |
10 | ||
11 | immutable(char*)[] cArr; | |
12 | cArr.reserve(arr.length); | |
13 | ||
14 | foreach (str ; arr) | |
15 | cArr ~= str.toStringz; | |
16 | ||
17 | return cArr.ptr; | |
18 | } | |
19 | ||
20 | int main (string[] args) | |
21 | { | |
22 | CXIndex Index = clang_createIndex(0, 0); | |
23 | CXTranslationUnit TU = clang_parseTranslationUnit(Index, null, strToCArray(args), cast(uint) args.length, null, 0, CXTranslationUnit_Flags.CXTranslationUnit_None); | |
24 | ||
25 | for (uint I = 0, N = clang_getNumDiagnostics(TU); I != N; ++I) | |
26 | { | |
27 | CXDiagnostic Diag = clang_getDiagnostic(TU, I); | |
28 | CXString String = clang_formatDiagnostic(Diag, clang_defaultDiagnosticDisplayOptions()); | |
29 | printf("%s\n", clang_getCString(String)); | |
30 | ||
31 | clang_disposeString(String); | |
32 | } | |
33 | ||
34 | clang_disposeTranslationUnit(TU); | |
35 | clang_disposeIndex(Index); | |
36 | ||
37 | return 0; | |
38 | } |