First off, thank you for considering contributing! We welcome any help, from documentation improvements to new feature implementations.
- Install Rust: If you don't have it, install Rust via rustup.
- Clone the Repository:
git clone https://github.com/your-username/rust-cel-parser.git - Build:
cargo build - Run Tests:
cargo test
We use standard Rust tooling to maintain code quality. Before submitting a pull request, please run:
cargo fmtto format your code.cargo clippyto catch common lints and style issues.cargo testto ensure all tests pass.
- Fork the repository.
- Create a new branch for your feature or bug fix (
git checkout -b my-awesome-feature). - Make your changes.
- Add tests for any new functionality.
- Ensure all checks (
fmt,clippy,test) pass. - Push your branch and open a pull request with a clear description of your changes.
src/parser/cel_grammar.pest: This file defines the formal grammar for CEL.src/parser/mod.rs: The parsing logic that usespestand a Pratt parser to convert token pairs into an AST.src/ast/mod.rs: Defines the coreExprenum and all other AST node types.src/ast/visitor.rs: Implements the Visitor pattern for AST traversal.src/ast/builder.rs: Provides a fluent API for constructing AST nodes.src/error.rs: Defines the library's public error types.