codegraph-cpp

Crates.iocodegraph-cpp
lib.rscodegraph-cpp
version0.1.0
created_at2026-01-19 06:28:20.242083+00
updated_at2026-01-19 06:28:20.242083+00
descriptionC++ parser for CodeGraph - extracts code entities and relationships from C++ source files
homepage
repositoryhttps://github.com/anvanster/codegraph
max_upload_size
id2053854
size95,188
(anvanster)

documentation

README

codegraph-cpp

C++ parser for CodeGraph - extracts code entities and relationships from C++ source files.

Features

  • Parses C++ source files using tree-sitter
  • Extracts classes, structs, enums, and functions
  • Supports namespaces and nested namespaces
  • Handles templates and template parameters
  • Extracts inheritance relationships
  • Detects function calls and method invocations
  • Supports various C++ file extensions: .cpp, .cc, .cxx, .hpp, .hh, .hxx, .h

Usage

use codegraph::CodeGraph;
use codegraph_cpp::CppParser;
use codegraph_parser_api::CodeParser;
use std::path::Path;

let parser = CppParser::new();
let mut graph = CodeGraph::in_memory().unwrap();

let source = r#"
    namespace myns {
        class MyClass {
        public:
            void myMethod() {}
        };
    }
"#;

let file_info = parser
    .parse_source(source, Path::new("example.cpp"), &mut graph)
    .unwrap();

println!("Found {} classes", file_info.classes.len());
println!("Found {} functions", file_info.functions.len());

Supported Constructs

  • Classes: class, struct
  • Enums: enum, enum class
  • Functions: Free functions, methods, constructors, destructors
  • Namespaces: Named namespaces, nested namespaces
  • Templates: Class templates, function templates
  • Inheritance: Single and multiple inheritance
  • Access specifiers: public, private, protected
  • Includes: #include directives

License

MIT

Commit count: 41

cargo fmt