This sections documents extended versions of the program
transformation predicates that also transform the source layout
information. Extended layout information is currently processed, but
unused. Future versions will use for the following enhancements:
- More precise locations of warnings and errors
- More reliable setting of breakpoints
- More reliable source layout information in the graphical debugger.
- expand_goal(+Goal1,
?Layout1, -Goal2, -Layout2)
- goal_expansion(+Goal1,
?Layout1, -Goal2, -Layout2)
- expand_term(+Term1,
?Layout1, -Term2, -Layout2)
- term_expansion(+Term1,
?Layout1, -Term2, -Layout2)
- dcg_translate_rule(+In,
?LayoutIn, -Out, -LayoutOut)
- These versions are called before their 2-argument counterparts.
The input layout term is either a variable (if no layout information is
available) or a term carrying detailed layout information as returned by
the
subterm_positions
of read_term/2.
The output layout should be a variable if no layout information can be
computed for the expansion; a sub-term can also be a variable to
indicate “don't know” .