You are looking at historical revision 18103 of this page. It may differ significantly from its current revision.

Unit expand

This unit has support for syntax- and module handling. This unit is used by default, unless the program is compiled with the -explicit-use option.



[procedure] (get-line-number EXPR)

If EXPR is a pair with the car being a symbol, and line-number information is available for this expression, then this procedure returns the associated line number. If line-number information is not available, then #f is returned. Note that line-number information for expressions is only available in the compiler.


[procedure] (expand X)

If X is a macro-form, expand the macro (and repeat expansion until expression is a non-macro form). Returns the resulting expression.


[procedure] (syntax-error [LOCATION] MESSAGE ARGUMENT ...)

Signals an exception of the kind (exn syntax). Otherwise identical to error.


[procedure] (er-macro-transformer TRANSFORMER)

This procedure does nothing and is available for writing low-level macros in a more portable fashion, without hard-coding the signature of a transformer procedure.

Previous: Unit library

Next: Unit data-structures