hcl/scanner: actually scan all things with exponents as floats
This commit is contained in:
parent
9501fc5ad0
commit
6cc18eb70b
@ -287,10 +287,9 @@ func (s *Scanner) scanNumber(ch rune) token.Type {
|
||||
}
|
||||
}
|
||||
|
||||
// literals of form 01e10 are treates as Numbers in HCL, which differs from Go.
|
||||
if ch == 'e' || ch == 'E' {
|
||||
ch = s.scanExponent(ch)
|
||||
return token.NUMBER
|
||||
return token.FLOAT
|
||||
}
|
||||
|
||||
if ch == '.' {
|
||||
@ -315,10 +314,9 @@ func (s *Scanner) scanNumber(ch rune) token.Type {
|
||||
|
||||
s.scanMantissa(ch)
|
||||
ch = s.next() // seek forward
|
||||
// literals of form 1e10 are treates as Numbers in HCL, which differs from Go.
|
||||
if ch == 'e' || ch == 'E' {
|
||||
ch = s.scanExponent(ch)
|
||||
return token.NUMBER
|
||||
return token.FLOAT
|
||||
}
|
||||
|
||||
if ch == '.' {
|
||||
|
@ -117,22 +117,6 @@ var tokenLists = map[string][]tokenPair{
|
||||
{token.NUMBER, "0X42"},
|
||||
{token.NUMBER, "0X123456789abcDEF"},
|
||||
{token.NUMBER, "0X" + f100},
|
||||
{token.NUMBER, "0e0"},
|
||||
{token.NUMBER, "1e0"},
|
||||
{token.NUMBER, "42e0"},
|
||||
{token.NUMBER, "01234567890e0"},
|
||||
{token.NUMBER, "0E0"},
|
||||
{token.NUMBER, "1E0"},
|
||||
{token.NUMBER, "42E0"},
|
||||
{token.NUMBER, "01234567890E0"},
|
||||
{token.NUMBER, "0e+10"},
|
||||
{token.NUMBER, "1e-10"},
|
||||
{token.NUMBER, "42e+10"},
|
||||
{token.NUMBER, "01234567890e-10"},
|
||||
{token.NUMBER, "0E+10"},
|
||||
{token.NUMBER, "1E-10"},
|
||||
{token.NUMBER, "42E+10"},
|
||||
{token.NUMBER, "01234567890E-10"},
|
||||
{token.NUMBER, "-0"},
|
||||
{token.NUMBER, "-1"},
|
||||
{token.NUMBER, "-9"},
|
||||
@ -155,22 +139,6 @@ var tokenLists = map[string][]tokenPair{
|
||||
{token.NUMBER, "-0X42"},
|
||||
{token.NUMBER, "-0X123456789abcDEF"},
|
||||
{token.NUMBER, "-0X" + f100},
|
||||
{token.NUMBER, "-0e0"},
|
||||
{token.NUMBER, "-1e0"},
|
||||
{token.NUMBER, "-42e0"},
|
||||
{token.NUMBER, "-01234567890e0"},
|
||||
{token.NUMBER, "-0E0"},
|
||||
{token.NUMBER, "-1E0"},
|
||||
{token.NUMBER, "-42E0"},
|
||||
{token.NUMBER, "-01234567890E0"},
|
||||
{token.NUMBER, "-0e+10"},
|
||||
{token.NUMBER, "-1e-10"},
|
||||
{token.NUMBER, "-42e+10"},
|
||||
{token.NUMBER, "-01234567890e-10"},
|
||||
{token.NUMBER, "-0E+10"},
|
||||
{token.NUMBER, "-1E-10"},
|
||||
{token.NUMBER, "-42E+10"},
|
||||
{token.NUMBER, "-01234567890E-10"},
|
||||
},
|
||||
"float": []tokenPair{
|
||||
{token.FLOAT, "0."},
|
||||
@ -185,6 +153,22 @@ var tokenLists = map[string][]tokenPair{
|
||||
{token.FLOAT, "1.0"},
|
||||
{token.FLOAT, "42.0"},
|
||||
{token.FLOAT, "01234567890.0"},
|
||||
{token.FLOAT, "0e0"},
|
||||
{token.FLOAT, "1e0"},
|
||||
{token.FLOAT, "42e0"},
|
||||
{token.FLOAT, "01234567890e0"},
|
||||
{token.FLOAT, "0E0"},
|
||||
{token.FLOAT, "1E0"},
|
||||
{token.FLOAT, "42E0"},
|
||||
{token.FLOAT, "01234567890E0"},
|
||||
{token.FLOAT, "0e+10"},
|
||||
{token.FLOAT, "1e-10"},
|
||||
{token.FLOAT, "42e+10"},
|
||||
{token.FLOAT, "01234567890e-10"},
|
||||
{token.FLOAT, "0E+10"},
|
||||
{token.FLOAT, "1E-10"},
|
||||
{token.FLOAT, "42E+10"},
|
||||
{token.FLOAT, "01234567890E-10"},
|
||||
{token.FLOAT, "01.8e0"},
|
||||
{token.FLOAT, "1.4e0"},
|
||||
{token.FLOAT, "42.2e0"},
|
||||
@ -205,6 +189,22 @@ var tokenLists = map[string][]tokenPair{
|
||||
{token.FLOAT, "-1.0"},
|
||||
{token.FLOAT, "-42.0"},
|
||||
{token.FLOAT, "-01234567890.0"},
|
||||
{token.FLOAT, "-0e0"},
|
||||
{token.FLOAT, "-1e0"},
|
||||
{token.FLOAT, "-42e0"},
|
||||
{token.FLOAT, "-01234567890e0"},
|
||||
{token.FLOAT, "-0E0"},
|
||||
{token.FLOAT, "-1E0"},
|
||||
{token.FLOAT, "-42E0"},
|
||||
{token.FLOAT, "-01234567890E0"},
|
||||
{token.FLOAT, "-0e+10"},
|
||||
{token.FLOAT, "-1e-10"},
|
||||
{token.FLOAT, "-42e+10"},
|
||||
{token.FLOAT, "-01234567890e-10"},
|
||||
{token.FLOAT, "-0E+10"},
|
||||
{token.FLOAT, "-1E-10"},
|
||||
{token.FLOAT, "-42E+10"},
|
||||
{token.FLOAT, "-01234567890E-10"},
|
||||
{token.FLOAT, "-01.8e0"},
|
||||
{token.FLOAT, "-1.4e0"},
|
||||
{token.FLOAT, "-42.2e0"},
|
||||
|
Loading…
Reference in New Issue
Block a user