Skip to content

cpp

TREE_SITTER_QUERY = '(function_definition declarator: (function_declarator declarator: (identifier) @function.name)) @function.definition(function_definition declarator: (function_declarator declarator: (qualified_identifier scope: (namespace_identifier) @class.name name: (identifier) @function.name))) @function.definition(class_specifier name: (type_identifier) @class.name body: (field_declaration_list (function_definition declarator: (function_declarator declarator: (field_identifier) @function.name) ) @function.definition))' module-attribute

Tree-sitter query for extracting function names and definitions.

CPPExtractor

Bases: TreeSitterExtractor

Source code extractor for extracting C++ functions.

Source code in src/codablellm/languages/cpp.py
class CPPExtractor(TreeSitterExtractor):
    """
    Source code extractor for extracting C++ functions.
    """

    def __init__(self) -> None:
        super().__init__("C++", TREE_SITTER_QUERY)

    def get_extractable_files(self, path: PathLike) -> Set[Path]:
        return rglob_file_extensions(path, [".cpp", ".cc", ".cxx", ".c++"])

    def get_language(self) -> Language:
        return Language(tscpp.language())