summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndi Gutmans <andi@php.net>2002-11-16 07:32:53 +0000
committerAndi Gutmans <andi@php.net>2002-11-16 07:32:53 +0000
commite1725b26fa4fbd862d7620605bee2857a645f386 (patch)
treee24c49908196d80fa67bc382b4553e009be8ccc0
parent754723872393c4005fc147c1392ce36ae253703e (diff)
downloadphp-git-e1725b26fa4fbd862d7620605bee2857a645f386.tar.gz
- MFZE1
-rw-r--r--Zend/zend_language_scanner.l13
1 files changed, 11 insertions, 2 deletions
diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l
index 6dc7867c8b..467b0a0668 100644
--- a/Zend/zend_language_scanner.l
+++ b/Zend/zend_language_scanner.l
@@ -474,6 +474,8 @@ DNUM ([0-9]*[\.][0-9]+)|([0-9]+[\.][0-9]*)
EXPONENT_DNUM (({LNUM}|{DNUM})[eE][+-]?{LNUM})
HNUM "0x"[0-9a-fA-F]+
LABEL [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*
+ENCAPSED_STRING ([a-zA-Z0-9_\x7f-\xff \t #'.:;,()|^&+/*=%!~<>?@]|"-"[^>])+
+ENCAPSED_STRING_WITH_NEWLINE ([a-zA-Z0-9_\x7f-\xff \t\n\r #'.:;,()|^&+/*=%!~<>?@]|"-"[^>])+
WHITESPACE [ \n\r\t]+
TABS_AND_SPACES [ \t]*
TOKENS [;:,.\[\]()|^&+-/*=%!~$<>?@]
@@ -1076,6 +1078,13 @@ NEWLINE ("\r"|"\n"|"\r\n")
return T_VARIABLE;
}
+<ST_DOUBLE_QUOTES,ST_BACKQUOTE>{ENCAPSED_STRING_WITH_NEWLINE} {
+ HANDLE_NEWLINES(yytext, yyleng);
+ zendlval->value.str.val = (char *)estrndup(yytext, yyleng);
+ zendlval->value.str.len = yyleng;
+ zendlval->type = IS_STRING;
+ return T_STRING;
+}
<ST_IN_SCRIPTING>{LABEL} {
zendlval->value.str.val = (char *)estrndup(yytext, yyleng);
@@ -1085,7 +1094,7 @@ NEWLINE ("\r"|"\n"|"\r\n")
}
-<ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>{LABEL} {
+<ST_HEREDOC>{LABEL} {
zendlval->value.str.val = (char *)estrndup(yytext, yyleng);
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
@@ -1374,7 +1383,7 @@ NEWLINE ("\r"|"\n"|"\r\n")
}
-<ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>{ESCAPED_AND_WHITESPACE} {
+<ST_HEREDOC>{ESCAPED_AND_WHITESPACE} {
HANDLE_NEWLINES(yytext, yyleng);
zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
zendlval->value.str.len = yyleng;