123456789101112131415161718192021222324 |
- from macropy.core.macros import *
- from macropy.core.hquotes import macros, hq
- import traceback
- class MacroExpansionError(Exception):
- def __init__(self, message):
- Exception.__init__(self, message)
- def raise_error(ex):
- raise ex
- @register(filters)
- def clear_errors(tree, **kw):
- if isinstance(tree, Exception):
- tb = traceback.format_exc()
- msg = tree.message
- if type(tree) is not AssertionError or tree.args == ():
- msg = "".join(tree.args) + "\nCaused by Macro-Expansion Error:\n" + tb
- return hq[raise_error(MacroExpansionError(msg))]
- else:
- return tree
|