codegraph-cpp 0.1.0

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

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