RustPython / RustPython/Parser
A macro to generating AST with python grammar
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Rust
- Sterne
- 117
- Forks
- 38
- Ø Merge
- 4 T. 7 Std.
- Gemergte PRs (30 T.)
- 1
Beschreibung
Inspired by https://docs.rs/pmutil/latest/pmutil/macro.smart_quote.html
e.g.
ExprKind::Tuple(ast::ExprTuple {
elts: names
.iter()
.map(|&name| {
create_expr(ExprKind::Constant(
ast::ExprConstant {
value: Constant::Str(name.to_string()),
kind: None,
},
))
})
.collect(),
ctx: ExprContext::Load,
}))
can be rewritten to:
&python_ast! {
Vars { names },
"(*names)"
}
The grammar will be limited to legal python codes to leverage python parser.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, das in diesem Issue referenzierte pmutil-Makro smart_quote und den vorgeschlagenen Aufruf python_ast! zu lesen. Untersuche die Einstiegspunkte für Parser und AST-Erzeugung in RustPython/Parser, bevor du entscheidest, wie die Python-Grammatik eingeschränkt werden sollte. Als abgeschlossen gilt die Aufgabe, wenn das Makro legale Python-Snippets zusammen mit den bereitgestellten Bindings in den entsprechenden AST umwandeln kann.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python, rust
- Bereich
- compilers
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100