Skip to content

Commit 7c25b7b

Browse files
committed
err on dot in exponent while scanning numbers
1 parent 7978b05 commit 7c25b7b

File tree

3 files changed

+5
-1
lines changed

3 files changed

+5
-1
lines changed

lex.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ func (l *lexer) scanNum() error {
244244
l.buf.WriteRune(r)
245245
switch r {
246246
case '.':
247-
if dot {
247+
if dot || e {
248248
return l.error("number")
249249
}
250250
dot = true

lex_test.go

+2
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ func TestLex(t *testing.T) {
6666
{"0$", []lexToken{{pos: 1}, {kind: tokenEOF, pos: 3}}, 1},
6767
{"$0", []lexToken{{pos: 1}, {text: "0", kind: tokenNum, pos: 2}, {kind: tokenEOF, pos: 3}}, 1},
6868
{"$$", []lexToken{{pos: 1}, {pos: 2}, {kind: tokenEOF, pos: 3}}, 2},
69+
// cases identified with fuzzing
70+
{"0E0.", []lexToken{{pos: 1}, {kind: tokenEOF, pos: 5}}, 1},
6971
}
7072

7173
for _, c := range cases {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
go test fuzz v1
2+
string("0E00.")

0 commit comments

Comments
 (0)