From d73ea72530f6855b9d2adbfeedd8e8974c704efb Mon Sep 17 00:00:00 2001 From: Imuli Date: Sat, 12 May 2018 13:14:27 -0400 Subject: [PATCH] the simple fix for #14 (panic on 32-bit) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit FileSet starts `base` at 1, and adds `size+1` for every file. So with 32 bit ints, anything larger than 2³¹-3 overflows. --- scanner/lexer.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scanner/lexer.go b/scanner/lexer.go index 0ddf176..690a3a8 100644 --- a/scanner/lexer.go +++ b/scanner/lexer.go @@ -462,7 +462,7 @@ func Rune2Class(r rune) int { // NewLexer the Lexer constructor func NewLexer(src io.Reader, fName string) *Lexer { - file := token.NewFileSet().AddFile(fName, -1, 1<<31-1) + file := token.NewFileSet().AddFile(fName, -1, 1<<31-3) lx, err := lex.New(file, bufio.NewReader(src), lex.RuneClass(Rune2Class)) if err != nil { panic(err)