Я не понимаю, что должен делать URL-адрес.Кажется, что это строка только! # $% & * - ~, не ascii или экранированных кодовых точек юникода.Как это URL?Является ли это произведение просто действительно плохо названным, и какой цели оно предназначено?
Первая строка определяет url
как регулярное выражение:
url ([!#$%&*-~]|{nonascii}|{escape})*
Вторая строкаопределяет URI
как токен, который может быть произведен / возвращен лексером:
"url("{w}{url}{w}")" {return URI;}
Во второй строке сказано, что если лексер видит url(
, тогда {w}
затем {url}
, затем {w}
затем )
затем он нашел URI.
Выражение {w}
является необязательным пробелом.
Таким образом, согласно определению, {url}
является регулярным выражением: которое определяет, чтосимволы допускаются внутри токена URI
, между начальным url(
и последним )
.