diff --git a/internal/scanner/lexer.go b/internal/scanner/lexer.go index eea6e16..6725ce6 100644 --- a/internal/scanner/lexer.go +++ b/internal/scanner/lexer.go @@ -140,6 +140,10 @@ func (lex *Lexer) isHeredocEndSince73(p int) bool { return false } + if p == len(lex.data) { + return false + } + for lex.data[p] == ' ' || lex.data[p] == '\t' { p++ } diff --git a/internal/scanner/scanner_test.go b/internal/scanner/scanner_test.go index af6da1f..6f26368 100644 --- a/internal/scanner/scanner_test.go +++ b/internal/scanner/scanner_test.go @@ -1091,6 +1091,34 @@ CAT;` assert.DeepEqual(t, expected, actual) } +func TestHereDocUnclosed(t *testing.T) { + src := " test