diff options
Diffstat (limited to 'src/cmd/compile/internal/syntax/scanner.go')
| -rw-r--r-- | src/cmd/compile/internal/syntax/scanner.go | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/cmd/compile/internal/syntax/scanner.go b/src/cmd/compile/internal/syntax/scanner.go index 6cb7ff83a0..9fe4965984 100644 --- a/src/cmd/compile/internal/syntax/scanner.go +++ b/src/cmd/compile/internal/syntax/scanner.go @@ -34,6 +34,7 @@ type scanner struct { // current token, valid after calling next() line, col uint + blank bool // line is blank up to col tok token lit string // valid if tok is _Name, _Literal, or _Semi ("semicolon", "newline", or "EOF"); may be malformed if bad is true bad bool // valid if tok is _Literal, true if a syntax error occurred, lit may be malformed @@ -83,10 +84,7 @@ func (s *scanner) setLit(kind LitKind, ok bool) { // // If the scanner mode includes the directives (but not the comments) // flag, only comments containing a //line, /*line, or //go: directive -// are reported, in the same way as regular comments. Directives in -// //-style comments are only recognized if they are at the beginning -// of a line. -// +// are reported, in the same way as regular comments. func (s *scanner) next() { nlsemi := s.nlsemi s.nlsemi = false @@ -94,12 +92,14 @@ func (s *scanner) next() { redo: // skip white space s.stop() + startLine, startCol := s.pos() for s.ch == ' ' || s.ch == '\t' || s.ch == '\n' && !nlsemi || s.ch == '\r' { s.nextch() } // token start s.line, s.col = s.pos() + s.blank = s.line > startLine || startCol == colbase s.start() if isLetter(s.ch) || s.ch >= utf8.RuneSelf && s.atIdentChar(true) { s.nextch() @@ -741,8 +741,8 @@ func (s *scanner) lineComment() { return } - // directives must start at the beginning of the line (s.col == colbase) - if s.mode&directives == 0 || s.col != colbase || (s.ch != 'g' && s.ch != 'l') { + // are we saving directives? or is this definitely not a directive? + if s.mode&directives == 0 || (s.ch != 'g' && s.ch != 'l') { s.stop() s.skipLine() return |
