При программировании на Nim я наткнулся на макросы и был удивлен, насколько они выразительны - вы могли бы в принципе добавить новый синтаксис! Я смотрел долго и упорно, чтобы увидеть, если я мог бы сделать что-то подобное Python, но не смогли найти ничего.
1002 * Можно ли добавить новый синтаксис для python? Если так, как это будет сделано? С модулем
ast
, возможно?
Пример:
let_macro.py:
import ast
# something like this
ast.new_macro(
ast.expect("let"),
ast.expect(ast.ident(store_as="name")),
ast.expect("="),
ast.expect(ast.expr, store_as="expr"),
replace_with="{name} = {expr}"
)
и использование будет таким:
import let_macro
let x = 12 # replace with x = 12