A macro to generating AST with python grammar
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 35/100
Direção de pesquisa
Comece lendo a macro smart_quote de pmutil referenciada nesta issue e a invocação proposta de python_ast!. Investigue os pontos de entrada do parser e da geração de AST em RustPython/Parser antes de decidir como a gramática Python deve ser restringida. A tarefa estará concluída quando a macro puder transformar snippets Python válidos, juntamente com os bindings fornecidos, no AST correspondente.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- Rust
- Estrelas
- 117
- Forks
- 38
- Merge médio
- 4d 7h
- PRs com merge (30d)
- 1
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de RustPython/Parser
-
Maintenance status Aberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 25/100
RustPython/Parser#140 · 3 comentários ·
-
`unic` is unmaintained Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 48/100
RustPython/Parser#139 · 3 comentários ·
-
cargo audit paste Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 30/100
RustPython/Parser#137 · 1 comentário ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 50/100
RustPython/Parser#133 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
RustPython/Parser#130 ·