AFLplusplus / AFLplusplus/LibAFL

Nautilus Grammar Macro

Offen
#3,343 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement
Vorherrschende Sprache
Rust
Sterne
2.6k
Forks
481
Ø Merge
2 T. 30 Min.
Gemergte PRs (30 T.)
16

Beschreibung

**Is your feature request related to a problem? Please describe.**
When writing Nautilus grammar, I've found it's annoying to use a separate file or just have to embed it in my Rust code in a way that doesn't benefit from Rust's typing system.

**Describe the solution you'd like**
I want there to be some sort of macro that makes it easy to make a Nautilus grammar, is checked at compile time, and just allows for more synergy in my code.

**Describe alternatives you've considered**
I've looked around for a macro that does something similar but I haven't found anything. The only alternatives are ones I don't really like working with, e.g. `NautilusContext::from_file` or hand rolling a vector in my code using `NautilusContext::with_rules`

**Additional context**
I made a [small macro crate](https://github.com/AshrafIbrahim03/nautilus-macro) that solves the exact problem I describe. I don't have a lot of experience making macros, but this seemed like a nice place to start. I would appreciate some feedback if this seems like a good feature.

The macro makes a Vec<[(&str,&[u8])]> which is what's needed by `NautilusContext::with_rules`. Using this macro with `NautilusContext::with_rules` allows for compile time checked Nautilus grammar definitions.

I figured making a PoC before directly submitting a PR would be better.

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.