GitHub - lihaoyi/macropy: Macros in Python: quasiquotes, case classes, LINQ and more!
pythonmetaprogrammingmacrosast
Abstraction: Python library enabling AST-transforming syntactic macros at import time
Key points:
- MacroPy transforms a Python program's AST at import time, allowing user-defined macros to add syntax impossible in plain Python.
- Key features include quasiquotes, case classes (algebraic data types with structural equality), LINQ-style queries, and a
tracemacro for expression-level debugging. - Runs on CPython 3.4+ and PyPy 3.5; installable via
pip install macropy3. - Created as a final project for MIT 6.945 (Adventures in Advanced Symbolic Programming); inspired by Scala Macros and Karnickel.
- Optional extras (
pinq,pyxl) install dependencies for LINQ and HTML DSL support.
Connections: Macropy · Github · Syntactic Macros · Metaprogramming · Abstract Syntax Tree