From 060264378cd1f82855a2ceb6344879088c6ed190 Mon Sep 17 00:00:00 2001 From: Ilya Rodionov Date: Tue, 4 Jul 2023 15:59:00 +0300 Subject: [PATCH] [CSS] Separate URL token and URL function (fixes #3583) --- css3/css3Lexer.g4 | 9 ++++----- css3/css3Parser.g4 | 23 +++++++++++++++-------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/css3/css3Lexer.g4 b/css3/css3Lexer.g4 index 21b5fec920..7503aedb74 100644 --- a/css3/css3Lexer.g4 +++ b/css3/css3Lexer.g4 @@ -63,8 +63,8 @@ fragment Name : Nmchar+ ; -fragment Url - : ( [!#$%&*-~] | Nonascii | Escape )* +Url + : U R L '(' Whitespace ( [!#$%&*-~] | Nonascii | Escape )* Whitespace ')' ; Space @@ -374,9 +374,8 @@ Percentage : Number '%' ; -Uri - : U R L '(' Whitespace String_ Whitespace ')' - | U R L '(' Whitespace Url Whitespace ')' +Url_ + : 'url(' ; UnicodeRange diff --git a/css3/css3Parser.g4 b/css3/css3Parser.g4 index a64769731c..8f23084d77 100644 --- a/css3/css3Parser.g4 +++ b/css3/css3Parser.g4 @@ -14,17 +14,17 @@ charset ; imports - : Import ws ( String_ | Uri ) ws mediaQueryList ';' ws # goodImport - | Import ws ( String_ | Uri ) ws ';' ws # goodImport - | Import ws ( String_ | Uri ) ws mediaQueryList # badImport - | Import ws ( String_ | Uri ) ws # badImport + : Import ws ( String_ | url ) ws mediaQueryList ';' ws # goodImport + | Import ws ( String_ | url ) ws ';' ws # goodImport + | Import ws ( String_ | url ) ws mediaQueryList # badImport + | Import ws ( String_ | url ) ws # badImport ; // Namespaces // https://www.w3.org/TR/css-namespaces-3/ namespace_ - : Namespace ws (namespacePrefix ws)? ( String_ | Uri ) ws ';' ws # goodNamespace - | Namespace ws (namespacePrefix ws)? ( String_ | Uri ) ws # badNamespace + : Namespace ws (namespacePrefix ws)? ( String_ | url ) ws ';' ws # goodNamespace + | Namespace ws (namespacePrefix ws)? ( String_ | url ) ws # badNamespace ; namespacePrefix @@ -193,7 +193,7 @@ term | UnicodeRange ws # knownTerm | ident ws # knownTerm | var_ # knownTerm - | Uri ws # knownTerm + | url ws # knownTerm | hexcolor # knownTerm | calc # knownTerm | function_ # knownTerm @@ -238,7 +238,7 @@ any_ | unknownDimension ws | String_ ws //| Delim ws // Not implemented yet - | Uri ws + | url ws | Hash ws | UnicodeRange ws | Includes ws @@ -325,6 +325,13 @@ generalEnclosed : ( Function_ | '(' ) ( any_ | unused )* ')' ; +// Url +// https://www.w3.org/TR/css3-values/#urls +url + : Url_ ws String_ ws ')' + | Url + ; + // Variable // https://www.w3.org/TR/css-variables-1 var_