Robert Dewar wrote:
Can someone point me to a clear high level spec for the proposed
interface for MAPPED_LOCATION support.

I don't know of any high-level spec, except libcpp/include/line-map.h.

A "line_map" (singular) specifies how a sub-range of source_location
integer cookies are to be interpreted.  The "line_maps" table (there
is normally only one) is a collection of line_map mappings, in order
of the lowest source_location value mapped by each line_map, so finding
the correct line_map is a matter of binary search.  (And of course
normally there is quite a bit of locality, especially when initially
parsing.)

Each line_map has a filename ('to_file') and starting line ('to_line'),
and then it's a simple calculation to map a source_location to a line
and column number.

Each line_map also has an "included_from" field which is normally the
index of the line_map of that included this line_map: i.e. the outer
line_map in the include stack.  It seems plausible to generalize the
"included_from" field to also be used for "expanded from" or
"instantiated from", but I haven't tried to think through that.
--
        --Per Bothner
[EMAIL PROTECTED]   http://per.bothner.com/

Reply via email to