scanner: improve forward seeking

This commit is contained in:
Fatih Arslan 2015-10-05 17:36:14 +03:00
parent bbf8cf2ac0
commit 89db79cf63

View File

@ -246,17 +246,14 @@ func (s *Scanner) scanNumber(ch rune) token.Token {
} }
} }
s.unread()
// literals of form 01e10 are treates as Numbers in HCL, which differs from Go. // literals of form 01e10 are treates as Numbers in HCL, which differs from Go.
if ch == 'e' || ch == 'E' { if ch == 'e' || ch == 'E' {
ch = s.next() // seek forward
ch = s.scanExponent(ch) ch = s.scanExponent(ch)
return token.NUMBER return token.NUMBER
} }
if ch == '.' { if ch == '.' {
ch = s.next() // seek forward
ch = s.scanFraction(ch) ch = s.scanFraction(ch)
if ch == 'e' || ch == 'E' { if ch == 'e' || ch == 'E' {
@ -270,6 +267,7 @@ func (s *Scanner) scanNumber(ch rune) token.Token {
s.err("illegal octal number") s.err("illegal octal number")
} }
s.unread()
return token.NUMBER return token.NUMBER
} }