# chordsketch-core

Parser, AST, and transforms for the [ChordPro](https://www.chordpro.org/)
file format. This crate has **zero external dependencies**.

Part of the [ChordSketch](https://github.com/koedame/chordsketch) project.

## Usage

```rust
use chordsketch_core::parser::parse;

let input = "{title: Amazing Grace}\n[G]Amazing [G7]grace";
let song = parse(input).unwrap();

assert_eq!(song.metadata.title.as_deref(), Some("Amazing Grace"));
```

## Features

- Full ChordPro format parser (100+ directive types)
- Structured AST representation
- Chord transposition
- Configuration system with RRJSON support
- Multi-song file parsing (`{new_song}`)
- Inline markup, delegate environments, conditional selectors

## Documentation

[API documentation on docs.rs](https://docs.rs/chordsketch-core)

## License

[MIT](../../LICENSE)
