These two functions provide a mechanism for converting the rather obscure (but highly compact) representation of source locations into an actual source form:
This function returns the file position of each top-level form as a
vector if debug-source is from a
:stream, or the file
is byte-compiled, then the result is
This function returns a table mapping form numbers (see
code-location-form-number) to source-paths. A source-path
indicates a descent into the top-level-form form, going
directly to the subform corresponding to a form number.
tlf-number is the top-level-form number of form.
This function returns the subform of form indicated by the
source-path. Form is a top-level form, and path is a
source-path into it. Context is the number of enclosing forms
to return instead of directly returning the source-path form. When
context is non-zero, the form returned contains a marker,
#:****HERE****, immediately before the form indicated by