CodeWarrior C++ symbol demangler
Go to file
Luke Street f31edda06e Support MW extensions & double underscore fixes
Enable MW extensions (`__int128`,
`__vec2x32float__`) with `--mw-extensions`.
Disabled by default since these extensions
use `1` and `2` as type indicators, conflicting
with other demangling schemes (template args,
type names).

Includes extra logic to handle cases where
a function's class or template arguments
contain a type with a double underscore.

Fixes #2
2024-03-13 10:44:15 -06:00
.cargo Update CI workflow 2022-11-27 16:23:05 -05:00
.github/workflows Update CI workflow 2022-11-27 16:23:05 -05:00
src Support MW extensions & double underscore fixes 2024-03-13 10:44:15 -06:00
.gitignore Initial commit 2022-09-03 08:47:21 -04:00
Cargo.toml Support MW extensions & double underscore fixes 2024-03-13 10:44:15 -06:00
LICENSE-APACHE Initial commit 2022-09-03 08:47:21 -04:00
LICENSE-MIT Initial commit 2022-09-03 08:47:21 -04:00
README.md Update MSRV to 1.58 2023-02-02 15:59:55 -05:00
deny.toml Initial commit 2022-09-03 08:47:21 -04:00
rustfmt.toml Initial commit 2022-09-03 08:47:21 -04:00

README.md

cwdemangle Build Status Latest Version Api Rustdoc Rust Version

A CodeWarrior C++ symbol demangler.

Usage

CLI:

cwdemangle 'BuildLight__9CGuiLightCFv'

Library:

use cwdemangle::{demangle, DemangleOptions};

if let Some(result) = demangle("BuildLight__9CGuiLightCFv", &DemangleOptions::default()) {
    println!("{}", result);
} else {
    eprintln!("Couldn't demangle symbol (not a C++ symbol?)");
}

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.