ppx 0.1.2

C-style pre-processor library
Documentation

PPX

Small C-style macro expansion library.

Example

let result = ppx::parse_string(
    "
    #param A
    #define B hello
    #define fn(name), name!
    
    B A fn(John)
    ",
    base_dir,
    ["world"].into_iter()
);
// result = "hello world, John!"

More examples in the tests folder.

Features

  • #param: A parameter that can be passed when including the file, or from the parse* functions.

  • #define: Define a simple substition, or a function-like macro

  • #include: Include another file and parse it as well. Optionally accepts parameters which will be used for substituting the names specified by #param.

  • Macros include_ppx! and include_ppx_string!: Parse a template at compile time instead of at runtime. Enable macros with feature macros or macros-stable.

planned

  • #if

Development

Running tests

cargo test --workspace

License

MIT or Apache-2.0.