math_spec.expansion
Named sub-expressions and macros, expanded into the core AST before anything reads the expression.
expand(node, schema, context, *, shadow=frozenset())
#
Expand all named sub-expressions and macro calls under node.
A comparison stays a comparison and an arithmetic node stays arithmetic.
| PARAMETER | DESCRIPTION |
|---|---|
node
|
The parsed expression.
TYPE:
|
schema
|
Where names and macros are declared.
TYPE:
|
context
|
What an error names.
TYPE:
|
shadow
|
Names left as written even where a named expression has that name — a template's formals, checked without a call to bind them. |
Source code in src/math_spec/expansion.py
macro_signature(name, macro)
#
Human-readable call signature, for error messages.
parse_and_expand(text, schema, context)
#
Parse text and expand named sub-expressions and macros to core AST.
parse_template(name, macro, context)
#
Parse a macro template, rejecting comparisons.