if (token.type == IS_STRING) {
switch (token_type) {
+ case EOF:
+ goto done;
case T_OPEN_TAG:
case T_OPEN_TAG_WITH_ECHO:
case T_CLOSE_TAG:
}
token.type = 0;
}
+done:
if (last_color != syntax_highlighter_ini->highlight_html) {
zend_printf("</span>\n");
}
case T_DOC_COMMENT:
token.type = 0;
continue;
+
+ case EOF:
+ return;
case T_END_HEREDOC: {
char *ptr = LANG_SCNG(yy_text);
zendlval->value.str.val = yytext; /* no copying - intentional */
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
- BEGIN(ST_IN_SCRIPTING);
- return T_COMMENT;
+ BEGIN(INITIAL);
+ return EOF;
}
<ST_ONE_LINE_COMMENT>{NEWLINE} {
return yytext[0];
}
+<ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>"\\{" {
+ zendlval->value.str.val = estrndup("\\{", sizeof("\\{") - 1);
+ zendlval->value.str.len = sizeof("\\{") - 1;
+ zendlval->type = IS_STRING;
+ return T_STRING;
+}
+
<ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>"{$" {
zendlval->value.lval = (long) yytext[0];
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
return T_CHARACTER;
}
-<ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>"\\{$" {
- zendlval->value.str.val = estrndup("{$", sizeof("{$")-1);
- zendlval->value.str.len = sizeof("{$")-1;
- zendlval->type = IS_STRING;
- return T_STRING;
-}
-
<ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>"\\"{ANY_CHAR} {
switch (yytext[1]) {
case 'n':