• Robert Griesemer's avatar
    go/scanner: recognize //line and /*line directives incl. columns · 99c30211
    Robert Griesemer authored
    This change updates go/scanner to recognize the extended line
    directives that are now also handled by cmd/compile:
    
    //line filename:line
    //line filename:line:column
    /*line filename:line*/
    /*line filename:line:column*/
    
    As before, //-style line directives must start in column 1.
    /*-style line directives may be placed anywhere in the code.
    In both cases, the specified position applies to the character
    immediately following the comment; for line comments that is
    the first character on the next line (after the newline of the
    comment).
    
    The go/token API is extended by a new method
    
    File.AddLineColumnInfo(offset int, filename string, line, column int)
    
    which extends the existing
    
    File.AddLineInfo(offset int, filename string, line int)
    
    by adding a column parameter.
    
    Adjusted token.Position computation is changed to take into account
    column information if provided via a line directive: A (line-directive)
    relative position will have a non-zero column iff the line directive
    specified a column; if the position is on the same line as the line
    directive, the column is relative to the specified column (otherwise
    it is relative to the line beginning). See also #24183.
    
    Finally, Position.String() has been adjusted to not print a column
    value if the column is unknown (== 0).
    
    Fixes #24143.
    
    Change-Id: I5518c825ad94443365c049a95677407b46ba55a1
    Reviewed-on: https://go-review.googlesource.com/97795Reviewed-by: 's avatarMatthew Dempsky <mdempsky@google.com>
    99c30211
Name
Last commit
Last update
.github Loading commit data...
api Loading commit data...
doc Loading commit data...
lib/time Loading commit data...
misc Loading commit data...
src Loading commit data...
test Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTING.md Loading commit data...
CONTRIBUTORS Loading commit data...
LICENSE Loading commit data...
PATENTS Loading commit data...
README.md Loading commit data...
favicon.ico Loading commit data...
robots.txt Loading commit data...