D) Printing Ranges. This requires:

  *) Printing accurate column information. Similar to (B) above.

  *) A location(s) -> source strings interface and machinery. Similar
     to (A.3) above.

Ranges also require some way to get the end of a token (in addition to its beginning). For example, a range for:

X + some_long\
_ident??/
ifier

The range should start at "X" and end at "r". This is just a location like any other, but requires passing down like the begin loc. You might instead decide to do some fuzzy matching or something, but clang at least gets this right. This is important for other clients of the loc info, e.g. refactoring clients.

-Chris

Reply via email to