Python clang.cindex.CursorKind.CONSTRUCTOR Examples
The following are 4
code examples of clang.cindex.CursorKind.CONSTRUCTOR().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
clang.cindex.CursorKind
, or try the search function
.
Example #1
Source File: parser.py From pyopenvr with BSD 3-Clause "New" or "Revised" License | 6 votes |
def parse_copenvrcontext(self, cursor): name = cursor.type.spelling class_ = model.COpenVRContext(name=name, docstring=clean_comment(cursor)) for child in cursor.get_children(): if child.kind == CursorKind.CXX_ACCESS_SPEC_DECL: continue # no such thing in python elif child.kind == CursorKind.CONSTRUCTOR: continue # I will translate this manually elif child.kind == CursorKind.CXX_METHOD: if child.spelling == 'Clear': continue # I will translate this manually elif child.spelling == 'CheckClear': continue # I will translate this manually elif child.spelling.startswith('VR'): class_.add_vr_method_name(child.spelling) else: self.report_unparsed(child) elif child.kind == CursorKind.FIELD_DECL: if child.spelling.startswith('m_pVR'): class_.add_vr_member_name(child.spelling) else: self.report_unparsed(child) else: self.report_unparsed(child) return class_
Example #2
Source File: libclang_parser.py From AutoWIG with Apache License 2.0 | 5 votes |
def read_cursor(asg, cursor, scope): if cursor.kind is CursorKind.UNEXPOSED_DECL: if cursor.spelling == '': children = [] for child in cursor.get_children(): children.extend(read_cursor(asg, child, scope)) return children else: warnings.warn('Named unexposed cursor not read') return [] elif cursor.kind is CursorKind.TYPEDEF_DECL: return read_typedef(asg, cursor, scope) elif cursor.kind in [CursorKind.VAR_DECL, CursorKind.PARM_DECL]: return read_variable(asg, cursor, scope) elif cursor.kind in [CursorKind.FUNCTION_DECL, CursorKind.CXX_METHOD, CursorKind.DESTRUCTOR, CursorKind.CONSTRUCTOR]: return read_function(asg, cursor, scope) elif cursor.kind is CursorKind.FIELD_DECL: return read_field(asg, cursor, scope) elif cursor.kind in [CursorKind.ENUM_DECL, CursorKind.STRUCT_DECL, CursorKind.UNION_DECL, CursorKind.CLASS_DECL]: return read_tag(asg, cursor, scope) elif cursor.kind is CursorKind.NAMESPACE: return read_namespace(asg, cursor, scope) elif cursor.kind in [CursorKind.NAMESPACE_ALIAS, CursorKind.FUNCTION_TEMPLATE, CursorKind.USING_DECLARATION, CursorKind.USING_DIRECTIVE, CursorKind.UNEXPOSED_ATTR, CursorKind.CLASS_TEMPLATE, CursorKind.CLASS_TEMPLATE_PARTIAL_SPECIALIZATION, CursorKind.CXX_ACCESS_SPEC_DECL, CursorKind.CONVERSION_FUNCTION]: return [] else: warnings.warn('Undefined behaviour for \'' + str(cursor.kind) + '\' cursor') return []
Example #3
Source File: parser.py From pyopenvr with BSD 3-Clause "New" or "Revised" License | 5 votes |
def parse_struct(self, cursor): name = cursor.type.spelling struct = model.Struct(name=name, docstring=clean_comment(cursor)) for child in cursor.get_children(): if child.kind == CursorKind.FIELD_DECL: field = self.parse_field(child) struct.add_field(field) elif child.kind == CursorKind.CXX_BASE_SPECIFIER: struct.base = child.spelling elif child.kind == CursorKind.CONSTRUCTOR: print(f'*** WARNING *** skipping constructor for struct {cursor.spelling}') else: self.report_unparsed(child) return struct
Example #4
Source File: libclang_parser.py From AutoWIG with Apache License 2.0 | 4 votes |
def read_function(asg, cursor, scope): spelling = scope if spelling.startswith('class '): spelling = spelling[6:] elif spelling.startswith('union '): spelling = spelling[6:] elif spelling.startswith('struct '): spelling = spelling[7:] if not scope.endswith('::'): spelling = spelling + "::" + cursor.spelling else: spelling = spelling + cursor.spelling if cursor.kind in [CursorKind.DESTRUCTOR, CursorKind.CXX_METHOD, CursorKind.CONSTRUCTOR] and cursor.lexical_parent.kind is CursorKind.NAMESPACE: return [] else: if cursor.kind is not CursorKind.DESTRUCTOR: spelling = spelling + '::' + str(uuid.uuid4()) if cursor.kind is CursorKind.FUNCTION_DECL: asg._nodes[spelling] = dict(_proxy=FunctionProxy, _comment="") if cursor.location is not None: filename = str(Path(str(cursor.location.file)).abspath()) asg.add_file(filename, proxy=HeaderProxy, _language=asg._language) asg._nodes[spelling]['_header'] = filename elif cursor.kind is CursorKind.CXX_METHOD: asg._nodes[spelling] = dict(_proxy=MethodProxy, _is_static=cursor.is_static_method(), _is_volatile=False, _is_virtual=True, _is_const=cursor.is_const_method(), _is_pure=True, _comment="") elif cursor.kind is CursorKind.CONSTRUCTOR: asg._nodes[spelling] = dict(_proxy=ConstructorProxy, _is_virtual=False, #TODO _comment="") else: asg._nodes[spelling] = dict(_proxy=DestructorProxy, is_virtual=True, _comment="") asg._parameter_edges[spelling] = [] asg._syntax_edges[scope].append(spelling) try: with warnings.catch_warnings(): warnings.simplefilter("error") if cursor.kind in [CursorKind.FUNCTION_DECL, CursorKind.CXX_METHOD]: target, specifiers = read_qualified_type(asg, cursor.result_type) asg._type_edges[spelling] = dict(target=target, qualifiers=specifiers) for child in [child for child in cursor.get_children() if child.kind is CursorKind.PARM_DECL]: target, specifiers = read_qualified_type(asg, child.type) asg._parameter_edges[spelling].append(dict(name = child.spelling, target=target, qualifiers=specifiers)) except Warning as warning: asg._syntax_edges[scope].remove(spelling) asg._type_edges.pop(spelling, None) asg._parameter_edges.pop(spelling, None) asg._nodes.pop(spelling) warnings.warn(str(warning), warning.__class__) return [] else: read_access(asg, cursor.access_specifier, spelling) return [spelling]