3 releases
| new 0.1.2 | Jan 31, 2026 |
|---|---|
| 0.1.1 | Jan 31, 2026 |
| 0.1.0 | Jan 19, 2026 |
#2680 in Parser implementations
250KB
5K
SLoC
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:
#includedirectives
License
MIT
Dependencies
~49MB
~1M SLoC