summaryrefslogtreecommitdiff
path: root/src/pkg/go/scanner/scanner.go
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2010-02-24 17:06:40 -0800
committerRobert Griesemer <gri@golang.org>2010-02-24 17:06:40 -0800
commite9953c87424e88d8017b33f0576be7e482b3a28f (patch)
tree81683c9e97cd9e11850c624b620c543e495abd44 /src/pkg/go/scanner/scanner.go
parentb9735a128b9a45776d364d37e78b60b02bc78773 (diff)
downloadgolang-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.go7
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
}