Je veux pirater avec l'interpréteur Python et essayer de créer un petit DSL. Y at-il un module où je peux faire quelque chose comme ce code théorique (similaire aux arbres d'expression LINQ)?Y at-il un moyen de générer par programme Python bytecode?
expression_tree = Function(
Print(
String('Hello world!')
)
)
compile_to_bytecode(expression_tree)
Ou serait-il simplement plus simple de générer du code source Python? Cela pourrait-il être rendu plus facile en utilisant C ou SWIG ou Cython?
la puissance expressive énorme des langages OO (Python en particulier) une connexion DSL est assez stupide. Écris juste le Python. Si vous fournissez de bonnes définitions de classe, vous avez un Python "DSL-like" et vous n'en avez pas besoin. –