File tree 2 files changed +32
-0
lines changed
2 files changed +32
-0
lines changed Original file line number Diff line number Diff line change @@ -140,6 +140,10 @@ func (lex *Lexer) isHeredocEndSince73(p int) bool {
140
140
return false
141
141
}
142
142
143
+ if p == len (lex .data ) {
144
+ return false
145
+ }
146
+
143
147
for lex .data [p ] == ' ' || lex .data [p ] == '\t' {
144
148
p ++
145
149
}
Original file line number Diff line number Diff line change @@ -1091,6 +1091,34 @@ CAT;`
1091
1091
assert .DeepEqual (t , expected , actual )
1092
1092
}
1093
1093
1094
+ func TestHereDocUnclosed (t * testing.T ) {
1095
+ src := "<?<<<'S'\n "
1096
+
1097
+ expected := []string {
1098
+ token .T_START_HEREDOC .String (),
1099
+ }
1100
+
1101
+ config := cfg.Config {
1102
+ Version : & version.Version {
1103
+ Major : 7 ,
1104
+ Minor : 4 ,
1105
+ },
1106
+ }
1107
+ lexer := NewLexer ([]byte (src ), config )
1108
+ actual := []string {}
1109
+
1110
+ for {
1111
+ tkn := lexer .Lex ()
1112
+ if tkn .ID == 0 {
1113
+ break
1114
+ }
1115
+
1116
+ actual = append (actual , tkn .ID .String ())
1117
+ }
1118
+
1119
+ assert .DeepEqual (t , expected , actual )
1120
+ }
1121
+
1094
1122
func TestInlineHtmlNopTokens (t * testing.T ) {
1095
1123
src := `<?php
1096
1124
$a; ?> test <?php
You can’t perform that action at this time.
0 commit comments