AstRewriter
An AstIterator that walks the AST and replaces every PrimitiveFunctionBackedNode whose backing function has been wrapped via .extend with an equivalent FunctionCallNode. It queues the synthesized calls on the context, and finally expands them in one pass so the rewritten tree is ready for rendering.
The traversal recurses into the children of FunctionCallNodes whose backing function is not extended (for example, the .tableofcontents call output contains a "Table of Contents" heading that should also pick up .extend {heading}). FunctionCallNodes whose backing function is extended are treated as opaque: their children are the wrapper's chosen output and must not be re-rewritten — otherwise the .super heading inside an .extend {heading} wrapper would be wrapped over and over.
Parameters
context to resolve extensions against and to register synthesized calls in
strategy used by the expander to handle errors raised by wrappers. Defaults to the error handler of the pipeline currently attached to context; fails fast if neither is available