diff --git a/scanner/scanner.go b/scanner/scanner.go index 96b28aa..0320bb9 100644 --- a/scanner/scanner.go +++ b/scanner/scanner.go @@ -777,7 +777,7 @@ yystate29: switch { default: goto yyabort - case c >= '\x01' && c <= '\t' || c >= '\v' && c <= 'ÿ': + case c >= '\x01' && c <= 'ÿ': goto yystate27 } @@ -8459,7 +8459,7 @@ yyrule137: // . l.begin(PHP) goto yystate0 } -yyrule138: // [\']([^\\\']*([\\].)*)*[\'] +yyrule138: // [\']([^\\\']*(\\(.|\n))*)*[\'] { lval.Token(l.createToken(l.Token())) return T_CONSTANT_ENCAPSED_STRING diff --git a/scanner/scanner.l b/scanner/scanner.l index 6e4f95f..e96f5cc 100644 --- a/scanner/scanner.l +++ b/scanner/scanner.l @@ -327,7 +327,7 @@ NEW_LINE (\r|\n|\r\n) {VAR_NAME} l.begin(PHP);lval.Token(l.createToken(l.Token())); return T_STRING; . l.ungetChars(1);l.begin(PHP) -[\']([^\\\']*([\\].)*)*[\'] lval.Token(l.createToken(l.Token())); return T_CONSTANT_ENCAPSED_STRING; +[\']([^\\\']*(\\(.|\n))*)*[\'] lval.Token(l.createToken(l.Token())); return T_CONSTANT_ENCAPSED_STRING; ` l.begin(BACKQUOTE); lval.Token(l.createToken(l.Token())); return Rune2Class(rune(l.TokenBytes(nil)[0])) ` l.begin(PHP); lval.Token(l.createToken(l.Token())); return Rune2Class(rune(l.TokenBytes(nil)[0]))