[#98] fix panic when heredoc is not closed
This commit is contained in:
parent
15e7237b45
commit
e1686cb83c
@ -140,6 +140,10 @@ func (lex *Lexer) isHeredocEndSince73(p int) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if p == len(lex.data) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
for lex.data[p] == ' ' || lex.data[p] == '\t' {
|
for lex.data[p] == ' ' || lex.data[p] == '\t' {
|
||||||
p++
|
p++
|
||||||
}
|
}
|
||||||
|
@ -1091,6 +1091,34 @@ CAT;`
|
|||||||
assert.DeepEqual(t, expected, actual)
|
assert.DeepEqual(t, expected, actual)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestHereDocUnclosed(t *testing.T) {
|
||||||
|
src := "<?<<<'S'\n"
|
||||||
|
|
||||||
|
expected := []string{
|
||||||
|
token.T_START_HEREDOC.String(),
|
||||||
|
}
|
||||||
|
|
||||||
|
config := cfg.Config{
|
||||||
|
Version: &version.Version{
|
||||||
|
Major: 7,
|
||||||
|
Minor: 4,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
lexer := NewLexer([]byte(src), config)
|
||||||
|
actual := []string{}
|
||||||
|
|
||||||
|
for {
|
||||||
|
tkn := lexer.Lex()
|
||||||
|
if tkn.ID == 0 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
actual = append(actual, tkn.ID.String())
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.DeepEqual(t, expected, actual)
|
||||||
|
}
|
||||||
|
|
||||||
func TestInlineHtmlNopTokens(t *testing.T) {
|
func TestInlineHtmlNopTokens(t *testing.T) {
|
||||||
src := `<?php
|
src := `<?php
|
||||||
$a; ?> test <?php
|
$a; ?> test <?php
|
||||||
|
Loading…
Reference in New Issue
Block a user