diff options
author | Robert Griesemer <gri@golang.org> | 2010-02-24 17:06:40 -0800 |
---|---|---|
committer | Robert Griesemer <gri@golang.org> | 2010-02-24 17:06:40 -0800 |
commit | e9953c87424e88d8017b33f0576be7e482b3a28f (patch) | |
tree | 81683c9e97cd9e11850c624b620c543e495abd44 /src/pkg/go/scanner/scanner.go | |
parent | b9735a128b9a45776d364d37e78b60b02bc78773 (diff) | |
download | golang-e9953c87424e88d8017b33f0576be7e482b3a28f.tar.gz |
go/scanner: support for complex (imaginary) constants
R=rsc
CC=golang-dev
http://codereview.appspot.com/223044
Diffstat (limited to 'src/pkg/go/scanner/scanner.go')
-rw-r--r-- | src/pkg/go/scanner/scanner.go | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/pkg/go/scanner/scanner.go b/src/pkg/go/scanner/scanner.go index b2e120179..a59212011 100644 --- a/src/pkg/go/scanner/scanner.go +++ b/src/pkg/go/scanner/scanner.go @@ -302,7 +302,7 @@ func (S *Scanner) scanNumber(pos token.Position, seenDecimalPoint bool) token.To seenDecimalDigit = true S.scanMantissa(10) } - if S.ch == '.' || S.ch == 'e' || S.ch == 'E' { + if S.ch == '.' || S.ch == 'e' || S.ch == 'E' || S.ch == 'i' { goto fraction } // octal int @@ -333,6 +333,11 @@ exponent: S.scanMantissa(10) } + if S.ch == 'i' { + tok = token.IMAG + S.next() + } + exit: return tok } |