summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmilio Cobos Álvarez <emilio@crisal.io>2016-12-13 16:35:28 +0100
committerEmilio Cobos Álvarez <emilio@crisal.io>2016-12-13 16:38:04 +0100
commit6e712b0b336b5c62f2d0d3dd49853b0b9e8295fb (patch)
tree747ad756a266f138a3e899490b85ee4d43432aa6
parenta0ace87c8a36ce0fdc11fe71b610689e9cf88bf0 (diff)
Use clang-sys bindings instead of ours.
I plan to use a dynamically loaded clang-sys library to remove the llvm-stable feature. This is part of the work.
-rw-r--r--libbindgen/Cargo.toml2
-rw-r--r--libbindgen/src/clang.rs147
-rw-r--r--libbindgen/src/clangll.rs1466
-rw-r--r--libbindgen/src/ir/annotations.rs2
-rw-r--r--libbindgen/src/ir/comp.rs6
-rw-r--r--libbindgen/src/ir/context.rs14
-rw-r--r--libbindgen/src/ir/enum_ty.rs2
-rw-r--r--libbindgen/src/ir/function.rs12
-rw-r--r--libbindgen/src/ir/item.rs10
-rw-r--r--libbindgen/src/ir/module.rs2
-rw-r--r--libbindgen/src/ir/ty.rs2
-rw-r--r--libbindgen/src/ir/var.rs4
-rw-r--r--libbindgen/src/lib.rs10
13 files changed, 104 insertions, 1575 deletions
diff --git a/libbindgen/Cargo.toml b/libbindgen/Cargo.toml
index 47e8b282..1c1b15c3 100644
--- a/libbindgen/Cargo.toml
+++ b/libbindgen/Cargo.toml
@@ -25,13 +25,13 @@ quasi_codegen = "0.26"
[dependencies]
cfg-if = "0.1.0"
-clang-sys = "0.11.1"
lazy_static = "0.1.*"
libc = "0.2"
rustc-serialize = "0.3.19"
syntex_syntax = "0.50"
regex = "0.1"
cexpr = "0.2"
+clang-sys = { version = "0.11.1", features = ["gte_clang_3_6", "gte_clang_3_7", "gte_clang_3_8", "gte_clang_3_9"] }
[dependencies.aster]
features = ["with-syntex"]
diff --git a/libbindgen/src/clang.rs b/libbindgen/src/clang.rs
index a81a8cfb..ad311835 100644
--- a/libbindgen/src/clang.rs
+++ b/libbindgen/src/clang.rs
@@ -1,11 +1,11 @@
//! A higher level Clang API built on top of the generated bindings in the
-//! `clangll` module.
+//! `clang_sys` module.
#![allow(non_upper_case_globals, dead_code)]
use cexpr;
-use clangll::*;
+use clang_sys::*;
use std::{mem, ptr, slice};
use std::ffi::{CStr, CString};
use std::fmt;
@@ -38,7 +38,7 @@ impl Cursor {
///
/// The USR can be used to compare entities across translation units.
pub fn usr(&self) -> Option<String> {
- let s: String = unsafe { clang_getCursorUSR(self.x) }.into();
+ let s = unsafe { cxstring_into_string(clang_getCursorUSR(self.x)) };
if s.is_empty() { None } else { Some(s) }
}
@@ -56,7 +56,7 @@ impl Cursor {
/// Get this cursor's referent's spelling.
pub fn spelling(&self) -> String {
- unsafe { clang_getCursorSpelling(self.x).into() }
+ unsafe { cxstring_into_string(clang_getCursorSpelling(self.x)) }
}
/// Get this cursor's referent's display name.
@@ -64,12 +64,12 @@ impl Cursor {
/// This is not necessarily a valid identifier. It includes extra
/// information, such as parameters for a function, etc.
pub fn display_name(&self) -> String {
- unsafe { clang_getCursorDisplayName(self.x).into() }
+ unsafe { cxstring_into_string(clang_getCursorDisplayName(self.x)) }
}
/// Get the mangled name of this cursor's referent.
pub fn mangling(&self) -> String {
- unsafe { clang_Cursor_getMangling(self.x).into() }
+ unsafe { cxstring_into_string(clang_Cursor_getMangling(self.x)) }
}
/// Get the `Cursor` for this cursor's referent's lexical parent.
@@ -186,7 +186,7 @@ impl Cursor {
}
/// Get the kind of referent this cursor is pointing to.
- pub fn kind(&self) -> Enum_CXCursorKind {
+ pub fn kind(&self) -> CXCursorKind {
unsafe { clang_getCursorKind(self.x) }
}
@@ -238,8 +238,9 @@ impl Cursor {
/// Get the raw declaration comment for this referent, if one exists.
pub fn raw_comment(&self) -> Option<String> {
- let s: String =
- unsafe { clang_Cursor_getRawCommentText(self.x).into() };
+ let s = unsafe {
+ cxstring_into_string(clang_Cursor_getRawCommentText(self.x))
+ };
if s.is_empty() { None } else { Some(s) }
}
@@ -312,7 +313,7 @@ impl Cursor {
/// Assuming that this cursor's referent is a template declaration, get the
/// kind of cursor that would be generated for its specializations.
- pub fn template_kind(&self) -> Enum_CXCursorKind {
+ pub fn template_kind(&self) -> CXCursorKind {
unsafe { clang_getTemplateCursorKind(self.x) }
}
@@ -320,11 +321,11 @@ impl Cursor {
///
/// Call the given function on each AST node traversed.
pub fn visit<Visitor>(&self, mut visitor: Visitor)
- where Visitor: FnMut(Cursor) -> Enum_CXChildVisitResult,
+ where Visitor: FnMut(Cursor) -> CXChildVisitResult,
{
unsafe {
clang_visitChildren(self.x,
- Some(visit_children::<Visitor>),
+ visit_children::<Visitor>,
mem::transmute(&mut visitor));
}
}
@@ -332,7 +333,7 @@ impl Cursor {
/// Returns whether the given location contains a cursor with the given
/// kind in the first level of nesting underneath (doesn't look
/// recursively).
- pub fn contains_cursor(&self, kind: Enum_CXCursorKind) -> bool {
+ pub fn contains_cursor(&self, kind: CXCursorKind) -> bool {
let mut found = false;
self.visit(|c| {
@@ -422,12 +423,12 @@ impl Cursor {
/// Get the linkage kind for this cursor's referent.
///
/// This only applies to functions and variables.
- pub fn linkage(&self) -> Enum_CXLinkageKind {
+ pub fn linkage(&self) -> CXLinkageKind {
unsafe { clang_getCursorLinkage(self.x) }
}
/// Get the visibility of this cursor's referent.
- pub fn visibility(&self) -> Enum_CXVisibilityKind {
+ pub fn visibility(&self) -> CXVisibilityKind {
unsafe { clang_getCursorVisibility(self.x) }
}
@@ -469,7 +470,7 @@ impl Cursor {
}
/// Get the access specifier for this cursor's referent.
- pub fn access_specifier(&self) -> Enum_CX_CXXAccessSpecifier {
+ pub fn access_specifier(&self) -> CX_CXXAccessSpecifier {
unsafe { clang_getCXXAccessSpecifier(self.x) }
}
@@ -508,8 +509,8 @@ impl Cursor {
extern "C" fn visit_children<Visitor>(cur: CXCursor,
_parent: CXCursor,
data: CXClientData)
- -> Enum_CXChildVisitResult
- where Visitor: FnMut(Cursor) -> Enum_CXChildVisitResult,
+ -> CXChildVisitResult
+ where Visitor: FnMut(Cursor) -> CXChildVisitResult,
{
let func: &mut Visitor = unsafe { mem::transmute(data) };
let child = Cursor {
@@ -534,7 +535,7 @@ impl Hash for Cursor {
}
/// The type of a node in clang's AST.
-#[derive(Clone, Hash)]
+#[derive(Clone)]
pub struct Type {
x: CXType,
}
@@ -579,6 +580,11 @@ pub enum LayoutError {
impl ::std::convert::From<i32> for LayoutError {
fn from(val: i32) -> Self {
use self::LayoutError::*;
+ let val = match CXTypeLayoutError::from_raw(val) {
+ Some(val) => val,
+ None => return Unknown,
+ };
+
match val {
CXTypeLayoutError_Invalid => Invalid,
CXTypeLayoutError_Incomplete => Incomplete,
@@ -592,7 +598,7 @@ impl ::std::convert::From<i32> for LayoutError {
impl Type {
/// Get this type's kind.
- pub fn kind(&self) -> Enum_CXTypeKind {
+ pub fn kind(&self) -> CXTypeKind {
self.x.kind
}
@@ -607,7 +613,9 @@ impl Type {
/// Get a raw display name for this type.
pub fn spelling(&self) -> String {
- unsafe { clang_getTypeSpelling(self.x).into() }
+ unsafe {
+ cxstring_into_string(clang_getTypeSpelling(self.x))
+ }
}
/// Is this type const qualified?
@@ -748,7 +756,7 @@ impl Type {
/// Given that this type is a function type, get its calling convention. If
/// this is not a function type, `CXCallingConv_Invalid` is returned.
- pub fn call_conv(&self) -> Enum_CXCallingConv {
+ pub fn call_conv(&self) -> CXCallingConv {
unsafe { clang_getFunctionTypeCallingConv(self.x) }
}
@@ -798,7 +806,7 @@ impl Iterator for TypeTemplateArgIterator {
type Item = Type;
fn next(&mut self) -> Option<Type> {
if self.index < self.length {
- let idx = self.index as c_int;
+ let idx = self.index as c_uint;
self.index += 1;
Some(Type {
x: unsafe { clang_Type_getTemplateArgumentAsType(self.x, idx) },
@@ -827,7 +835,7 @@ impl SourceLocation {
/// location.
pub fn location(&self) -> (File, usize, usize, usize) {
unsafe {
- let mut file = ptr::null_mut();
+ let mut file = mem::zeroed();
let mut line = 0;
let mut col = 0;
let mut off = 0;
@@ -866,7 +874,7 @@ pub struct Comment {
impl Comment {
/// What kind of comment is this?
- pub fn kind(&self) -> Enum_CXCommentKind {
+ pub fn kind(&self) -> CXCommentKind {
unsafe { clang_Comment_getKind(self.x) }
}
@@ -882,7 +890,9 @@ impl Comment {
/// Given that this comment is the start or end of an HTML tag, get its tag
/// name.
pub fn get_tag_name(&self) -> String {
- unsafe { clang_HTMLTagComment_getTagName(self.x).into() }
+ unsafe {
+ cxstring_into_string(clang_HTMLTagComment_getTagName(self.x))
+ }
}
/// Given that this comment is an HTML start tag, get its attributes.
@@ -940,10 +950,12 @@ impl Iterator for CommentAttributesIterator {
self.index += 1;
Some(CommentAttribute {
name: unsafe {
- clang_HTMLStartTag_getAttrName(self.x, idx).into()
+ cxstring_into_string(
+ clang_HTMLStartTag_getAttrName(self.x, idx))
},
value: unsafe {
- clang_HTMLStartTag_getAttrValue(self.x, idx).into()
+ cxstring_into_string(
+ clang_HTMLStartTag_getAttrValue(self.x, idx))
},
})
} else {
@@ -963,21 +975,21 @@ impl File {
if self.x.is_null() {
return None;
}
- unsafe { Some(clang_getFileName(self.x).into()) }
+ Some(unsafe {
+ cxstring_into_string(clang_getFileName(self.x))
+ })
}
}
-impl Into<String> for CXString {
- fn into(self) -> String {
- if self.data.is_null() {
- return "".to_owned();
- }
- unsafe {
- let c_str = CStr::from_ptr(clang_getCString(self) as *const _);
- let ret = c_str.to_string_lossy().into_owned();
- clang_disposeString(self);
- ret
- }
+fn cxstring_into_string(s: CXString) -> String {
+ if s.data.is_null() {
+ return "".to_owned();
+ }
+ unsafe {
+ let c_str = CStr::from_ptr(clang_getCString(s) as *const _);
+ let ret = c_str.to_string_lossy().into_owned();
+ clang_disposeString(s);
+ ret
}
}
@@ -1043,14 +1055,14 @@ impl TranslationUnit {
file: &str,
cmd_args: &[String],
unsaved: &[UnsavedFile],
- opts: ::libc::c_uint)
+ opts: CXTranslationUnit_Flags)
-> Option<TranslationUnit> {
let fname = CString::new(file).unwrap();
let _c_args: Vec<CString> =
cmd_args.iter().map(|s| CString::new(s.clone()).unwrap()).collect();
let c_args: Vec<*const c_char> =
_c_args.iter().map(|s| s.as_ptr()).collect();
- let mut c_unsaved: Vec<Struct_CXUnsavedFile> =
+ let mut c_unsaved: Vec<CXUnsavedFile> =
unsaved.iter().map(|f| f.x).collect();
let tu = unsafe {
clang_parseTranslationUnit(ix.x,
@@ -1070,20 +1082,6 @@ impl TranslationUnit {
}
}
- /// Reparse this translation unit, maybe because the file changed on disk or
- /// something like that.
- pub fn reparse(&self, unsaved: &[UnsavedFile], opts: usize) -> bool {
- let mut c_unsaved: Vec<Struct_CXUnsavedFile> =
- unsaved.iter().map(|f| f.x).collect();
-
- unsafe {
- clang_reparseTranslationUnit(self.x,
- c_unsaved.len() as c_uint,
- c_unsaved.as_mut_ptr(),
- opts as c_uint) == 0
- }
- }
-
/// Get the Clang diagnostic information associated with this translation
/// unit.
pub fn diags(&self) -> Vec<Diagnostic> {
@@ -1130,7 +1128,8 @@ impl TranslationUnit {
num_tokens as usize);
for &token in token_array.iter() {
let kind = clang_getTokenKind(token);
- let spelling = clang_getTokenSpelling(self.x, token).into();
+ let spelling = cxstring_into_string(
+ clang_getTokenSpelling(self.x, token));
tokens.push(Token {
kind: kind,
@@ -1187,7 +1186,7 @@ impl TranslationUnit {
// NB: cexpr is not too happy about comments inside
// expressions, so we strip them down here.
CXToken_Comment => return None,
- _ => panic!("Found unexpected token kind: {}", token.kind),
+ _ => panic!("Found unexpected token kind: {:?}", token.kind),
};
Some(token::Token {
@@ -1214,19 +1213,17 @@ pub struct Diagnostic {
}
impl Diagnostic {
- /// Get the default diagnostic display option bit flags.
- pub fn default_opts() -> usize {
- unsafe { clang_defaultDiagnosticDisplayOptions() as usize }
- }
-
/// Format this diagnostic message as a string, using the given option bit
/// flags.
- pub fn format(&self, opts: usize) -> String {
- unsafe { clang_formatDiagnostic(self.x, opts as c_uint).into() }
+ pub fn format(&self) -> String {
+ unsafe {
+ let opts = clang_defaultDiagnosticDisplayOptions();
+ cxstring_into_string(
+ clang_formatDiagnostic(self.x, opts)) }
}
/// What is the severity of this diagnostic message?
- pub fn severity(&self) -> Enum_CXDiagnosticSeverity {
+ pub fn severity(&self) -> CXDiagnosticSeverity {
unsafe { clang_getDiagnosticSeverity(self.x) }
}
}
@@ -1242,7 +1239,7 @@ impl Drop for Diagnostic {
/// A file which has not been saved to disk.
pub struct UnsavedFile {
- x: Struct_CXUnsavedFile,
+ x: CXUnsavedFile,
name: CString,
contents: CString,
}
@@ -1252,7 +1249,7 @@ impl UnsavedFile {
pub fn new(name: &str, contents: &str) -> UnsavedFile {
let name = CString::new(name).unwrap();
let contents = CString::new(contents).unwrap();
- let x = Struct_CXUnsavedFile {
+ let x = CXUnsavedFile {
Filename: name.as_ptr(),
Contents: contents.as_ptr(),
Length: contents.as_bytes().len() as c_ulong,
@@ -1266,17 +1263,17 @@ impl UnsavedFile {
}
/// Convert a cursor kind into a static string.
-pub fn kind_to_str(x: Enum_CXCursorKind) -> String {
- unsafe { clang_getCursorKindSpelling(x) }.into()
+pub fn kind_to_str(x: CXCursorKind) -> String {
+ unsafe { cxstring_into_string(clang_getCursorKindSpelling(x)) }
}
/// Convert a type kind to a static string.
-pub fn type_to_str(x: Enum_CXTypeKind) -> String {
- unsafe { clang_getTypeKindSpelling(x).into() }
+pub fn type_to_str(x: CXTypeKind) -> String {
+ unsafe { cxstring_into_string(clang_getTypeKindSpelling(x)) }
}
/// Dump the Clang AST to stdout for debugging purposes.
-pub fn ast_dump(c: &Cursor, depth: isize) -> Enum_CXVisitorResult {
+pub fn ast_dump(c: &Cursor, depth: isize) -> CXChildVisitResult {
fn print_indent(depth: isize, s: &str) {
for _ in 0..depth {
print!("\t");
@@ -1300,7 +1297,7 @@ pub fn ast_dump(c: &Cursor, depth: isize) -> Enum_CXVisitorResult {
/// Try to extract the clang version to a string
pub fn extract_clang_version() -> String {
- unsafe { clang_getClangVersion().into() }
+ unsafe { cxstring_into_string(clang_getClangVersion()) }
}
/// A wrapper for the result of evaluating an expression.
@@ -1357,7 +1354,7 @@ impl EvalResult {
})
}
- fn kind(&self) -> Enum_CXEvalResultKind {
+ fn kind(&self) -> CXEvalResultKind {
unsafe { clang_EvalResult_getKind(self.x) }
}
diff --git a/libbindgen/src/clangll.rs b/libbindgen/src/clangll.rs
deleted file mode 100644
index e37baf25..00000000
--- a/libbindgen/src/clangll.rs
+++ /dev/null
@@ -1,1466 +0,0 @@
-/* automatically generated by rust-bindgen */
-
-#![allow(non_camel_case_types)]
-#![allow(dead_code)]
-#![allow(unused_attributes)]
-#![allow(non_snake_case)]
-#![allow(non_upper_case_globals)]
-#![cfg_attr(rustfmt, rustfmt_skip)]
-
-use ::std::os::raw::{c_char, c_int, c_long, c_longlong, c_uint, c_ulong, c_ulonglong, c_void};
-
-#[cfg(not(feature = "llvm_stable"))]
-use std::os::raw::c_double;
-
-
-pub type CXEvalResult = *mut c_void;
-pub type Enum_CXEvalResultKind = c_uint;
-
-pub const CXEval_Int: c_uint = 1;
-pub const CXEval_Float: c_uint = 2;
-pub const CXEval_ObjCStrLiteral: c_uint = 3;
-pub const CXEval_StrLiteral: c_uint = 4;
-pub const CXEval_CFStr: c_uint = 5;
-pub const CXEval_Other: c_uint = 6;
-pub const CXEval_UnExposed: c_uint = 0;
-
-pub type ptrdiff_t = c_long;
-pub type size_t = c_ulong;
-pub type wchar_t = c_int;
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXString {
- pub data: *const c_void,
- pub private_flags: c_uint,
-}
-pub type CXIndex = *mut c_void;
-pub enum Struct_CXTranslationUnitImpl { }
-pub type CXTranslationUnit = *mut Struct_CXTranslationUnitImpl;
-pub type CXClientData = *mut c_void;
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct Struct_CXUnsavedFile {
- pub Filename: *const c_char,
- pub Contents: *const c_char,
- pub Length: c_ulong,
-}
-pub type Enum_CXAvailabilityKind = c_uint;
-pub const CXAvailability_Available: c_uint = 0;
-pub const CXAvailability_Deprecated: c_uint = 1;
-pub const CXAvailability_NotAvailable: c_uint = 2;
-pub const CXAvailability_NotAccessible: c_uint = 3;
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct Struct_CXVersion {
- pub Major: c_int,
- pub Minor: c_int,
- pub Subminor: c_int,
-}
-pub type CXVersion = Struct_CXVersion;
-pub type CXGlobalOptFlags = c_uint;
-pub const CXGlobalOpt_None: c_uint = 0;
-pub const CXGlobalOpt_ThreadBackgroundPriorityForIndexing: c_uint =
- 1;
-pub const CXGlobalOpt_ThreadBackgroundPriorityForEditing: c_uint = 2;
-pub const CXGlobalOpt_ThreadBackgroundPriorityForAll: c_uint = 3;
-pub type CXFile = *mut c_void;
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXFileUniqueID {
- pub data: [c_ulonglong; 3],
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXSourceLocation {
- pub ptr_data: [*const c_void; 2],
- pub int_data: c_uint,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXSourceRange {
- pub ptr_data: [*const c_void; 2],
- pub begin_int_data: c_uint,
- pub end_int_data: c_uint,
-}
-pub type Enum_CXDiagnosticSeverity = c_uint;
-pub const CXDiagnostic_Ignored: c_uint = 0;
-pub const CXDiagnostic_Note: c_uint = 1;
-pub const CXDiagnostic_Warning: c_uint = 2;
-pub const CXDiagnostic_Error: c_uint = 3;
-pub const CXDiagnostic_Fatal: c_uint = 4;
-pub type CXDiagnostic = *mut c_void;
-pub type CXDiagnosticSet = *mut c_void;
-pub type Enum_CXLoadDiag_Error = c_uint;
-pub const CXLoadDiag_None: c_uint = 0;
-pub const CXLoadDiag_Unknown: c_uint = 1;
-pub const CXLoadDiag_CannotLoad: c_uint = 2;
-pub const CXLoadDiag_InvalidFile: c_uint = 3;
-pub type Enum_CXDiagnosticDisplayOptions = c_uint;
-pub const CXDiagnostic_DisplaySourceLocation: c_uint = 1;
-pub const CXDiagnostic_DisplayColumn: c_uint = 2;
-pub const CXDiagnostic_DisplaySourceRanges: c_uint = 4;
-pub const CXDiagnostic_DisplayOption: c_uint = 8;
-pub const CXDiagnostic_DisplayCategoryId: c_uint = 16;
-pub const CXDiagnostic_DisplayCategoryName: c_uint = 32;
-pub type Enum_CXTranslationUnit_Flags = c_uint;
-pub const CXTranslationUnit_None: c_uint = 0;
-pub const CXTranslationUnit_DetailedPreprocessingRecord: c_uint = 1;
-pub const CXTranslationUnit_Incomplete: c_uint = 2;
-pub const CXTranslationUnit_PrecompiledPreamble: c_uint = 4;
-pub const CXTranslationUnit_CacheCompletionResults: c_uint = 8;
-pub const CXTranslationUnit_ForSerialization: c_uint = 16;
-pub const CXTranslationUnit_CXXChainedPCH: c_uint = 32;
-pub const CXTranslationUnit_SkipFunctionBodies: c_uint = 64;
-pub const CXTranslationUnit_IncludeBriefCommentsInCodeCompletion:
- c_uint =
- 128;
-pub type Enum_CXSaveTranslationUnit_Flags = c_uint;
-pub const CXSaveTranslationUnit_None: c_uint = 0;
-pub type Enum_CXSaveError = c_uint;
-pub const CXSaveError_None: c_uint = 0;
-pub const CXSaveError_Unknown: c_uint = 1;
-pub const CXSaveError_TranslationErrors: c_uint = 2;
-pub const CXSaveError_InvalidTU: c_uint = 3;
-pub type Enum_CXReparse_Flags = c_uint;
-pub const CXReparse_None: c_uint = 0;
-pub type Enum_CXTUResourceUsageKind = c_uint;
-pub const CXTUResourceUsage_AST: c_uint = 1;
-pub const CXTUResourceUsage_Identifiers: c_uint = 2;
-pub const CXTUResourceUsage_Selectors: c_uint = 3;
-pub const CXTUResourceUsage_GlobalCompletionResults: c_uint = 4;
-pub const CXTUResourceUsage_SourceManagerContentCache: c_uint = 5;
-pub const CXTUResourceUsage_AST_SideTables: c_uint = 6;
-pub const CXTUResourceUsage_SourceManager_Membuffer_Malloc: c_uint =
- 7;
-pub const CXTUResourceUsage_SourceManager_Membuffer_MMap: c_uint = 8;
-pub const CXTUResourceUsage_ExternalASTSource_Membuffer_Malloc:
- c_uint =
- 9;
-pub const CXTUResourceUsage_ExternalASTSource_Membuffer_MMap: c_uint
- =
- 10;
-pub const CXTUResourceUsage_Preprocessor: c_uint = 11;
-pub const CXTUResourceUsage_PreprocessingRecord: c_uint = 12;
-pub const CXTUResourceUsage_SourceManager_DataStructures: c_uint =
- 13;
-pub const CXTUResourceUsage_Preprocessor_HeaderSearch: c_uint = 14;
-pub const CXTUResourceUsage_MEMORY_IN_BYTES_BEGIN: c_uint = 1;
-pub const CXTUResourceUsage_MEMORY_IN_BYTES_END: c_uint = 14;
-pub const CXTUResourceUsage_First: c_uint = 1;
-pub const CXTUResourceUsage_Last: c_uint = 14;
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct Struct_CXTUResourceUsageEntry {
- pub kind: Enum_CXTUResourceUsageKind,
- pub amount: c_ulong,
-}
-pub type CXTUResourceUsageEntry = Struct_CXTUResourceUsageEntry;
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct Struct_CXTUResourceUsage {
- pub data: *mut c_void,
- pub numEntries: c_uint,
- pub entries: *mut CXTUResourceUsageEntry,
-}
-pub type CXTUResourceUsage = Struct_CXTUResourceUsage;
-pub type Enum_CXCursorKind = c_uint;
-pub const CXCursor_UnexposedDecl: c_uint = 1;
-pub const CXCursor_StructDecl: c_uint = 2;
-pub const CXCursor_UnionDecl: c_uint = 3;
-pub const CXCursor_ClassDecl: c_uint = 4;
-pub const CXCursor_EnumDecl: c_uint = 5;
-pub const CXCursor_FieldDecl: c_uint = 6;
-pub const CXCursor_EnumConstantDecl: c_uint = 7;
-pub const CXCursor_FunctionDecl: c_uint = 8;
-pub const CXCursor_VarDecl: c_uint = 9;
-pub const CXCursor_ParmDecl: c_uint = 10;
-pub const CXCursor_ObjCInterfaceDecl: c_uint = 11;
-pub const CXCursor_ObjCCategoryDecl: c_uint = 12;
-pub const CXCursor_ObjCProtocolDecl: c_uint = 13;
-pub const CXCursor_ObjCPropertyDecl: c_uint = 14;
-pub const CXCursor_ObjCIvarDecl: c_uint = 15;
-pub const CXCursor_ObjCInstanceMethodDecl: c_uint = 16;
-pub const CXCursor_ObjCClassMethodDecl: c_uint = 17;
-pub const CXCursor_ObjCImplementationDecl: c_uint = 18;
-pub const CXCursor_ObjCCategoryImplDecl: c_uint = 19;
-pub const CXCursor_TypedefDecl: c_uint = 20;
-pub const CXCursor_CXXMethod: c_uint = 21;
-pub const CXCursor_Namespace: c_uint = 22;
-pub const CXCursor_LinkageSpec: c_uint = 23;
-pub const CXCursor_Constructor: c_uint = 24;
-pub const CXCursor_Destructor: c_uint = 25;
-pub const CXCursor_ConversionFunction: c_uint = 26;
-pub const CXCursor_TemplateTypeParameter: c_uint = 27;
-pub const CXCursor_NonTypeTemplateParameter: c_uint = 28;
-pub const CXCursor_TemplateTemplateParameter: c_uint = 29;
-pub const CXCursor_FunctionTemplate: c_uint = 30;
-pub const CXCursor_ClassTemplate: c_uint = 31;
-pub const CXCursor_ClassTemplatePartialSpecialization: c_uint = 32;
-pub const CXCursor_NamespaceAlias: c_uint = 33;
-pub const CXCursor_UsingDirective: c_uint = 34;
-pub const CXCursor_UsingDeclaration: c_uint = 35;
-pub const CXCursor_TypeAliasDecl: c_uint = 36;
-pub const CXCursor_ObjCSynthesizeDecl: c_uint = 37;
-pub const CXCursor_ObjCDynamicDecl: c_uint = 38;
-pub const CXCursor_CXXAccessSpecifier: c_uint = 39;
-pub const CXCursor_FirstDecl: c_uint = 1;
-pub const CXCursor_LastDecl: c_uint = 39;
-pub const CXCursor_FirstRef: c_uint = 40;
-pub const CXCursor_ObjCSuperClassRef: c_uint = 40;
-pub const CXCursor_ObjCProtocolRef: c_uint = 41;
-pub const CXCursor_ObjCClassRef: c_uint = 42;
-pub const CXCursor_TypeRef: c_uint = 43;
-pub const CXCursor_CXXBaseSpecifier: c_uint = 44;
-pub const CXCursor_TemplateRef: c_uint = 45;
-pub const CXCursor_NamespaceRef: c_uint = 46;
-pub const CXCursor_MemberRef: c_uint = 47;
-pub const CXCursor_LabelRef: c_uint = 48;
-pub const CXCursor_OverloadedDeclRef: c_uint = 49;
-pub const CXCursor_VariableRef: c_uint = 50;
-pub const CXCursor_LastRef: c_uint = 50;
-pub const CXCursor_FirstInvalid: c_uint = 70;
-pub const CXCursor_InvalidFile: c_uint = 70;
-pub const CXCursor_NoDeclFound: c_uint = 71;
-pub const CXCursor_NotImplemented: c_uint = 72;
-pub const CXCursor_InvalidCode: c_uint = 73;
-pub const CXCursor_LastInvalid: c_uint = 73;
-pub const CXCursor_FirstExpr: c_uint = 100;
-pub const CXCursor_UnexposedExpr: c_uint = 100;
-pub const CXCursor_DeclRefExpr: c_uint = 101;
-pub const CXCursor_MemberRefExpr: c_uint = 102;
-pub const CXCursor_CallExpr: c_uint = 103;
-pub const CXCursor_ObjCMessageExpr: c_uint = 104;
-pub const CXCursor_BlockExpr: c_uint = 105;
-pub const CXCursor_IntegerLiteral: c_uint = 106;
-pub const CXCursor_FloatingLiteral: c_uint = 107;
-pub const CXCursor_ImaginaryLiteral: c_uint = 108;
-pub const CXCursor_StringLiteral: c_uint = 109;
-pub const CXCursor_CharacterLiteral: c_uint = 110;
-pub const CXCursor_ParenExpr: c_uint = 111;
-pub const CXCursor_UnaryOperator: c_uint = 112;
-pub const CXCursor_ArraySubscriptExpr: c_uint = 113;
-pub const CXCursor_BinaryOperator: c_uint = 114;
-pub const CXCursor_CompoundAssignOperator: c_uint = 115;
-pub const CXCursor_ConditionalOperator: c_uint = 116;
-pub const CXCursor_CStyleCastExpr: c_uint = 117;
-pub const CXCursor_CompoundLiteralExpr: c_uint = 118;
-pub const CXCursor_InitListExpr: c_uint = 119;
-pub const CXCursor_AddrLabelExpr: c_uint = 120;
-pub const CXCursor_StmtExpr: c_uint = 121;
-pub const CXCursor_GenericSelectionExpr: c_uint = 122;
-pub const CXCursor_GNUNullExpr: c_uint = 123;
-pub const CXCursor_CXXStaticCastExpr: c_uint = 124;
-pub const CXCursor_CXXDynamicCastExpr: c_uint = 125;
-pub const CXCursor_CXXReinterpretCastExpr: c_uint = 126;
-pub const CXCursor_CXXConstCastExpr: c_uint = 127;
-pub const CXCursor_CXXFunctionalCastExpr: c_uint = 128;
-pub const CXCursor_CXXTypeidExpr: c_uint = 129;
-pub const CXCursor_CXXBoolLiteralExpr: c_uint = 130;
-pub const CXCursor_CXXNullPtrLiteralExpr: c_uint = 131;
-pub const CXCursor_CXXThisExpr: c_uint = 132;
-pub const CXCursor_CXXThrowExpr: c_uint = 133;
-pub const CXCursor_CXXNewExpr: c_uint = 134;
-pub const CXCursor_CXXDeleteExpr: c_uint = 135;
-pub const CXCursor_UnaryExpr: c_uint = 136;
-pub const CXCursor_ObjCStringLiteral: c_uint = 137;
-pub const CXCursor_ObjCEncodeExpr: c_uint = 138;
-pub const CXCursor_ObjCSelectorExpr: c_uint = 139;
-pub const CXCursor_ObjCProtocolExpr: c_uint = 140;
-pub const CXCursor_ObjCBridgedCastExpr: c_uint = 141;
-pub const CXCursor_PackExpansionExpr: c_uint = 142;
-pub const CXCursor_SizeOfPackExpr: c_uint = 143;
-pub const CXCursor_LambdaExpr: c_uint = 144;
-pub const CXCursor_ObjCBoolLiteralExpr: c_uint = 145;
-pub const CXCursor_ObjCSelfExpr: c_uint = 146;
-pub const CXCursor_LastExpr: c_uint = 146;
-pub const CXCursor_FirstStmt: c_uint = 200;
-pub const CXCursor_UnexposedStmt: c_uint = 200;
-pub const CXCursor_LabelStmt: c_uint = 201;
-pub const CXCursor_CompoundStmt: c_uint = 202;
-pub const CXCursor_CaseStmt: c_uint = 203;
-pub const CXCursor_DefaultStmt: c_uint = 204;
-pub const CXCursor_IfStmt: c_uint = 205;
-pub const CXCursor_SwitchStmt: c_uint = 206;
-pub const CXCursor_WhileStmt: c_uint = 207;
-pub const CXCursor_DoStmt: c_uint = 208;
-pub const CXCursor_ForStmt: c_uint = 209;
-pub const CXCursor_GotoStmt: c_uint = 210;
-pub const CXCursor_IndirectGotoStmt: c_uint = 211;
-pub const CXCursor_ContinueStmt: c_uint = 212;
-pub const CXCursor_BreakStmt: c_uint = 213;
-pub const CXCursor_ReturnStmt: c_uint = 214;
-pub const CXCursor_GCCAsmStmt: c_uint = 215;
-pub const CXCursor_AsmStmt: c_uint = 215;
-pub const CXCursor_ObjCAtTryStmt: c_uint = 216;
-pub const CXCursor_ObjCAtCatchStmt: c_uint = 217;
-pub const CXCursor_ObjCAtFinallyStmt: c_uint = 218;
-pub const CXCursor_ObjCAtThrowStmt: c_uint = 219;
-pub const CXCursor_ObjCAtSynchronizedStmt: c_uint = 220;
-pub const CXCursor_ObjCAutoreleasePoolStmt: c_uint = 221;
-pub const CXCursor_ObjCForCollectionStmt: c_uint = 222;
-pub const CXCursor_CXXCatchStmt: c_uint = 223;
-pub const CXCursor_CXXTryStmt: c_uint = 224;
-pub const CXCursor_CXXForRangeStmt: c_uint = 225;
-pub const CXCursor_SEHTryStmt: c_uint = 226;
-pub const CXCursor_SEHExceptStmt: c_uint = 227;
-pub const CXCursor_SEHFinallyStmt: c_uint = 228;
-pub const CXCursor_MSAsmStmt: c_uint = 229;
-pub const CXCursor_NullStmt: c_uint = 230;
-pub const CXCursor_DeclStmt: c_uint = 231;
-pub const CXCursor_OMPParallelDirective: c_uint = 232;
-pub const CXCursor_LastStmt: c_uint = 232;
-pub const CXCursor_TranslationUnit: c_uint = 300;
-pub const CXCursor_FirstAttr: c_uint = 400;
-pub const CXCursor_UnexposedAttr: c_uint = 400;
-pub const CXCursor_IBActionAttr: c_uint = 401;
-pub const CXCursor_IBOutletAttr: c_uint = 402;
-pub const CXCursor_IBOutletCollectionAttr: c_uint = 403;
-pub const CXCursor_CXXFinalAttr: c_uint = 404;
-pub const CXCursor_CXXOverrideAttr: c_uint = 405;
-pub const CXCursor_AnnotateAttr: c_uint = 406;
-pub const CXCursor_AsmLabelAttr: c_uint = 407;
-pub const CXCursor_PackedAttr: c_uint = 408;
-pub const CXCursor_LastAttr: c_uint = 408;
-pub const CXCursor_PreprocessingDirective: c_uint = 500;
-pub const CXCursor_MacroDefinition: c_uint = 501;
-pub const CXCursor_MacroExpansion: c_uint = 502;
-pub const CXCursor_MacroInstantiation: c_uint = 502;
-pub const CXCursor_InclusionDirective: c_uint = 503;
-pub const CXCursor_FirstPreprocessing: c_uint = 500;
-pub const CXCursor_LastPreprocessing: c_uint = 503;
-pub const CXCursor_ModuleImportDecl: c_uint = 600;
-pub const CXCursor_TypeAliasTemplateDecl: c_uint = 601;
-pub const CXCursor_StaticAssert: c_uint = 602;
-pub const CXCursor_FirstExtraDecl: c_uint = 600;
-pub const CXCursor_LastExtraDecl: c_uint = 602;
-pub const CXCursor_OverloadCandidate: c_uint = 700;
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXCursor {
- pub kind: Enum_CXCursorKind,
- pub xdata: c_int,
- pub data: [*const c_void; 3],
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXComment {
- pub ASTNode: *const c_void,
- pub TranslationUnit: CXTranslationUnit,
-}
-pub type Enum_CXLinkageKind = ::libc::c_uint;
-pub const CXLinkage_Invalid: ::libc::c_uint = 0;
-pub const CXLinkage_NoLinkage: ::libc::c_uint = 1;
-pub const CXLinkage_Internal: ::libc::c_uint = 2;
-pub const CXLinkage_UniqueExternal: ::libc::c_uint = 3;
-pub const CXLinkage_External: ::libc::c_uint = 4;
-pub type Enum_CXVisibilityKind = ::libc::c_uint;
-pub const CXVisibility_Invalid: ::libc::c_uint = 0;
-pub const CXVisibility_Hidden: ::libc::c_uint = 1;
-pub const CXVisibility_Protected: ::libc::c_uint = 2;
-pub const CXVisibility_Default: ::libc::c_uint = 3;
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct Struct_CXPlatformAvailability {
- pub Platform: CXString,
- pub Introduced: CXVersion,
- pub Deprecated: CXVersion,
- pub Obsoleted: CXVersion,
- pub Unavailable: c_int,
- pub Message: CXString,
-}
-pub type CXPlatformAvailability = Struct_CXPlatformAvailability;
-pub type Enum_CXLanguageKind = c_uint;
-pub const CXLanguage_Invalid: c_uint = 0;
-pub const CXLanguage_C: c_uint = 1;
-pub const CXLanguage_ObjC: c_uint = 2;
-pub const CXLanguage_CPlusPlus: c_uint = 3;
-pub enum Struct_CXCursorSetImpl { }
-pub type CXCursorSet = *mut Struct_CXCursorSetImpl;
-pub type Enum_CXTypeKind = c_uint;
-pub const CXType_Invalid: c_uint = 0;
-pub const CXType_Unexposed: c_uint = 1;
-pub const CXType_Void: c_uint = 2;
-pub const CXType_Bool: c_uint = 3;
-pub const CXType_Char_U: c_uint = 4;
-pub const CXType_UChar: c_uint = 5;
-pub const CXType_Char16: c_uint = 6;
-pub const CXType_Char32: c_uint = 7;
-pub const CXType_UShort: c_uint = 8;
-pub const CXType_UInt: c_uint = 9;
-pub const CXType_ULong: c_uint = 10;
-pub const CXType_ULongLong: c_uint = 11;
-pub const CXType_UInt128: c_uint = 12;
-pub const CXType_Char_S: c_uint = 13;
-pub const CXType_SChar: c_uint = 14;
-pub const CXType_WChar: c_uint = 15;
-pub const CXType_Short: c_uint = 16;
-pub const CXType_Int: c_uint = 17;
-pub const CXType_Long: c_uint = 18;
-pub const CXType_LongLong: c_uint = 19;
-pub const CXType_Int128: c_uint = 20;
-pub const CXType_Float: c_uint = 21;
-pub const CXType_Double: c_uint = 22;
-pub const CXType_LongDouble: c_uint = 23;
-pub const CXType_NullPtr: c_uint = 24;
-pub const CXType_Overload: c_uint = 25;
-pub const CXType_Dependent: c_uint = 26;
-pub const CXType_ObjCId: c_uint = 27;
-pub const CXType_ObjCClass: c_uint = 28;
-pub const CXType_ObjCSel: c_uint = 29;
-pub const CXType_Float128: c_uint = 30;
-pub const CXType_FirstBuiltin: c_uint = 2;
-pub const CXType_LastBuiltin: c_uint = 29;
-pub const CXType_Complex: c_uint = 100;
-pub const CXType_Pointer: c_uint = 101;
-pub const CXType_BlockPointer: c_uint = 102;
-pub const CXType_LValueReference: c_uint = 103;
-pub const CXType_RValueReference: c_uint = 104;
-pub const CXType_Record: c_uint = 105;
-pub const CXType_Enum: c_uint = 106;
-pub const CXType_Typedef: c_uint = 107;
-pub const CXType_ObjCInterface: c_uint = 108;
-pub const CXType_ObjCObjectPointer: c_uint = 109;
-pub const CXType_FunctionNoProto: c_uint = 110;
-pub const CXType_FunctionProto: c_uint = 111;
-pub const CXType_ConstantArray: c_uint = 112;
-pub const CXType_Vector: c_uint = 113;
-pub const CXType_IncompleteArray: c_uint = 114;
-pub const CXType_VariableArray: c_uint = 115;
-pub const CXType_DependentSizedArray: c_uint = 116;
-pub const CXType_MemberPointer: c_uint = 117;
-#[cfg(not(feature="llvm_stable"))]
-pub const CXType_Auto: c_uint = 118;
-#[cfg(not(feature="llvm_stable"))]
-pub const CXType_Elaborated: c_uint = 119;
-pub type Enum_CXCallingConv = c_uint;
-pub const CXCallingConv_Default: c_uint = 0;
-pub const CXCallingConv_C: c_uint = 1;
-pub const CXCallingConv_X86StdCall: c_uint = 2;
-pub const CXCallingConv_X86FastCall: c_uint = 3;
-pub const CXCallingConv_X86ThisCall: c_uint = 4;
-pub const CXCallingConv_X86Pascal: c_uint = 5;
-pub const CXCallingConv_AAPCS: c_uint = 6;
-pub const CXCallingConv_AAPCS_VFP: c_uint = 7;
-pub const CXCallingConv_PnaclCall: c_uint = 8;
-pub const CXCallingConv_IntelOclBicc: c_uint = 9;
-pub const CXCallingConv_X86_64Win64: c_uint = 10;
-pub const CXCallingConv_X86_64SysV: c_uint = 11;
-pub const CXCallingConv_Invalid: c_uint = 100;
-pub const CXCallingConv_Unexposed: c_uint = 200;
-#[repr(C)]
-#[derive(Copy, Clone, Hash)]
-pub struct CXType {
- pub kind: Enum_CXTypeKind,
- pub data: [*mut c_void; 2],
-}
-pub type Enum_CXTypeLayoutError = c_int;
-pub const CXTypeLayoutError_Invalid: c_int = -1;
-pub const CXTypeLayoutError_Incomplete: c_int = -2;
-pub const CXTypeLayoutError_Dependent: c_int = -3;
-pub const CXTypeLayoutError_NotConstantSize: c_int = -4;
-pub const CXTypeLayoutError_InvalidFieldName: c_int = -5;
-pub type Enum_CXRefQualifierKind = c_uint;
-pub const CXRefQualifier_None: c_uint = 0;
-pub const CXRefQualifier_LValue: c_uint = 1;
-pub const CXRefQualifier_RValue: c_uint = 2;
-pub type Enum_CX_CXXAccessSpecifier = c_uint;
-pub const CX_CXXInvalidAccessSpecifier: c_uint = 0;
-pub const CX_CXXPublic: c_uint = 1;
-pub const CX_CXXProtected: c_uint = 2;
-pub const CX_CXXPrivate: c_uint = 3;
-pub type Enum_CXChildVisitResult = c_uint;
-pub const CXChildVisit_Break: c_uint = 0;
-pub const CXChildVisit_Continue: c_uint = 1;
-pub const CXChildVisit_Recurse: c_uint = 2;
-pub type CXCursorVisitor =
- ::std::option::Option<extern "C" fn
- (arg1: CXCursor, arg2: CXCursor,
- arg3: CXClientData)
- -> Enum_CXChildVisitResult>;
-pub type CXObjCPropertyAttrKind = c_uint;
-pub const CXObjCPropertyAttr_noattr: c_uint = 0;
-pub const CXObjCPropertyAttr_readonly: c_uint = 1;
-pub const CXObjCPropertyAttr_getter: c_uint = 2;
-pub const CXObjCPropertyAttr_assign: c_uint = 4;
-pub const CXObjCPropertyAttr_readwrite: c_uint = 8;
-pub const CXObjCPropertyAttr_retain: c_uint = 16;
-pub const CXObjCPropertyAttr_copy: c_uint = 32;
-pub const CXObjCPropertyAttr_nonatomic: c_uint = 64;
-pub const CXObjCPropertyAttr_setter: c_uint = 128;
-pub const CXObjCPropertyAttr_atomic: c_uint = 256;
-pub const CXObjCPropertyAttr_weak: c_uint = 512;
-pub const CXObjCPropertyAttr_strong: c_uint = 1024;
-pub const CXObjCPropertyAttr_unsafe_unretained: c_uint = 2048;
-pub type CXObjCDeclQualifierKind = c_uint;
-pub const CXObjCDeclQualifier_None: c_uint = 0;
-pub const CXObjCDeclQualifier_In: c_uint = 1;
-pub const CXObjCDeclQualifier_Inout: c_uint = 2;
-pub const CXObjCDeclQualifier_Out: c_uint = 4;
-pub const CXObjCDeclQualifier_Bycopy: c_uint = 8;
-pub const CXObjCDeclQualifier_Byref: c_uint = 16;
-pub const CXObjCDeclQualifier_Oneway: c_uint = 32;
-pub type CXModule = *mut c_void;
-pub type Enum_CXCommentKind = c_uint;
-pub const CXComment_Null: c_uint = 0;
-pub const CXComment_Text: c_uint = 1;
-pub const CXComment_InlineCommand: c_uint = 2;
-pub const CXComment_HTMLStartTag: c_uint = 3;
-pub const CXComment_HTMLEndTag: c_uint = 4;
-pub const CXComment_Paragraph: c_uint = 5;
-pub const CXComment_BlockCommand: c_uint = 6;
-pub const CXComment_ParamCommand: c_uint = 7;
-pub const CXComment_TParamCommand: c_uint = 8;
-pub const CXComment_VerbatimBlockCommand: c_uint = 9;
-pub const CXComment_VerbatimBlockLine: c_uint = 10;
-pub const CXComment_VerbatimLine: c_uint = 11;
-pub const CXComment_FullComment: c_uint = 12;
-pub type Enum_CXCommentInlineCommandRenderKind = c_uint;
-pub const CXCommentInlineCommandRenderKind_Normal: c_uint = 0;
-pub const CXCommentInlineCommandRenderKind_Bold: c_uint = 1;
-pub const CXCommentInlineCommandRenderKind_Monospaced: c_uint = 2;
-pub const CXCommentInlineCommandRenderKind_Emphasized: c_uint = 3;
-pub type Enum_CXCommentParamPassDirection = c_uint;
-pub const CXCommentParamPassDirection_In: c_uint = 0;
-pub const CXCommentParamPassDirection_Out: c_uint = 1;
-pub const CXCommentParamPassDirection_InOut: c_uint = 2;
-pub type Enum_CXNameRefFlags = c_uint;
-pub const CXNameRange_WantQualifier: c_uint = 1;
-pub const CXNameRange_WantTemplateArgs: c_uint = 2;
-pub const CXNameRange_WantSinglePiece: c_uint = 4;
-pub type Enum_CXTokenKind = c_uint;
-pub const CXToken_Punctuation: c_uint = 0;
-pub const CXToken_Keyword: c_uint = 1;
-pub const CXToken_Identifier: c_uint = 2;
-pub const CXToken_Literal: c_uint = 3;
-pub const CXToken_Comment: c_uint = 4;
-pub type CXTokenKind = Enum_CXTokenKind;
-pub type Enum_CXTemplateArgumentKind = c_uint;
-pub const CXTemplateArgumentKind_Null: c_uint = 0;
-pub const CXTemplateArgumentKind_Type: c_uint = 1;
-pub const CXTemplateArgumentKind_Declaration: c_uint = 2;
-pub const CXTemplateArgumentKind_NullPtr: c_uint = 3;
-pub const CXTemplateArgumentKind_Integral: c_uint = 4;
-pub const CXTemplateArgumentKind_Template: c_uint = 5;
-pub const CXTemplateArgumentKind_TemplateExpansion: c_uint = 6;
-pub const CXTemplateArgumentKind_Expression: c_uint = 7;
-pub const CXTemplateArgumentKind_Pack: c_uint = 8;
-pub const CXTemplateArgumentKind_Invalid: c_uint = 9;
-pub type CXTemplateArgumentKind = Enum_CXTemplateArgumentKind;
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXToken {
- pub int_data: [c_uint; 4],
- pub ptr_data: *mut c_void,
-}
-pub type CXCompletionString = *mut c_void;
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXCompletionResult {
- pub CursorKind: Enum_CXCursorKind,
- pub CompletionString: CXCompletionString,
-}
-pub type Enum_CXCompletionChunkKind = c_uint;
-pub const CXCompletionChunk_Optional: c_uint = 0;
-pub const CXCompletionChunk_TypedText: c_uint = 1;
-pub const CXCompletionChunk_Text: c_uint = 2;
-pub const CXCompletionChunk_Placeholder: c_uint = 3;
-pub const CXCompletionChunk_Informative: c_uint = 4;
-pub const CXCompletionChunk_CurrentParameter: c_uint = 5;
-pub const CXCompletionChunk_LeftParen: c_uint = 6;
-pub const CXCompletionChunk_RightParen: c_uint = 7;
-pub const CXCompletionChunk_LeftBracket: c_uint = 8;
-pub const CXCompletionChunk_RightBracket: c_uint = 9;
-pub const CXCompletionChunk_LeftBrace: c_uint = 10;
-pub const CXCompletionChunk_RightBrace: c_uint = 11;
-pub const CXCompletionChunk_LeftAngle: c_uint = 12;
-pub const CXCompletionChunk_RightAngle: c_uint = 13;
-pub const CXCompletionChunk_Comma: c_uint = 14;
-pub const CXCompletionChunk_ResultType: c_uint = 15;
-pub const CXCompletionChunk_Colon: c_uint = 16;
-pub const CXCompletionChunk_SemiColon: c_uint = 17;
-pub const CXCompletionChunk_Equal: c_uint = 18;
-pub const CXCompletionChunk_HorizontalSpace: c_uint = 19;
-pub const CXCompletionChunk_VerticalSpace: c_uint = 20;
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXCodeCompleteResults {
- pub Results: *mut CXCompletionResult,
- pub NumResults: c_uint,
-}
-pub type Enum_CXCodeComplete_Flags = c_uint;
-pub const CXCodeComplete_IncludeMacros: c_uint = 1;
-pub const CXCodeComplete_IncludeCodePatterns: c_uint = 2;
-pub const CXCodeComplete_IncludeBriefComments: c_uint = 4;
-pub type Enum_CXCompletionContext = c_uint;
-pub const CXCompletionContext_Unexposed: c_uint = 0;
-pub const CXCompletionContext_AnyType: c_uint = 1;
-pub const CXCompletionContext_AnyValue: c_uint = 2;
-pub const CXCompletionContext_ObjCObjectValue: c_uint = 4;
-pub const CXCompletionContext_ObjCSelectorValue: c_uint = 8;
-pub const CXCompletionContext_CXXClassTypeValue: c_uint = 16;
-pub const CXCompletionContext_DotMemberAccess: c_uint = 32;
-pub const CXCompletionContext_ArrowMemberAccess: c_uint = 64;
-pub const CXCompletionContext_ObjCPropertyAccess: c_uint = 128;
-pub const CXCompletionContext_EnumTag: c_uint = 256;
-pub const CXCompletionContext_UnionTag: c_uint = 512;
-pub const CXCompletionContext_StructTag: c_uint = 1024;
-pub const CXCompletionContext_ClassTag: c_uint = 2048;
-pub const CXCompletionContext_Namespace: c_uint = 4096;
-pub const CXCompletionContext_NestedNameSpecifier: c_uint = 8192;
-pub const CXCompletionContext_ObjCInterface: c_uint = 16384;
-pub const CXCompletionContext_ObjCProtocol: c_uint = 32768;
-pub const CXCompletionContext_ObjCCategory: c_uint = 65536;
-pub const CXCompletionContext_ObjCInstanceMessage: c_uint = 131072;
-pub const CXCompletionContext_ObjCClassMessage: c_uint = 262144;
-pub const CXCompletionContext_ObjCSelectorName: c_uint = 524288;
-pub const CXCompletionContext_MacroName: c_uint = 1048576;
-pub const CXCompletionContext_NaturalLanguage: c_uint = 2097152;
-pub const CXCompletionContext_Unknown: c_uint = 4194303;
-pub type CXInclusionVisitor =
- ::std::option::Option<extern "C" fn
- (arg1: CXFile, arg2: *mut CXSourceLocation,
- arg3: c_uint, arg4: CXClientData)>;
-pub type CXRemapping = *mut c_void;
-pub type Enum_CXVisitorResult = c_uint;
-pub const CXVisit_Break: c_uint = 0;
-pub const CXVisit_Continue: c_uint = 1;
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXCursorAndRangeVisitor {
- pub context: *mut c_void,
- pub visit: ::std::option::Option<extern "C" fn
- (arg1: *mut c_void,
- arg2: CXCursor, arg3: CXSourceRange)
- -> Enum_CXVisitorResult>,
-}
-pub type CXResult = c_uint;
-pub const CXResult_Success: c_uint = 0;
-pub const CXResult_Invalid: c_uint = 1;
-pub const CXResult_VisitBreak: c_uint = 2;
-pub type CXIdxClientFile = *mut c_void;
-pub type CXIdxClientEntity = *mut c_void;
-pub type CXIdxClientContainer = *mut c_void;
-pub type CXIdxClientASTFile = *mut c_void;
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXIdxLoc {
- pub ptr_data: [*mut c_void; 2],
- pub int_data: c_uint,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXIdxIncludedFileInfo {
- pub hashLoc: CXIdxLoc,
- pub filename: *const c_char,
- pub file: CXFile,
- pub isImport: c_int,
- pub isAngled: c_int,
- pub isModuleImport: c_int,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXIdxImportedASTFileInfo {
- pub file: CXFile,
- pub module: CXModule,
- pub loc: CXIdxLoc,
- pub isImplicit: c_int,
-}
-pub type CXIdxEntityKind = c_uint;
-pub const CXIdxEntity_Unexposed: c_uint = 0;
-pub const CXIdxEntity_Typedef: c_uint = 1;
-pub const CXIdxEntity_Function: c_uint = 2;
-pub const CXIdxEntity_Variable: c_uint = 3;
-pub const CXIdxEntity_Field: c_uint = 4;
-pub const CXIdxEntity_EnumConstant: c_uint = 5;
-pub const CXIdxEntity_ObjCClass: c_uint = 6;
-pub const CXIdxEntity_ObjCProtocol: c_uint = 7;
-pub const CXIdxEntity_ObjCCategory: c_uint = 8;
-pub const CXIdxEntity_ObjCInstanceMethod: c_uint = 9;
-pub const CXIdxEntity_ObjCClassMethod: c_uint = 10;
-pub const CXIdxEntity_ObjCProperty: c_uint = 11;
-pub const CXIdxEntity_ObjCIvar: c_uint = 12;
-pub const CXIdxEntity_Enum: c_uint = 13;
-pub const CXIdxEntity_Struct: c_uint = 14;
-pub const CXIdxEntity_Union: c_uint = 15;
-pub const CXIdxEntity_CXXClass: c_uint = 16;
-pub const CXIdxEntity_CXXNamespace: c_uint = 17;
-pub const CXIdxEntity_CXXNamespaceAlias: c_uint = 18;
-pub const CXIdxEntity_CXXStaticVariable: c_uint = 19;
-pub const CXIdxEntity_CXXStaticMethod: c_uint = 20;
-pub const CXIdxEntity_CXXInstanceMethod: c_uint = 21;
-pub const CXIdxEntity_CXXConstructor: c_uint = 22;
-pub const CXIdxEntity_CXXDestructor: c_uint = 23;
-pub const CXIdxEntity_CXXConversionFunction: c_uint = 24;
-pub const CXIdxEntity_CXXTypeAlias: c_uint = 25;
-pub const CXIdxEntity_CXXInterface: c_uint = 26;
-pub type CXIdxEntityLanguage = c_uint;
-pub const CXIdxEntityLang_None: c_uint = 0;
-pub const CXIdxEntityLang_C: c_uint = 1;
-pub const CXIdxEntityLang_ObjC: c_uint = 2;
-pub const CXIdxEntityLang_CXX: c_uint = 3;
-pub type CXIdxEntityCXXTemplateKind = c_uint;
-pub const CXIdxEntity_NonTemplate: c_uint = 0;
-pub const CXIdxEntity_Template: c_uint = 1;
-pub const CXIdxEntity_TemplatePartialSpecialization: c_uint = 2;
-pub const CXIdxEntity_TemplateSpecialization: c_uint = 3;
-pub type CXIdxAttrKind = c_uint;
-pub const CXIdxAttr_Unexposed: c_uint = 0;
-pub const CXIdxAttr_IBAction: c_uint = 1;
-pub const CXIdxAttr_IBOutlet: c_uint = 2;
-pub const CXIdxAttr_IBOutletCollection: c_uint = 3;
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXIdxAttrInfo {
- pub kind: CXIdxAttrKind,
- pub cursor: CXCursor,
- pub loc: CXIdxLoc,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXIdxEntityInfo {
- pub kind: CXIdxEntityKind,
- pub templateKind: CXIdxEntityCXXTemplateKind,
- pub lang: CXIdxEntityLanguage,
- pub name: *const c_char,
- pub USR: *const c_char,
- pub cursor: CXCursor,
- pub attributes: *const *const CXIdxAttrInfo,
- pub numAttributes: c_uint,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXIdxContainerInfo {
- pub cursor: CXCursor,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXIdxIBOutletCollectionAttrInfo {
- pub attrInfo: *const CXIdxAttrInfo,
- pub objcClass: *const CXIdxEntityInfo,
- pub classCursor: CXCursor,
- pub classLoc: CXIdxLoc,
-}
-pub type CXIdxDeclInfoFlags = c_uint;
-pub const CXIdxDeclFlag_Skipped: c_uint = 1;
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXIdxDeclInfo {
- pub entityInfo: *const CXIdxEntityInfo,
- pub cursor: CXCursor,
- pub loc: CXIdxLoc,
- pub semanticContainer: *const CXIdxContainerInfo,
- pub lexicalContainer: *const CXIdxContainerInfo,
- pub isRedeclaration: c_int,
- pub isDefinition: c_int,
- pub isContainer: c_int,
- pub declAsContainer: *const CXIdxContainerInfo,
- pub isImplicit: c_int,
- pub attributes: *const *const CXIdxAttrInfo,
- pub numAttributes: c_uint,
- pub flags: c_uint,
-}
-pub type CXIdxObjCContainerKind = c_uint;
-pub const CXIdxObjCContainer_ForwardRef: c_uint = 0;
-pub const CXIdxObjCContainer_Interface: c_uint = 1;
-pub const CXIdxObjCContainer_Implementation: c_uint = 2;
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXIdxObjCContainerDeclInfo {
- pub declInfo: *const CXIdxDeclInfo,
- pub kind: CXIdxObjCContainerKind,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXIdxBaseClassInfo {
- pub base: *const CXIdxEntityInfo,
- pub cursor: CXCursor,
- pub loc: CXIdxLoc,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXIdxObjCProtocolRefInfo {
- pub protocol: *const CXIdxEntityInfo,
- pub cursor: CXCursor,
- pub loc: CXIdxLoc,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXIdxObjCProtocolRefListInfo {
- pub protocols: *const *const CXIdxObjCProtocolRefInfo,
- pub numProtocols: c_uint,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXIdxObjCInterfaceDeclInfo {
- pub containerInfo: *const CXIdxObjCContainerDeclInfo,
- pub superInfo: *const CXIdxBaseClassInfo,
- pub protocols: *const CXIdxObjCProtocolRefListInfo,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXIdxObjCCategoryDeclInfo {
- pub containerInfo: *const CXIdxObjCContainerDeclInfo,
- pub objcClass: *const CXIdxEntityInfo,
- pub classCursor: CXCursor,
- pub classLoc: CXIdxLoc,
- pub protocols: *const CXIdxObjCProtocolRefListInfo,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXIdxObjCPropertyDeclInfo {
- pub declInfo: *const CXIdxDeclInfo,
- pub getter: *const CXIdxEntityInfo,
- pub setter: *const CXIdxEntityInfo,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXIdxCXXClassDeclInfo {
- pub declInfo: *const CXIdxDeclInfo,
- pub bases: *const *const CXIdxBaseClassInfo,
- pub numBases: c_uint,
-}
-pub type CXIdxEntityRefKind = c_uint;
-pub const CXIdxEntityRef_Direct: c_uint = 1;
-pub const CXIdxEntityRef_Implicit: c_uint = 2;
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct CXIdxEntityRefInfo {
- pub kind: CXIdxEntityRefKind,
- pub cursor: CXCursor,
- pub loc: CXIdxLoc,
- pub referencedEntity: *const CXIdxEntityInfo,
- pub parentEntity: *const CXIdxEntityInfo,
- pub container: *const CXIdxContainerInfo,
-}
-#[repr(C)]
-#[derive(Copy, Clone)]
-pub struct IndexerCallbacks {
- pub abortQuery: ::std::option::Option<extern "C" fn
- (arg1: CXClientData,
- arg2: *mut c_void)
- -> c_int>,
- pub diagnostic: ::std::option::Option<extern "C" fn
- (arg1: CXClientData,
- arg2: CXDiagnosticSet,
- arg3: *mut c_void)>,
- pub enteredMainFile: ::std::option::Option<extern "C" fn
- (arg1: CXClientData,
- arg2: CXFile,
- arg3: *mut c_void)
- -> CXIdxClientFile>,
- pub ppIncludedFile: ::std::option::Option<extern "C" fn
- (arg1: CXClientData,
- arg2:
- *const CXIdxIncludedFileInfo)
- -> CXIdxClientFile>,
- pub importedASTFile: ::std::option::Option<extern "C" fn
- (arg1: CXClientData,
- arg2:
- *const CXIdxImportedASTFileInfo)
- -> CXIdxClientASTFile>,
- pub startedTranslationUnit: ::std::option::Option<extern "C" fn
- (arg1: CXClientData,
- arg2:
- *mut c_void)
- ->
- CXIdxClientContainer>,
- pub indexDeclaration: ::std::option::Option<extern "C" fn
- (arg1: CXClientData,
- arg2:
- *const CXIdxDeclInfo)>,
- pub indexEntityReference: ::std::option::Option<extern "C" fn
- (arg1: CXClientData,
- arg2:
- *const CXIdxEntityRefInfo)>,
-}
-pub type CXIndexAction = *mut c_void;
-pub type CXIndexOptFlags = c_uint;
-pub const CXIndexOpt_None: c_uint = 0;
-pub const CXIndexOpt_SuppressRedundantRefs: c_uint = 1;
-pub const CXIndexOpt_IndexFunctionLocalSymbols: c_uint = 2;
-pub const CXIndexOpt_IndexImplicitTemplateInstantiations: c_uint = 4;
-pub const CXIndexOpt_SuppressWarnings: c_uint = 8;
-pub const CXIndexOpt_SkipParsedBodiesInSession: c_uint = 16;
-extern "C" {
- pub fn clang_getCString(string: CXString) -> *const c_char;
- pub fn clang_disposeString(string: CXString);
- pub fn clang_createIndex(excludeDeclarationsFromPCH: c_int,
- displayDiagnostics: c_int) -> CXIndex;
- pub fn clang_disposeIndex(index: CXIndex);
- pub fn clang_CXIndex_setGlobalOptions(arg1: CXIndex,
- options: c_uint);
- pub fn clang_CXIndex_getGlobalOptions(arg1: CXIndex) -> c_uint;
- pub fn clang_getFileName(SFile: CXFile) -> CXString;
- pub fn clang_getFileTime(SFile: CXFile) -> ::libc::time_t;
- pub fn clang_getFileUniqueID(file: CXFile, outID: *mut CXFileUniqueID) ->
- c_int;
- pub fn clang_isFileMultipleIncludeGuarded(tu: CXTranslationUnit,
- file: CXFile) -> c_uint;
- pub fn clang_getFile(tu: CXTranslationUnit,
- file_name: *const c_char) -> CXFile;
- pub fn clang_getNullLocation() -> CXSourceLocation;
- pub fn clang_equalLocations(loc1: CXSourceLocation,
- loc2: CXSourceLocation) -> c_uint;
- pub fn clang_getLocation(tu: CXTranslationUnit, file: CXFile,
- line: c_uint, column: c_uint) ->
- CXSourceLocation;
- pub fn clang_getLocationForOffset(tu: CXTranslationUnit, file: CXFile,
- offset: c_uint) ->
- CXSourceLocation;
- pub fn clang_Location_isInSystemHeader(location: CXSourceLocation) ->
- c_int;
- pub fn clang_Location_isFromMainFile(location: CXSourceLocation) ->
- c_int;
- pub fn clang_getNullRange() -> CXSourceRange;
- pub fn clang_getRange(begin: CXSourceLocation, end: CXSourceLocation) ->
- CXSourceRange;
- pub fn clang_equalRanges(range1: CXSourceRange, range2: CXSourceRange) ->
- c_uint;
- pub fn clang_Range_isNull(range: CXSourceRange) -> c_int;
- pub fn clang_getExpansionLocation(location: CXSourceLocation,
- file: *mut CXFile,
- line: *mut c_uint,
- column: *mut c_uint,
- offset: *mut c_uint);
- pub fn clang_getPresumedLocation(location: CXSourceLocation,
- filename: *mut CXString,
- line: *mut c_uint,
- column: *mut c_uint);
- pub fn clang_getInstantiationLocation(location: CXSourceLocation,
- file: *mut CXFile,
- line: *mut c_uint,
- column: *mut c_uint,
- offset: *mut c_uint);
- pub fn clang_getSpellingLocation(location: CXSourceLocation,
- file: *mut CXFile,
- line: *mut c_uint,
- column: *mut c_uint,
- offset: *mut c_uint);
- pub fn clang_getFileLocation(location: CXSourceLocation,
- file: *mut CXFile, line: *mut c_uint,
- column: *mut c_uint,
- offset: *mut c_uint);
- pub fn clang_getRangeStart(range: CXSourceRange) -> CXSourceLocation;
- pub fn clang_getRangeEnd(range: CXSourceRange) -> CXSourceLocation;
- pub fn clang_getNumDiagnosticsInSet(Diags: CXDiagnosticSet) ->
- c_uint;
- pub fn clang_getDiagnosticInSet(Diags: CXDiagnosticSet,
- Index: c_uint) -> CXDiagnostic;
- pub fn clang_loadDiagnostics(file: *const c_char,
- error: *mut Enum_CXLoadDiag_Error,
- errorString: *mut CXString) ->
- CXDiagnosticSet;
- pub fn clang_disposeDiagnosticSet(Diags: CXDiagnosticSet);
- pub fn clang_getChildDiagnostics(D: CXDiagnostic) -> CXDiagnosticSet;
- pub fn clang_getNumDiagnostics(Unit: CXTranslationUnit) -> c_uint;
- pub fn clang_getDiagnostic(Unit: CXTranslationUnit, Index: c_uint)
- -> CXDiagnostic;
- pub fn clang_getDiagnosticSetFromTU(Unit: CXTranslationUnit) ->
- CXDiagnosticSet;
- pub fn clang_disposeDiagnostic(Diagnostic: CXDiagnostic);
- pub fn clang_formatDiagnostic(Diagnostic: CXDiagnostic,
- Options: c_uint) -> CXString;
- pub fn clang_defaultDiagnosticDisplayOptions() -> c_uint;
- pub fn clang_getDiagnosticSeverity(arg1: CXDiagnostic) ->
- Enum_CXDiagnosticSeverity;
- pub fn clang_getDiagnosticLocation(arg1: CXDiagnostic) ->
- CXSourceLocation;
- pub fn clang_getDiagnosticSpelling(arg1: CXDiagnostic) -> CXString;
- pub fn clang_getDiagnosticOption(Diag: CXDiagnostic,
- Disable: *mut CXString) -> CXString;
- pub fn clang_getDiagnosticCategory(arg1: CXDiagnostic) -> c_uint;
- pub fn clang_getDiagnosticCategoryName(Category: c_uint) ->
- CXString;
- pub fn clang_getDiagnosticCategoryText(arg1: CXDiagnostic) -> CXString;
- pub fn clang_getDiagnosticNumRanges(arg1: CXDiagnostic) -> c_uint;
- pub fn clang_getDiagnosticRange(Diagnostic: CXDiagnostic,
- Range: c_uint) -> CXSourceRange;
- pub fn clang_getDiagnosticNumFixIts(Diagnostic: CXDiagnostic) ->
- c_uint;
- pub fn clang_getDiagnosticFixIt(Diagnostic: CXDiagnostic,
- FixIt: c_uint,
- ReplacementRange: *mut CXSourceRange) ->
- CXString;
- pub fn clang_getTranslationUnitSpelling(CTUnit: CXTranslationUnit) ->
- CXString;
- pub fn clang_createTranslationUnitFromSourceFile(CIdx: CXIndex,
- source_filename:
- *const c_char,
- num_clang_command_line_args:
- c_int,
- clang_command_line_args:
- *const *const c_char,
- num_unsaved_files:
- c_uint,
- unsaved_files:
- *mut Struct_CXUnsavedFile)
- -> CXTranslationUnit;
- pub fn clang_createTranslationUnit(arg1: CXIndex,
- ast_filename: *const c_char) ->
- CXTranslationUnit;
- pub fn clang_defaultEditingTranslationUnitOptions() -> c_uint;
- pub fn clang_parseTranslationUnit(CIdx: CXIndex,
- source_filename: *const c_char,
- command_line_args:
- *const *const c_char,
- num_command_line_args: c_int,
- unsaved_files:
- *mut Struct_CXUnsavedFile,
- num_unsaved_files: c_uint,
- options: c_uint) ->
- CXTranslationUnit;
- pub fn clang_defaultSaveOptions(TU: CXTranslationUnit) -> c_uint;
- pub fn clang_saveTranslationUnit(TU: CXTranslationUnit,
- FileName: *const c_char,
- options: c_uint) ->
- c_int;
- pub fn clang_disposeTranslationUnit(arg1: CXTranslationUnit);
- pub fn clang_defaultReparseOptions(TU: CXTranslationUnit) ->
- c_uint;
- pub fn clang_reparseTranslationUnit(TU: CXTranslationUnit,
- num_unsaved_files: c_uint,
- unsaved_files:
- *mut Struct_CXUnsavedFile,
- options: c_uint) ->
- c_int;
- pub fn clang_getTUResourceUsageName(kind: Enum_CXTUResourceUsageKind) ->
- *const c_char;
- pub fn clang_getCXTUResourceUsage(TU: CXTranslationUnit) ->
- CXTUResourceUsage;
- pub fn clang_disposeCXTUResourceUsage(usage: CXTUResourceUsage);
- pub fn clang_getNullCursor() -> CXCursor;
- pub fn clang_getTranslationUnitCursor(arg1: CXTranslationUnit) ->
- CXCursor;
- pub fn clang_equalCursors(arg1: CXCursor, arg2: CXCursor) ->
- c_uint;
- pub fn clang_Cursor_isNull(cursor: CXCursor) -> c_int;
- pub fn clang_hashCursor(arg1: CXCursor) -> c_uint;
- pub fn clang_getCursorKind(arg1: CXCursor) -> Enum_CXCursorKind;
- pub fn clang_isDeclaration(arg1: Enum_CXCursorKind) -> c_uint;
- pub fn clang_isReference(arg1: Enum_CXCursorKind) -> c_uint;
- pub fn clang_isExpression(arg1: Enum_CXCursorKind) -> c_uint;
- pub fn clang_isStatement(arg1: Enum_CXCursorKind) -> c_uint;
- pub fn clang_isAttribute(arg1: Enum_CXCursorKind) -> c_uint;
- pub fn clang_isInvalid(arg1: Enum_CXCursorKind) -> c_uint;
- pub fn clang_isTranslationUnit(arg1: Enum_CXCursorKind) -> c_uint;
- pub fn clang_isPreprocessing(arg1: Enum_CXCursorKind) -> c_uint;
- pub fn clang_isUnexposed(arg1: Enum_CXCursorKind) -> c_uint;
- pub fn clang_getCursorLinkage(cursor: CXCursor) -> Enum_CXLinkageKind;
- pub fn clang_getCursorVisibility(cursor: CXCursor) -> Enum_CXVisibilityKind;
- pub fn clang_getCursorAvailability(cursor: CXCursor) ->
- Enum_CXAvailabilityKind;
- pub fn clang_getCursorPlatformAvailability(cursor: CXCursor,
- always_deprecated:
- *mut c_int,
- deprecated_message:
- *mut CXString,
- always_unavailable:
- *mut c_int,
- unavailable_message:
- *mut CXString,
- availability:
- *mut CXPlatformAvailability,
- availability_size:
- c_int) ->
- c_int;
- pub fn clang_disposeCXPlatformAvailability(availability:
- *mut CXPlatformAvailability);
- pub fn clang_getCursorLanguage(cursor: CXCursor) -> Enum_CXLanguageKind;
- pub fn clang_Cursor_getTranslationUnit(arg1: CXCursor) ->
- CXTranslationUnit;
- pub fn clang_createCXCursorSet() -> CXCursorSet;
- pub fn clang_disposeCXCursorSet(cset: CXCursorSet);
- pub fn clang_CXCursorSet_contains(cset: CXCursorSet, cursor: CXCursor) ->
- c_uint;
- pub fn clang_CXCursorSet_insert(cset: CXCursorSet, cursor: CXCursor) ->
- c_uint;
- pub fn clang_getCursorSemanticParent(cursor: CXCursor) -> CXCursor;
- pub fn clang_getCursorLexicalParent(cursor: CXCursor) -> CXCursor;
- pub fn clang_getOverriddenCursors(cursor: CXCursor,
- overridden: *mut *mut CXCursor,
- num_overridden: *mut c_uint);
- pub fn clang_disposeOverriddenCursors(overridden: *mut CXCursor);
- pub fn clang_getIncludedFile(cursor: CXCursor) -> CXFile;
- pub fn clang_getCursor(arg1: CXTranslationUnit, arg2: CXSourceLocation) ->
- CXCursor;
- pub fn clang_getCursorLocation(arg1: CXCursor) -> CXSourceLocation;
- pub fn clang_getCursorExtent(arg1: CXCursor) -> CXSourceRange;
- pub fn clang_getCursorType(C: CXCursor) -> CXType;
- pub fn clang_getTypeSpelling(CT: CXType) -> CXString;
- pub fn clang_getTypedefDeclUnderlyingType(C: CXCursor) -> CXType;
- pub fn clang_getEnumDeclIntegerType(C: CXCursor) -> CXType;
- pub fn clang_getEnumConstantDeclValue(C: CXCursor) -> c_longlong;
- pub fn clang_getEnumConstantDeclUnsignedValue(C: CXCursor) ->
- c_ulonglong;
- pub fn clang_getFieldDeclBitWidth(C: CXCursor) -> c_int;
- pub fn clang_Cursor_getNumArguments(C: CXCursor) -> c_int;
- pub fn clang_Cursor_getArgument(C: CXCursor, i: c_uint) ->
- CXCursor;
- pub fn clang_Cursor_getNumTemplateArguments(T: CXCursor) -> c_int;
- pub fn clang_Cursor_getTemplateArgumentKind(C: CXCursor, i: c_uint) ->
- CXTemplateArgumentKind;
- pub fn clang_Cursor_getTemplateArgumentValue(C: CXCursor, i: c_uint) ->
- c_longlong;
- pub fn clang_Cursor_getTemplateArgumentUnsignedValue(C: CXCursor, i: c_uint) ->
- c_ulonglong;
- pub fn clang_equalTypes(A: CXType, B: CXType) -> c_uint;
- pub fn clang_getCanonicalType(T: CXType) -> CXType;
- pub fn clang_isConstQualifiedType(T: CXType) -> c_uint;
- pub fn clang_isVolatileQualifiedType(T: CXType) -> c_uint;
- pub fn clang_isRestrictQualifiedType(T: CXType) -> c_uint;
- pub fn clang_getPointeeType(T: CXType) -> CXType;
- pub fn clang_getTypeDeclaration(T: CXType) -> CXCursor;
- pub fn clang_getDeclObjCTypeEncoding(C: CXCursor) -> CXString;
- pub fn clang_getTypeKindSpelling(K: Enum_CXTypeKind) -> CXString;
- pub fn clang_getFunctionTypeCallingConv(T: CXType) -> Enum_CXCallingConv;
- pub fn clang_getResultType(T: CXType) -> CXType;
- pub fn clang_getNumArgTypes(T: CXType) -> c_int;
- pub fn clang_getArgType(T: CXType, i: c_uint) -> CXType;
- pub fn clang_isFunctionTypeVariadic(T: CXType) -> c_uint;
- pub fn clang_getCursorResultType(C: CXCursor) -> CXType;
- pub fn clang_isPODType(T: CXType) -> c_uint;
- pub fn clang_getElementType(T: CXType) -> CXType;
- pub fn clang_getNumElements(T: CXType) -> c_longlong;
- pub fn clang_getArrayElementType(T: CXType) -> CXType;
- pub fn clang_getArraySize(T: CXType) -> c_longlong;
- pub fn clang_Type_getAlignOf(T: CXType) -> c_longlong;
- pub fn clang_Type_getClassType(T: CXType) -> CXType;
- pub fn clang_Type_getSizeOf(T: CXType) -> c_longlong;
- pub fn clang_Type_getOffsetOf(T: CXType, S: *const c_char) ->
- c_longlong;
- pub fn clang_Type_getCXXRefQualifier(T: CXType) ->
- Enum_CXRefQualifierKind;
- pub fn clang_Type_getNumTemplateArguments(T: CXType) -> c_int;
- pub fn clang_Type_getTemplateArgumentAsType(T: CXType, i: c_int) ->
- CXType;
- #[cfg(not(feature="llvm_stable"))]
- pub fn clang_Type_getNamedType(CT: CXType) -> CXType;
- pub fn clang_Cursor_isBitField(C: CXCursor) -> c_uint;
- #[cfg(not(feature="llvm_stable"))]
- pub fn clang_Cursor_isFunctionInlined(C: CXCursor) -> c_uint;
- pub fn clang_isVirtualBase(arg1: CXCursor) -> c_uint;
- pub fn clang_getCXXAccessSpecifier(arg1: CXCursor) ->
- Enum_CX_CXXAccessSpecifier;
- pub fn clang_getNumOverloadedDecls(cursor: CXCursor) -> c_uint;
- pub fn clang_getOverloadedDecl(cursor: CXCursor, index: c_uint) ->
- CXCursor;
- pub fn clang_getIBOutletCollectionType(arg1: CXCursor) -> CXType;
- pub fn clang_visitChildren(parent: CXCursor, visitor: CXCursorVisitor,
- client_data: CXClientData) -> c_uint;
- pub fn clang_getCursorUSR(arg1: CXCursor) -> CXString;
- pub fn clang_constructUSR_ObjCClass(class_name: *const c_char) ->
- CXString;
- pub fn clang_constructUSR_ObjCCategory(class_name: *const c_char,
- category_name:
- *const c_char) ->
- CXString;
- pub fn clang_constructUSR_ObjCProtocol(protocol_name:
- *const c_char) ->
- CXString;
- pub fn clang_constructUSR_ObjCIvar(name: *const c_char,
- classUSR: CXString) -> CXString;
- pub fn clang_constructUSR_ObjCMethod(name: *const c_char,
- isInstanceMethod: c_uint,
- classUSR: CXString) -> CXString;
- pub fn clang_constructUSR_ObjCProperty(property: *const c_char,
- classUSR: CXString) -> CXString;
- pub fn clang_getCursorSpelling(arg1: CXCursor) -> CXString;
- pub fn clang_Cursor_getSpellingNameRange(arg1: CXCursor,
- pieceIndex: c_uint,
- options: c_uint) ->
- CXSourceRange;
- pub fn clang_Cursor_getOffsetOfField(C: CXCursor) -> c_longlong;
- pub fn clang_getCursorDisplayName(arg1: CXCursor) -> CXString;
- pub fn clang_getCursorReferenced(arg1: CXCursor) -> CXCursor;
- pub fn clang_getCursorDefinition(arg1: CXCursor) -> CXCursor;
- pub fn clang_isCursorDefinition(arg1: CXCursor) -> c_uint;
- pub fn clang_getCanonicalCursor(arg1: CXCursor) -> CXCursor;
- pub fn clang_Cursor_getObjCSelectorIndex(arg1: CXCursor) -> c_int;
- pub fn clang_Cursor_isDynamicCall(C: CXCursor) -> c_int;
- pub fn clang_Cursor_getReceiverType(C: CXCursor) -> CXType;
- pub fn clang_Cursor_getObjCPropertyAttributes(C: CXCursor,
- reserved: c_uint) ->
- c_uint;
- pub fn clang_Cursor_getObjCDeclQualifiers(C: CXCursor) -> c_uint;
- pub fn clang_Cursor_isObjCOptional(C: CXCursor) -> c_uint;
- pub fn clang_Cursor_isVariadic(C: CXCursor) -> c_uint;
- pub fn clang_Cursor_getCommentRange(C: CXCursor) -> CXSourceRange;
- pub fn clang_Cursor_getRawCommentText(C: CXCursor) -> CXString;
- pub fn clang_Cursor_getBriefCommentText(C: CXCursor) -> CXString;
- pub fn clang_Cursor_getMangling(C: CXCursor) -> CXString;
- pub fn clang_Cursor_getParsedComment(C: CXCursor) -> CXComment;
- pub fn clang_Cursor_getModule(C: CXCursor) -> CXModule;
- pub fn clang_Cursor_isAnonymous(C: CXCursor) -> c_uint;
- pub fn clang_Module_getASTFile(Module: CXModule) -> CXFile;
- pub fn clang_Module_getParent(Module: CXModule) -> CXModule;
- pub fn clang_Module_getName(Module: CXModule) -> CXString;
- pub fn clang_Module_getFullName(Module: CXModule) -> CXString;
- pub fn clang_Module_getNumTopLevelHeaders(arg1: CXTranslationUnit,
- Module: CXModule) ->
- c_uint;
- pub fn clang_Module_getTopLevelHeader(arg1: CXTranslationUnit,
- Module: CXModule,
- Index: c_uint) -> CXFile;
- pub fn clang_Comment_getKind(Comment: CXComment) -> Enum_CXCommentKind;
- pub fn clang_Comment_getNumChildren(Comment: CXComment) -> c_uint;
- pub fn clang_Comment_getChild(Comment: CXComment,
- ChildIdx: c_uint) -> CXComment;
- pub fn clang_Comment_isWhitespace(Comment: CXComment) -> c_uint;
- pub fn clang_InlineContentComment_hasTrailingNewline(Comment: CXComment)
- -> c_uint;
- pub fn clang_TextComment_getText(Comment: CXComment) -> CXString;
- pub fn clang_InlineCommandComment_getCommandName(Comment: CXComment) ->
- CXString;
- pub fn clang_InlineCommandComment_getRenderKind(Comment: CXComment) ->
- Enum_CXCommentInlineCommandRenderKind;
- pub fn clang_InlineCommandComment_getNumArgs(Comment: CXComment) ->
- c_uint;
- pub fn clang_InlineCommandComment_getArgText(Comment: CXComment,
- ArgIdx: c_uint) ->
- CXString;
- pub fn clang_HTMLTagComment_getTagName(Comment: CXComment) -> CXString;
- pub fn clang_HTMLStartTagComment_isSelfClosing(Comment: CXComment) ->
- c_uint;
- pub fn clang_HTMLStartTag_getNumAttrs(Comment: CXComment) ->
- c_uint;
- pub fn clang_HTMLStartTag_getAttrName(Comment: CXComment,
- AttrIdx: c_uint) ->
- CXString;
- pub fn clang_HTMLStartTag_getAttrValue(Comment: CXComment,
- AttrIdx: c_uint) ->
- CXString;
- pub fn clang_BlockCommandComment_getCommandName(Comment: CXComment) ->
- CXString;
- pub fn clang_BlockCommandComment_getNumArgs(Comment: CXComment) ->
- c_uint;
- pub fn clang_BlockCommandComment_getArgText(Comment: CXComment,
- ArgIdx: c_uint) ->
- CXString;
- pub fn clang_BlockCommandComment_getParagraph(Comment: CXComment) ->
- CXComment;
- pub fn clang_ParamCommandComment_getParamName(Comment: CXComment) ->
- CXString;
- pub fn clang_ParamCommandComment_isParamIndexValid(Comment: CXComment) ->
- c_uint;
- pub fn clang_ParamCommandComment_getParamIndex(Comment: CXComment) ->
- c_uint;
- pub fn clang_ParamCommandComment_isDirectionExplicit(Comment: CXComment)
- -> c_uint;
- pub fn clang_ParamCommandComment_getDirection(Comment: CXComment) ->
- Enum_CXCommentParamPassDirection;
- pub fn clang_TParamCommandComment_getParamName(Comment: CXComment) ->
- CXString;
- pub fn clang_TParamCommandComment_isParamPositionValid(Comment: CXComment)
- -> c_uint;
- pub fn clang_TParamCommandComment_getDepth(Comment: CXComment) ->
- c_uint;
- pub fn clang_TParamCommandComment_getIndex(Comment: CXComment,
- Depth: c_uint) ->
- c_uint;
- pub fn clang_VerbatimBlockLineComment_getText(Comment: CXComment) ->
- CXString;
- pub fn clang_VerbatimLineComment_getText(Comment: CXComment) -> CXString;
- pub fn clang_HTMLTagComment_getAsString(Comment: CXComment) -> CXString;
- pub fn clang_FullComment_getAsHTML(Comment: CXComment) -> CXString;
- pub fn clang_FullComment_getAsXML(Comment: CXComment) -> CXString;
- pub fn clang_CXXMethod_isPureVirtual(C: CXCursor) -> c_uint;
- pub fn clang_CXXMethod_isConst(C: CXCursor) -> c_uint;
- pub fn clang_CXXMethod_isStatic(C: CXCursor) -> c_uint;
- pub fn clang_CXXMethod_isVirtual(C: CXCursor) -> c_uint;
- pub fn clang_CXXField_isMutable(C: CXCursor) -> c_uint;
- pub fn clang_getTemplateCursorKind(C: CXCursor) -> Enum_CXCursorKind;
- pub fn clang_getSpecializedCursorTemplate(C: CXCursor) -> CXCursor;
- pub fn clang_getCursorReferenceNameRange(C: CXCursor,
- NameFlags: c_uint,
- PieceIndex: c_uint) ->
- CXSourceRange;
- pub fn clang_getTokenKind(arg1: CXToken) -> CXTokenKind;
- pub fn clang_getTokenSpelling(arg1: CXTranslationUnit, arg2: CXToken) ->
- CXString;
- pub fn clang_getTokenLocation(arg1: CXTranslationUnit, arg2: CXToken) ->
- CXSourceLocation;
- pub fn clang_getTokenExtent(arg1: CXTranslationUnit, arg2: CXToken) ->
- CXSourceRange;
- pub fn clang_tokenize(TU: CXTranslationUnit, Range: CXSourceRange,
- Tokens: *mut *mut CXToken,
- NumTokens: *mut c_uint);
- pub fn clang_annotateTokens(TU: CXTranslationUnit, Tokens: *mut CXToken,
- NumTokens: c_uint,
- Cursors: *mut CXCursor);
- pub fn clang_disposeTokens(TU: CXTranslationUnit, Tokens: *mut CXToken,
- NumTokens: c_uint);
- pub fn clang_getCursorKindSpelling(Kind: Enum_CXCursorKind) -> CXString;
- pub fn clang_getDefinitionSpellingAndExtent(arg1: CXCursor,
- startBuf:
- *mut *const c_char,
- endBuf:
- *mut *const c_char,
- startLine:
- *mut c_uint,
- startColumn:
- *mut c_uint,
- endLine: *mut c_uint,
- endColumn:
- *mut c_uint);
- pub fn clang_enableStackTraces();
- pub fn clang_executeOnThread(_fn:
- ::std::option::Option<extern "C" fn
- (arg1:
- *mut c_void)>,
- user_data: *mut c_void,
- stack_size: c_uint);
- pub fn clang_getCompletionChunkKind(completion_string: CXCompletionString,
- chunk_number: c_uint) ->
- Enum_CXCompletionChunkKind;
- pub fn clang_getCompletionChunkText(completion_string: CXCompletionString,
- chunk_number: c_uint) ->
- CXString;
- pub fn clang_getCompletionChunkCompletionString(completion_string:
- CXCompletionString,
- chunk_number:
- c_uint) ->
- CXCompletionString;
- pub fn clang_getNumCompletionChunks(completion_string: CXCompletionString)
- -> c_uint;
- pub fn clang_getCompletionPriority(completion_string: CXCompletionString)
- -> c_uint;
- pub fn clang_getCompletionAvailability(completion_string:
- CXCompletionString) ->
- Enum_CXAvailabilityKind;
- pub fn clang_getCompletionNumAnnotations(completion_string:
- CXCompletionString) ->
- c_uint;
- pub fn clang_getCompletionAnnotation(completion_string:
- CXCompletionString,
- annotation_number: c_uint) ->
- CXString;
- pub fn clang_getCompletionParent(completion_string: CXCompletionString,
- kind: *mut Enum_CXCursorKind) ->
- CXString;
- pub fn clang_getCompletionBriefComment(completion_string:
- CXCompletionString) ->
- CXString;
- pub fn clang_getCursorCompletionString(cursor: CXCursor) ->
- CXCompletionString;
- pub fn clang_defaultCodeCompleteOptions() -> c_uint;
- pub fn clang_codeCompleteAt(TU: CXTranslationUnit,
- complete_filename: *const c_char,
- complete_line: c_uint,
- complete_column: c_uint,
- unsaved_files: *mut Struct_CXUnsavedFile,
- num_unsaved_files: c_uint,
- options: c_uint) ->
- *mut CXCodeCompleteResults;
- pub fn clang_sortCodeCompletionResults(Results: *mut CXCompletionResult,
- NumResults: c_uint);
- pub fn clang_disposeCodeCompleteResults(Results:
- *mut CXCodeCompleteResults);
- pub fn clang_codeCompleteGetNumDiagnostics(Results:
- *mut CXCodeCompleteResults)
- -> c_uint;
- pub fn clang_codeCompleteGetDiagnostic(Results:
- *mut CXCodeCompleteResults,
- Index: c_uint) ->
- CXDiagnostic;
- pub fn clang_codeCompleteGetContexts(Results: *mut CXCodeCompleteResults)
- -> c_ulonglong;
- pub fn clang_codeCompleteGetContainerKind(Results:
- *mut CXCodeCompleteResults,
- IsIncomplete:
- *mut c_uint) ->
- Enum_CXCursorKind;
- pub fn clang_codeCompleteGetContainerUSR(Results:
- *mut CXCodeCompleteResults)
- -> CXString;
- pub fn clang_codeCompleteGetObjCSelector(Results:
- *mut CXCodeCompleteResults)
- -> CXString;
- pub fn clang_getClangVersion() -> CXString;
- pub fn clang_toggleCrashRecovery(isEnabled: c_uint);
- pub fn clang_getInclusions(tu: CXTranslationUnit,
- visitor: CXInclusionVisitor,
- client_data: CXClientData);
- pub fn clang_getRemappings(path: *const c_char) -> CXRemapping;
- pub fn clang_getRemappingsFromFileList(filePaths:
- *mut *const c_char,
- numFiles: c_uint) ->
- CXRemapping;
- pub fn clang_remap_getNumFiles(arg1: CXRemapping) -> c_uint;
- pub fn clang_remap_getFilenames(arg1: CXRemapping, index: c_uint,
- original: *mut CXString,
- transformed: *mut CXString);
- pub fn clang_remap_dispose(arg1: CXRemapping);
- pub fn clang_findReferencesInFile(cursor: CXCursor, file: CXFile,
- visitor: CXCursorAndRangeVisitor) ->
- CXResult;
- pub fn clang_findIncludesInFile(TU: CXTranslationUnit, file: CXFile,
- visitor: CXCursorAndRangeVisitor) ->
- CXResult;
- pub fn clang_index_isEntityObjCContainerKind(arg1: CXIdxEntityKind) ->
- c_int;
- pub fn clang_index_getObjCContainerDeclInfo(arg1: *const CXIdxDeclInfo) ->
- *const CXIdxObjCContainerDeclInfo;
- pub fn clang_index_getObjCInterfaceDeclInfo(arg1: *const CXIdxDeclInfo) ->
- *const CXIdxObjCInterfaceDeclInfo;
- pub fn clang_index_getObjCCategoryDeclInfo(arg1: *const CXIdxDeclInfo) ->
- *const CXIdxObjCCategoryDeclInfo;
- pub fn clang_index_getObjCProtocolRefListInfo(arg1: *const CXIdxDeclInfo)
- -> *const CXIdxObjCProtocolRefListInfo;
- pub fn clang_index_getObjCPropertyDeclInfo(arg1: *const CXIdxDeclInfo) ->
- *const CXIdxObjCPropertyDeclInfo;
- pub fn clang_index_getIBOutletCollectionAttrInfo(arg1:
- *const CXIdxAttrInfo)
- -> *const CXIdxIBOutletCollectionAttrInfo;
- pub fn clang_index_getCXXClassDeclInfo(arg1: *const CXIdxDeclInfo) ->
- *const CXIdxCXXClassDeclInfo;
- pub fn clang_index_getClientContainer(arg1: *const CXIdxContainerInfo) ->
- CXIdxClientContainer;
- pub fn clang_index_setClientContainer(arg1: *const CXIdxContainerInfo,
- arg2: CXIdxClientContainer);
- pub fn clang_index_getClientEntity(arg1: *const CXIdxEntityInfo) ->
- CXIdxClientEntity;
- pub fn clang_index_setClientEntity(arg1: *const CXIdxEntityInfo,
- arg2: CXIdxClientEntity);
- pub fn clang_IndexAction_create(CIdx: CXIndex) -> CXIndexAction;
- pub fn clang_IndexAction_dispose(arg1: CXIndexAction);
- pub fn clang_indexSourceFile(arg1: CXIndexAction,
- client_data: CXClientData,
- index_callbacks: *mut IndexerCallbacks,
- index_callbacks_size: c_uint,
- index_options: c_uint,
- source_filename: *const c_char,
- command_line_args:
- *const *const c_char,
- num_command_line_args: c_int,
- unsaved_files: *mut Struct_CXUnsavedFile,
- num_unsaved_files: c_uint,
- out_TU: *mut CXTranslationUnit,
- TU_options: c_uint) -> c_int;
- pub fn clang_indexTranslationUnit(arg1: CXIndexAction,
- client_data: CXClientData,
- index_callbacks: *mut IndexerCallbacks,
- index_callbacks_size: c_uint,
- index_options: c_uint,
- arg2: CXTranslationUnit) ->
- c_int;
- pub fn clang_indexLoc_getFileLocation(loc: CXIdxLoc,
- indexFile: *mut CXIdxClientFile,
- file: *mut CXFile,
- line: *mut c_uint,
- column: *mut c_uint,
- offset: *mut c_uint);
- pub fn clang_indexLoc_getCXSourceLocation(loc: CXIdxLoc) ->
- CXSourceLocation;
- #[cfg(not(feature="llvm_stable"))]
- pub fn clang_Cursor_Evaluate(C: CXCursor) -> CXEvalResult;
- #[cfg(not(feature="llvm_stable"))]
- pub fn clang_EvalResult_getKind(E: CXEvalResult) -> Enum_CXEvalResultKind;
- #[cfg(not(feature="llvm_stable"))]
- pub fn clang_EvalResult_getAsInt(E: CXEvalResult) -> c_int;
- #[cfg(not(feature="llvm_stable"))]
- pub fn clang_EvalResult_getAsDouble(E: CXEvalResult) -> c_double;
- #[cfg(not(feature="llvm_stable"))]
- pub fn clang_EvalResult_getAsStr(E: CXEvalResult) -> *const c_char;
- #[cfg(not(feature="llvm_stable"))]
- pub fn clang_EvalResult_dispose(E: CXEvalResult);
-}
diff --git a/libbindgen/src/ir/annotations.rs b/libbindgen/src/ir/annotations.rs
index 948dbc96..968e2da1 100644
--- a/libbindgen/src/ir/annotations.rs
+++ b/libbindgen/src/ir/annotations.rs
@@ -126,7 +126,7 @@ impl Annotations {
}
fn parse(&mut self, comment: &clang::Comment, matched: &mut bool) {
- use clangll::CXComment_HTMLStartTag;
+ use clang_sys::CXComment_HTMLStartTag;
if comment.kind() == CXComment_HTMLStartTag &&
comment.get_tag_name() == "div" &&
comment.get_tag_attrs()
diff --git a/libbindgen/src/ir/comp.rs b/libbindgen/src/ir/comp.rs
index d2ace023..75b3467b 100644
--- a/libbindgen/src/ir/comp.rs
+++ b/libbindgen/src/ir/comp.rs
@@ -470,7 +470,7 @@ impl CompInfo {
location: Option<clang::Cursor>,
ctx: &mut BindgenContext)
-> Result<Self, ParseError> {
- use clangll::*;
+ use clang_sys::*;
// Sigh... For class templates we want the location, for
// specialisations, we want the declaration... So just try both.
//
@@ -750,7 +750,7 @@ impl CompInfo {
CXCursor_FunctionTemplate |
CXCursor_ConversionFunction => {}
_ => {
- warn!("unhandled comp member `{}` (kind {}) in `{}` ({})",
+ warn!("unhandled comp member `{}` (kind {:?}) in `{}` ({})",
cur.spelling(),
cur.kind(),
cursor.spelling(),
@@ -770,7 +770,7 @@ impl CompInfo {
fn kind_from_cursor(cursor: &clang::Cursor)
-> Result<CompKind, ParseError> {
- use clangll::*;
+ use clang_sys::*;
Ok(match cursor.kind() {
CXCursor_UnionDecl => CompKind::Union,
CXCursor_ClassDecl |
diff --git a/libbindgen/src/ir/context.rs b/libbindgen/src/ir/context.rs
index 8be064b8..6069121c 100644
--- a/libbindgen/src/ir/context.rs
+++ b/libbindgen/src/ir/context.rs
@@ -124,12 +124,12 @@ pub struct BindgenContext<'ctx> {
impl<'ctx> BindgenContext<'ctx> {
/// Construct the context for the given `options`.
pub fn new(options: BindgenOptions) -> Self {
- use clangll;
+ use clang_sys;
let index = clang::Index::new(false, true);
let parse_options =
- clangll::CXTranslationUnit_DetailedPreprocessingRecord;
+ clang_sys::CXTranslationUnit_DetailedPreprocessingRecord;
let translation_unit =
clang::TranslationUnit::parse(&index,
"",
@@ -551,7 +551,7 @@ impl<'ctx> BindgenContext<'ctx> {
location: clang::Cursor,
declaration: clang::Cursor)
-> ItemId {
- use clangll::*;
+ use clang_sys::*;
let mut args = vec![];
location.visit(|c| {
if c.kind() == CXCursor_TypeRef {
@@ -610,7 +610,7 @@ impl<'ctx> BindgenContext<'ctx> {
}
} else {
assert_eq!(declaration.kind(),
- ::clangll::CXCursor_TypeAliasTemplateDecl,
+ ::clang_sys::CXCursor_TypeAliasTemplateDecl,
"Expected wrappable type");
}
@@ -639,7 +639,7 @@ impl<'ctx> BindgenContext<'ctx> {
ty: &clang::Type,
location: Option<clang::Cursor>)
-> Option<ItemId> {
- use clangll::{CXCursor_TypeAliasTemplateDecl, CXCursor_TypeRef};
+ use clang_sys::{CXCursor_TypeAliasTemplateDecl, CXCursor_TypeRef};
debug!("builtin_or_resolved_ty: {:?}, {:?}, {:?}",
ty,
location,
@@ -753,7 +753,7 @@ impl<'ctx> BindgenContext<'ctx> {
ty: &clang::Type,
_declaration: Cursor)
-> Option<ItemId> {
- use clangll::*;
+ use clang_sys::*;
let type_kind = match ty.kind() {
CXType_NullPtr => TypeKind::NullPtr,
CXType_Void => TypeKind::Void,
@@ -885,7 +885,7 @@ impl<'ctx> BindgenContext<'ctx> {
/// Given a CXCursor_Namespace cursor, return the item id of the
/// corresponding module, or create one on the fly.
pub fn module(&mut self, cursor: clang::Cursor) -> ItemId {
- use clangll::*;
+ use clang_sys::*;
assert!(cursor.kind() == CXCursor_Namespace, "Be a nice person");
let cursor = cursor.canonical();
if let Some(id) = self.modules.get(&cursor) {
diff --git a/libbindgen/src/ir/enum_ty.rs b/libbindgen/src/ir/enum_ty.rs
index f728b22a..dc6a8665 100644
--- a/libbindgen/src/ir/enum_ty.rs
+++ b/libbindgen/src/ir/enum_ty.rs
@@ -43,7 +43,7 @@ impl Enum {
pub fn from_ty(ty: &clang::Type,
ctx: &mut BindgenContext)
-> Result<Self, ParseError> {
- use clangll::*;
+ use clang_sys::*;
if ty.kind() != CXType_Enum {
return Err(ParseError::Continue);
}
diff --git a/libbindgen/src/ir/function.rs b/libbindgen/src/ir/function.rs
index 5a864cfc..df518ab1 100644
--- a/libbindgen/src/ir/function.rs
+++ b/libbindgen/src/ir/function.rs
@@ -1,7 +1,7 @@
//! Intermediate representation for C/C++ functions and methods.
use clang;
-use clangll::Enum_CXCallingConv;
+use clang_sys::CXCallingConv;
use parse::{ClangItemParser, ClangSubItemParser, ParseError, ParseResult};
use super::context::{BindgenContext, ItemId};
use super::item::Item;
@@ -76,8 +76,8 @@ pub struct FunctionSig {
abi: abi::Abi,
}
-fn get_abi(cc: Enum_CXCallingConv) -> abi::Abi {
- use clangll::*;
+fn get_abi(cc: CXCallingConv) -> abi::Abi {
+ use clang_sys::*;
match cc {
CXCallingConv_Default => abi::Abi::C,
CXCallingConv_C => abi::Abi::C,
@@ -85,7 +85,7 @@ fn get_abi(cc: Enum_CXCallingConv) -> abi::Abi {
CXCallingConv_X86FastCall => abi::Abi::Fastcall,
CXCallingConv_AAPCS => abi::Abi::Aapcs,
CXCallingConv_X86_64Win64 => abi::Abi::Win64,
- other => panic!("unsupported calling convention: {}", other),
+ other => panic!("unsupported calling convention: {:?}", other),
}
}
@@ -131,7 +131,7 @@ impl FunctionSig {
cursor: &clang::Cursor,
ctx: &mut BindgenContext)
-> Result<Self, ParseError> {
- use clangll::*;
+ use clang_sys::*;
debug!("FunctionSig::from_ty {:?} {:?}", ty, cursor);
// Don't parse operatorxx functions in C++
@@ -237,7 +237,7 @@ impl ClangSubItemParser for Function {
fn parse(cursor: clang::Cursor,
context: &mut BindgenContext)
-> Result<ParseResult<Self>, ParseError> {
- use clangll::*;
+ use clang_sys::*;
match cursor.kind() {
CXCursor_FunctionDecl |
CXCursor_CXXMethod => {}
diff --git a/libbindgen/src/ir/item.rs b/libbindgen/src/ir/item.rs
index 6601216e..47ece3eb 100644
--- a/libbindgen/src/ir/item.rs
+++ b/libbindgen/src/ir/item.rs
@@ -1,7 +1,7 @@
//! Bindgen's core intermediate representation type.
use clang;
-use clangll;
+use clang_sys;
use parse::{ClangItemParser, ClangSubItemParser, ParseError, ParseResult};
use std::cell::{Cell, RefCell};
use std::fmt::Write;
@@ -824,8 +824,8 @@ fn visit_child(cur: clang::Cursor,
parent_id: Option<ItemId>,
ctx: &mut BindgenContext,
result: &mut Result<ItemId, ParseError>)
- -> clangll::Enum_CXChildVisitResult {
- use clangll::*;
+ -> clang_sys::CXChildVisitResult {
+ use clang_sys::*;
if result.is_ok() {
return CXChildVisit_Break;
}
@@ -873,7 +873,7 @@ impl ClangItemParser for Item {
use ir::function::Function;
use ir::module::Module;
use ir::var::Var;
- use clangll::*;
+ use clang_sys::*;
if !cursor.is_valid() {
return Err(ParseError::Continue);
@@ -1049,7 +1049,7 @@ impl ClangItemParser for Item {
parent_id: Option<ItemId>,
ctx: &mut BindgenContext)
-> Result<ItemId, ParseError> {
- use clangll::*;
+ use clang_sys::*;
let decl = {
let decl = ty.declaration();
diff --git a/libbindgen/src/ir/module.rs b/libbindgen/src/ir/module.rs
index 7546a63c..5fae3932 100644
--- a/libbindgen/src/ir/module.rs
+++ b/libbindgen/src/ir/module.rs
@@ -43,7 +43,7 @@ impl ClangSubItemParser for Module {
fn parse(cursor: clang::Cursor,
ctx: &mut BindgenContext)
-> Result<ParseResult<Self>, ParseError> {
- use clangll::*;
+ use clang_sys::*;
match cursor.kind() {
CXCursor_Namespace => {
let module_id = ctx.module(cursor);
diff --git a/libbindgen/src/ir/ty.rs b/libbindgen/src/ir/ty.rs
index 8b0116df..dde2176e 100644
--- a/libbindgen/src/ir/ty.rs
+++ b/libbindgen/src/ir/ty.rs
@@ -531,7 +531,7 @@ impl Type {
parent_id: Option<ItemId>,
ctx: &mut BindgenContext)
-> Result<ParseResult<Self>, ParseError> {
- use clangll::*;
+ use clang_sys::*;
{
let already_resolved =
ctx.builtin_or_resolved_ty(potential_id,
diff --git a/libbindgen/src/ir/var.rs b/libbindgen/src/ir/var.rs
index b819bfa4..518141c6 100644
--- a/libbindgen/src/ir/var.rs
+++ b/libbindgen/src/ir/var.rs
@@ -88,7 +88,7 @@ impl ClangSubItemParser for Var {
fn parse(cursor: clang::Cursor,
ctx: &mut BindgenContext)
-> Result<ParseResult<Self>, ParseError> {
- use clangll::*;
+ use clang_sys::*;
use cexpr::expr::EvalResult;
use cexpr::literal::CChar;
match cursor.kind() {
@@ -287,7 +287,7 @@ fn parse_int_literal_tokens(cursor: &clang::Cursor,
fn get_integer_literal_from_cursor(cursor: &clang::Cursor,
unit: &clang::TranslationUnit)
-> Option<i64> {
- use clangll::*;
+ use clang_sys::*;
let mut value = None;
cursor.visit(|c| {
match c.kind() {
diff --git a/libbindgen/src/lib.rs b/libbindgen/src/lib.rs
index 29580f36..ca7a9460 100644
--- a/libbindgen/src/lib.rs
+++ b/libbindgen/src/lib.rs
@@ -56,7 +56,6 @@ macro_rules! doc_mod {
};
}
-mod clangll;
mod clang;
mod ir;
mod parse;
@@ -630,12 +629,12 @@ fn filter_builtins(ctx: &BindgenContext, cursor: &clang::Cursor) -> bool {
pub fn parse_one(ctx: &mut BindgenContext,
cursor: clang::Cursor,
parent: Option<ItemId>)
- -> clangll::Enum_CXVisitorResult {
+ -> clang_sys::CXChildVisitResult {
if !filter_builtins(ctx, &cursor) {
return CXChildVisit_Continue;
}
- use clangll::CXChildVisit_Continue;
+ use clang_sys::CXChildVisit_Continue;
match Item::parse(cursor, parent, ctx) {
Ok(..) => {},
Err(ParseError::Continue) => {}
@@ -648,12 +647,11 @@ pub fn parse_one(ctx: &mut BindgenContext,
/// Parse the Clang AST into our `Item` internal representation.
fn parse(context: &mut BindgenContext) -> Result<(), ()> {
- use clang::Diagnostic;
- use clangll::*;
+ use clang_sys::*;
let mut any_error = false;
for d in context.translation_unit().diags().iter() {
- let msg = d.format(Diagnostic::default_opts());
+ let msg = d.format();
let is_err = d.severity() >= CXDiagnostic_Error;
println!("{}, err: {}", msg, is_err);
any_error |= is_err;