2008/8/15 Chris Lattner <[EMAIL PROTECTED]>: >> 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.
Oh yes. Well, there is a lot of fine-tunning to do but I think that would be covered by A.1 and the binary_op expression would have at least two locations begin/end pointing to X and r. If we are able to print ({break;}), in the example I gave earlier, then we will be able to print nice ranges most of the time. Cheers, Manuel.