diff options
author | Robert Griesemer <gri@golang.org> | 2016-12-02 10:44:34 -0800 |
---|---|---|
committer | Robert Griesemer <gri@golang.org> | 2016-12-09 01:35:14 +0000 |
commit | 3d5df64b3fe16757c9f271c2421715ba6d79b02d (patch) | |
tree | ad84555a06191dc2376814b59226daa271e62fd5 /src/cmd/compile/internal/syntax/source.go | |
parent | 54ef0447fed1a59b95111b86a037c3443daf0b9b (diff) | |
download | go-3d5df64b3fe16757c9f271c2421715ba6d79b02d.tar.gz go-3d5df64b3fe16757c9f271c2421715ba6d79b02d.zip |
[dev.inline] cmd/compile/internal/syntax: use syntax.Pos for all external positions
- use syntax.Pos in syntax.Error (rather than line, col)
- use syntax.Pos in syntax.PragmaHandler (rather than just line)
- update uses
- better documentation in various places
Also:
- make Pos methods use Pos receiver (rather than *Pos)
Reviewed in and cherry-picked from https://go-review.googlesource.com/#/c/33891/.
With minor adjustments to noder.go to make merge compile.
Change-Id: I5507cea6c2be46a7677087c1aeb69382d31033eb
Reviewed-on: https://go-review.googlesource.com/34236
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Diffstat (limited to 'src/cmd/compile/internal/syntax/source.go')
-rw-r--r-- | src/cmd/compile/internal/syntax/source.go | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/cmd/compile/internal/syntax/source.go b/src/cmd/compile/internal/syntax/source.go index 78a1e81771..037742d73c 100644 --- a/src/cmd/compile/internal/syntax/source.go +++ b/src/cmd/compile/internal/syntax/source.go @@ -77,9 +77,13 @@ func (s *source) error(msg string) { } // getr reads and returns the next rune. -// If an error occurs, the error handler provided to init -// is called with position (line and column) information -// and error message before getr returns. +// +// If a read or source encoding error occurs, getr +// calls the error handler installed with init. +// The handler must exist. +// +// The (line, col) position passed to the error handler +// is always at the current source reading position. func (s *source) getr() rune { redo: s.r0, s.line0, s.col0 = s.r, s.line, s.col |