/
githubmirror
/
amphtml
Обзор
Документация
Войти
/
githubmirror
/
amphtml
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
validator/cpp/htmlparser/data/ipaddressgrammar.txt
363 строки
11 KB
Amaltas
Sync for validator cpp engine and cpp htmlparser (#38410)
12 авг 2022, 19:39
Не верифицирован
12 авг 2022, 19:39
fe7cc1d
Код
Авторство
О чём код?
$ '[' IPV6_1_1; $ '0' IPV4_OCTAL_1_2; # Max 199 $ '1' IPV4_99_1_2; # Max 255. $ '2' IPV4_55_1_2; # Max 2 digits. $ "3..9" IPV4_2DIG_1_2; # ================= # IPv4 # ================= IPV4_99_1_2 "0..9" IPV4_99_1_3; IPV4_99_1_2 '.' IPV4_2; IPV4_99_1_3 "0..9" IPV4_DOT_1; IPV4_99_1_3 '.' IPV4_2; IPV4_55_1_2 "0..5" IPV4_55_1_3; IPV4_55_1_2 '.' IPV4_2; IPV4_55_1_3 "0..5" IPV4_DOT_1; IPV4_55_1_3 '.' IPV4_2; IPV4_2DIG_1_2 "0..9" IPV4_DOT_1; IPV4_2DIG_1_2 '.' IPV4_2; IPV4_DOT_1 '.' IPV4_2; IPV4_DOT_2 '.' IPV4_3; IPV4_DOT_3 '.' IPV4_4; IPV4_2 '0' IPV4_OCTAL_2_2; IPV4_2 '1' IPV4_99_2_2; IPV4_2 '2' IPV4_55_2_2; IPV4_2 "3..9" IPV4_2DIG_2_2; IPV4_99_2_2 "0..9" IPV4_99_2_3; IPV4_99_2_2 '.' IPV4_3; IPV4_99_2_3 "0..9" IPV4_DOT_2; IPV4_99_2_3 '.' IPV4_3; IPV4_55_2_2 "0..5" IPV4_55_2_3; IPV4_55_2_2 '.' IPV4_3; IPV4_55_2_3 "0..5" IPV4_DOT_2; IPV4_55_2_3 '.' IPV4_3; IPV4_2DIG_2_2 "0..9" IPV4_DOT_2; IPV4_2DIG_2_2 '.' IPV4_3; IPV4_3 '0' IPV4_OCTAL_3_2; IPV4_3 '1' IPV4_99_3_2 IPV4_3 '2' IPV4_55_3_2; IPV4_3 "3..9" IPV4_2DIG_3_2; IPV4_99_3_2 "0..9" IPV4_99_3_3; IPV4_99_3_2 '.' IPV4_4; IPV4_99_3_3 "0..9" IPV4_SEPARATOR_3; IPV4_99_3_3 '.' IPV4_4; IPV4_SEPARATOR_3 '.' IPV4_4; IPV4_55_3_2 "0..5" IPV4_55_3_3; IPV4_55_3_2 '.' IPV4_4; IPV4_55_3_3 "0..5" IPV4_SEPARATOR_3; IPV4_55_3_3 '.' IPV4_4; IPV4_2DIG_3_2 "0..9" IPV4_SEPARATOR_3; IPV4_2DIG_3_2 '.' IPV4_4; IPV4_SEPARATOR_3 '.' IPV4_4; IPV4_4 '0' IPV4_OCTAL_4_2; IPV4_4 '1' IPV4_99_4_2; IPV4_4 '2' IPV4_55_4_2; IPV4_4 "3..9" IPV4_2DIG_4_2; IPV4_99_4_2 "0..9" IPV4_99_4_3; IPV4_99_4_2 ':' PORT_1; IPV4_99_4_2 0 POP; IPV4_99_4_3 "0..9" IP_END; IPV4_55_4_2 "0..5" IPV4_55_4_3; IPV4_55_4_2 ':' PORT_1; IPV4_55_4_2 0 POP; IPV4_55_4_3 "0..5" IP_END; IPV4_55_4_3 ':' PORT_1; IPV4_55_4_3 0 POP; IPV4_2DIG_4_2 "0..9" IP_END; IPV4_2DIG_4_2 ':' PORT_1; IPV4_2DIG_4_2 0 POP; # IPv4 Octal values. IPV4_OCTAL_1_2 "1..3" IPV4_OCTAL_3_DIGIT_1_3; IPV4_OCTAL_1_2 "4..7" IPV4_OCTAL_2_DIGIT_1_3; IPV4_OCTAL_1_2 '.' IPV4_2; IPV4_OCTAL_2_DIGIT_1_3 "0..7" IPV4_2; IPV4_OCTAL_2_DIGIT_1_3 '.' IPV4_2; IPV4_OCTAL_3_DIGIT_1_3 "0..7" IPV4_OCTAL_3_DIGIT_1_4; IPV4_OCTAL_3_DIGIT_1_3 '.' IPV4_2; IPV4_OCTAL_3_DIGIT_1_4 "0..7" IPV4_DOT_1; IPV4_OCTAL_3_DIGIT_1_4 '.' IPV4_2; IPV4_OCTAL_2_2 "1..3" IPV4_OCTAL_3_DIGIT_2_3; IPV4_OCTAL_2_2 "4..7" IPV4_OCTAL_2_DIGIT_2_3; IPV4_OCTAL_2_2 '.' IPV4_3; IPV4_OCTAL_2_DIGIT_2_3 "0..7" IPV4_3; IPV4_OCTAL_2_DIGIT_2_3 '.' IPV4_3; IPV4_OCTAL_3_DIGIT_2_3 "0..7" IPV4_OCTAL_3_DIGIT_2_4; IPV4_OCTAL_3_DIGIT_2_4 "0..7" IPV4_DOT_2; IPV4_OCTAL_3_DIGIT_2_4 '.' IPV4_3; IPV4_OCTAL_3_2 "1..3" IPV4_OCTAL_3_DIGIT_3_3; IPV4_OCTAL_3_2 "4..7" IPV4_OCTAL_2_DIGIT_3_3; IPV4_OCTAL_3_2 '.' IPV4_4; IPV4_OCTAL_2_DIGIT_3_3 "0..7" IPV4_4; IPV4_OCTAL_2_DIGIT_3_3 '.' IPV4_4; IPV4_OCTAL_3_DIGIT_3_3 "0..7" IPV4_OCTAL_3_DIGIT_3_4; IPV4_OCTAL_3_DIGIT_3_4 "0..7" IPV4_DOT_3; IPV4_OCTAL_3_DIGIT_3_4 '.' IPV4_4; IPV4_OCTAL_4_2 "1..3" IPV4_OCTAL_3_DIGIT_4_3; IPV4_OCTAL_4_2 "4..7" IPV4_OCTAL_2_DIGIT_4_3; IPV4_OCTAL_4_2 ':' PORT_1; IPV4_OCTAL_4_2 0 POP; IPV4_OCTAL_2_DIGIT_4_3 "0..7" IP_END; IPV4_OCTAL_3_DIGIT_4_3 "0..7" IPV4_OCTAL_3_DIGIT_4_4; IPV4_OCTAL_3_DIGIT_4_3 ':' PORT_1; IPV4_OCTAL_3_DIGIT_4_3 0 POP; IPV4_OCTAL_3_DIGIT_4_4 "0..7" IP_END; IPV4_OCTAL_3_DIGIT_4_4 ':' PORT_1; IPV4_OCTAL_3_DIGIT_4_4 0 POP; # ================= # IPv6 # ================= # First octet. IPV6_1_1 "0..9a..fA..F" IPV6_1_2; IPV6_1_2 "0..9a..fA..F" IPV6_1_3; IPV6_1_3 "0..9a..fA..F" IPV6_1_4; IPV6_1_4 "0..9a..fA..F" IPV6_SEP_1_1; IPV6_1_1 ':' IPV6_SEP_1_2; IPV6_1_2 ':' IPV6_SEP_1_2; IPV6_1_3 ':' IPV6_SEP_1_2; IPV6_1_4 ':' IPV6_SEP_1_2; IPV6_SEP_1_1 ':' IPV6_SEP_1_2; IPV6_SEP_1_2 "0..9a..fA..F" IPV6_2_2; IPV6_SEP_1_2 ':' IPV6_1_CLOSE; IPV6_1_CLOSE ']' IP_END; IPV6_1_CLOSE "0..9a..fA..F" IPV6_2_2_COMPRESSED; # Second octet. IPV6_2_2 "0..9a..fA..F" IPV6_2_3; IPV6_2_3 "0..9a..fA..F" IPV6_2_4; IPV6_2_4 "0..9a..fA..F" IPV6_SEP_2_1; IPV6_2_2 ':' IPV6_SEP_2_2; IPV6_2_3 ':' IPV6_SEP_2_2; IPV6_2_4 ':' IPV6_SEP_2_2; IPV6_SEP_2_1 ':' IPV6_SEP_2_2; IPV6_SEP_2_2 "0..9a..fA..F" IPV6_3_2; IPV6_SEP_2_2 ':' IPV6_2_CLOSE; IPV6_2_CLOSE ']' IP_END; IPV6_2_CLOSE "0..9a..fA..F" IPV6_3_2_COMPRESSED; # Third octet. IPV6_3_2 "0..9a..fA..F" IPV6_3_3; IPV6_3_3 "0..9a..fA..F" IPV6_3_4; IPV6_3_4 "0..9a..fA..F" IPV6_SEP_3_1; IPV6_3_2 ':' IPV6_SEP_3_2; IPV6_3_3 ':' IPV6_SEP_3_2; IPV6_3_4 ':' IPV6_SEP_3_2; IPV6_SEP_3_1 ':' IPV6_SEP_3_2; IPV6_SEP_3_2 "0..9a..fA..F" IPV6_4_2; IPV6_SEP_3_2 ':' IPV6_3_CLOSE; IPV6_3_CLOSE ']' IP_END; IPV6_3_CLOSE "0..9a..fA..F" IPV6_4_2_COMPRESSED; # Fourth octet. IPV6_4_2 "0..9a..fA..F" IPV6_4_3; IPV6_4_3 "0..9a..fA..F" IPV6_4_4; IPV6_4_4 "0..9a..fA..F" IPV6_SEP_4_1; IPV6_4_2 ':' IPV6_SEP_4_2; IPV6_4_3 ':' IPV6_SEP_4_2; IPV6_4_4 ':' IPV6_SEP_4_2; IPV6_SEP_4_1 ':' IPV6_SEP_4_2; IPV6_SEP_4_2 "0..9a..fA..F" IPV6_5_2; IPV6_SEP_4_2 ':' IPV6_4_CLOSE; IPV6_4_CLOSE ']' IP_END; IPV6_4_CLOSE "0..9a..fA..F" IPV6_5_2_COMPRESSED; # Fifth octet. IPV6_5_2 "0..9a..fA..F" IPV6_5_3; IPV6_5_3 "0..9a..fA..F" IPV6_5_4; IPV6_5_4 "0..9a..fA..F" IPV6_SEP_5_1; IPV6_5_2 ':' IPV6_SEP_5_2; IPV6_5_3 ':' IPV6_SEP_5_2; IPV6_5_4 ':' IPV6_SEP_5_2; IPV6_SEP_5_1 ':' IPV6_SEP_5_2; IPV6_SEP_5_2 "0..9a..fA..F" IPV6_6_2; IPV6_SEP_5_2 ':' IPV6_5_CLOSE; IPV6_5_CLOSE ']' IP_END; IPV6_5_CLOSE "0..9a..fA..F" IPV6_6_2_COMPRESSED; # Sixth octet. IPV6_6_2 "0..9a..fA..F" IPV6_6_3; IPV6_6_3 "0..9a..fA..F" IPV6_6_4; IPV6_6_4 "0..9a..fA..F" IPV6_SEP_6_1; IPV6_6_2 ':' IPV6_SEP_6_2; IPV6_6_3 ':' IPV6_SEP_6_2; IPV6_6_4 ':' IPV6_SEP_6_2; IPV6_SEP_6_1 ':' IPV6_SEP_6_2; IPV6_SEP_6_2 "0..9a..fA..F" IPV6_7_2; IPV6_SEP_6_2 ':' IPV6_6_CLOSE; IPV6_6_CLOSE ']' IP_END; IPV6_6_CLOSE "0..9a..fA..F" IPV6_7_2_COMPRESSED; # Sevent octet. IPV6_7_2 "0..9a..fA..F" IPV6_7_3; IPV6_7_3 "0..9a..fA..F" IPV6_7_4; IPV6_7_4 "0..9a..fA..F" IPV6_SEP_7_1; IPV6_7_2 ':' IPV6_SEP_7_2; IPV6_7_3 ':' IPV6_SEP_7_2; IPV6_7_4 ':' IPV6_SEP_7_2; IPV6_SEP_7_1 ':' IPV6_SEP_7_2; IPV6_SEP_7_2 "0..9a..fA..F" IPV6_8_2; IPV6_SEP_7_2 ':' IPV6_7_CLOSE; IPV6_7_CLOSE ']' IP_END; IPV6_7_CLOSE "0..9a..fA..F" IPV6_8_2; # Eighth octet. IPV6_8_2 "0..9a..fA..F" IPV6_8_3; IPV6_8_3 "0..9a..fA..F" IPV6_8_4; IPV6_8_4 "0..9a..fA..F" IPV6_CLOSE; IPV6_CLOSE ']' IP_END; IPV6_8_2 "%" IPV6_ZONE_ID_1; IPV6_8_3 "%" IPV6_ZONE_ID_1; IPV6_8_4 "%" IPV6_ZONE_ID_1; IPV6_8_2 ']' IP_END; IPV6_8_3 ']' IP_END; IPV6_8_4 ']' IP_END; IPV6_2_2_COMPRESSED "0..9a..fA..F" IPV6_2_3_COMPRESSED; IPV6_2_3_COMPRESSED "0..9a..fA..F" IPV6_2_4_COMPRESSED IPV6_2_4_COMPRESSED "0..9a..fA..F" IPV6_SEP_2_1_COMPRESSED; IPV6_SEP_2_1_COMPRESSED ':' IPV6_3_1_COMPRESSED; IPV6_2_2_COMPRESSED ':' IPV6_3_1_COMPRESSED; IPV6_2_3_COMPRESSED ':' IPV6_3_1_COMPRESSED; IPV6_2_4_COMPRESSED ':' IPV6_3_1_COMPRESSED; IPV6_SEP_2_1_COMPRESSED ']' IP_END; IPV6_SEP_2_1_COMPRESSED '%' IPV6_ZONE_ID_1; IPV6_2_2_COMPRESSED '%' IPV6_ZONE_ID_1; IPV6_2_3_COMPRESSED '%' IPV6_ZONE_ID_1; IPV6_2_4_COMPRESSED '%' IPV6_ZONE_ID_1; IPV6_2_2_COMPRESSED ']' IP_END; IPV6_2_3_COMPRESSED ']' IP_END; IPV6_2_4_COMPRESSED ']' IP_END; IPV6_3_1_COMPRESSED "0..9a..fA..F" IPV6_3_2_COMPRESSED; IPV6_3_2_COMPRESSED "0..9a..fA..F" IPV6_3_3_COMPRESSED; IPV6_3_3_COMPRESSED "0..9a..fA..F" IPV6_3_4_COMPRESSED IPV6_3_4_COMPRESSED "0..9a..fA..F" IPV6_SEP_3_1_COMPRESSED; IPV6_SEP_3_1_COMPRESSED ':' IPV6_4_1_COMPRESSED; IPV6_3_2_COMPRESSED ':' IPV6_4_1_COMPRESSED; IPV6_3_3_COMPRESSED ':' IPV6_4_1_COMPRESSED; IPV6_3_4_COMPRESSED ':' IPV6_4_1_COMPRESSED; IPV6_SEP_3_1_COMPRESSED ']' IP_END; IPV6_SEP_3_1_COMPRESSED '%' IPV6_ZONE_ID_1; IPV6_3_2_COMPRESSED '%' IPV6_ZONE_ID_1; IPV6_3_3_COMPRESSED '%' IPV6_ZONE_ID_1; IPV6_3_4_COMPRESSED '%' IPV6_ZONE_ID_1; IPV6_3_2_COMPRESSED ']' IP_END; IPV6_3_3_COMPRESSED ']' IP_END; IPV6_3_4_COMPRESSED ']' IP_END; IPV6_4_1_COMPRESSED "0..9a..fA..F" IPV6_4_2_COMPRESSED; IPV6_4_2_COMPRESSED "0..9a..fA..F" IPV6_4_3_COMPRESSED; IPV6_4_3_COMPRESSED "0..9a..fA..F" IPV6_4_4_COMPRESSED IPV6_4_4_COMPRESSED "0..9a..fA..F" IPV6_SEP_4_1_COMPRESSED; IPV6_SEP_4_1_COMPRESSED ':' IPV6_5_1_COMPRESSED; IPV6_4_2_COMPRESSED ':' IPV6_5_1_COMPRESSED; IPV6_4_3_COMPRESSED ':' IPV6_5_1_COMPRESSED; IPV6_4_4_COMPRESSED ':' IPV6_5_1_COMPRESSED; IPV6_SEP_4_1_COMPRESSED ']' IP_END; IPV6_SEP_4_1_COMPRESSED '%' IPV6_ZONE_ID_1; IPV6_4_2_COMPRESSED '%' IPV6_ZONE_ID_1; IPV6_4_3_COMPRESSED '%' IPV6_ZONE_ID_1; IPV6_4_4_COMPRESSED '%' IPV6_ZONE_ID_1; IPV6_4_2_COMPRESSED ']' IP_END; IPV6_4_3_COMPRESSED ']' IP_END; IPV6_4_4_COMPRESSED ']' IP_END; IPV6_5_1_COMPRESSED "0..9a..fA..F" IPV6_5_2_COMPRESSED; IPV6_5_2_COMPRESSED "0..9a..fA..F" IPV6_5_3_COMPRESSED; IPV6_5_3_COMPRESSED "0..9a..fA..F" IPV6_5_4_COMPRESSED IPV6_5_4_COMPRESSED "0..9a..fA..F" IPV6_SEP_5_1_COMPRESSED; IPV6_SEP_5_1_COMPRESSED ':' IPV6_6_1_COMPRESSED; IPV6_5_2_COMPRESSED ':' IPV6_6_1_COMPRESSED; IPV6_5_3_COMPRESSED ':' IPV6_6_1_COMPRESSED; IPV6_5_4_COMPRESSED ':' IPV6_6_1_COMPRESSED; IPV6_SEP_5_1_COMPRESSED ']' IP_END; IPV6_SEP_5_1_COMPRESSED '%' IPV6_ZONE_ID_1; IPV6_5_2_COMPRESSED '%' IPV6_ZONE_ID_1; IPV6_5_3_COMPRESSED '%' IPV6_ZONE_ID_1; IPV6_5_4_COMPRESSED '%' IPV6_ZONE_ID_1; IPV6_5_2_COMPRESSED ']' IP_END; IPV6_5_3_COMPRESSED ']' IP_END; IPV6_5_4_COMPRESSED ']' IP_END; IPV6_6_1_COMPRESSED "0..9a..fA..F" IPV6_6_2_COMPRESSED; IPV6_6_2_COMPRESSED "0..9a..fA..F" IPV6_6_3_COMPRESSED; IPV6_6_3_COMPRESSED "0..9a..fA..F" IPV6_6_4_COMPRESSED IPV6_6_4_COMPRESSED "0..9a..fA..F" IPV6_SEP_6_1_COMPRESSED; IPV6_SEP_6_1_COMPRESSED ':' IPV6_7_1_COMPRESSED; IPV6_6_2_COMPRESSED ':' IPV6_7_1_COMPRESSED; IPV6_6_3_COMPRESSED ':' IPV6_7_1_COMPRESSED; IPV6_6_4_COMPRESSED ':' IPV6_7_1_COMPRESSED; IPV6_SEP_6_1_COMPRESSED ']' IP_END; IPV6_SEP_6_1_COMPRESSED '%' IPV6_ZONE_ID_1; IPV6_6_2_COMPRESSED '%' IPV6_ZONE_ID_1; IPV6_6_3_COMPRESSED '%' IPV6_ZONE_ID_1; IPV6_6_4_COMPRESSED '%' IPV6_ZONE_ID_1; IPV6_6_2_COMPRESSED ']' IP_END; IPV6_6_3_COMPRESSED ']' IP_END; IPV6_6_4_COMPRESSED ']' IP_END; IPV6_7_1_COMPRESSED "0..9a..fA..F" IPV6_7_2_COMPRESSED; IPV6_7_2_COMPRESSED "0..9a..fA..F" IPV6_7_3_COMPRESSED; IPV6_7_3_COMPRESSED "0..9a..fA..F" IPV6_7_4_COMPRESSED IPV6_7_4_COMPRESSED "0..9a..fA..F" IPV6_ZONE_ID; IPV6_7_2_COMPRESSED '%' IPV6_ZONE_ID_1; IPV6_7_3_COMPRESSED '%' IPV6_ZONE_ID_1; IPV6_7_4_COMPRESSED '%' IPV6_ZONE_ID_1; IPV6_7_2_COMPRESSED ']' IP_END; IPV6_7_3_COMPRESSED ']' IP_END; IPV6_7_4_COMPRESSED ']' IP_END; IP_END ':' PORT_1; IP_END 0 POP; IPV6_ZONE_ID '%' IPV6_ZONE_ID_1; IPV6_ZONE_ID ']' IP_END; IPV6_ZONE_ID_1 "a..zA..Z0..9" IPV6_ZONE_ID_2; IPV6_ZONE_ID_1 ']' IP_END; IPV6_ZONE_ID_2 "a..zA..Z0..9" IPV6_ZONE_ID_3; IPV6_ZONE_ID_2 ']' IP_END; IPV6_ZONE_ID_3 "a..zA..Z0..9" IPV6_ZONE_ID_4; IPV6_ZONE_ID_3 ']' IP_END; IPV6_ZONE_ID_4 "a..zA..Z0..9" IPV6_ZONE_ID_5; IPV6_ZONE_ID_4 ']' IP_END; IPV6_ZONE_ID_5 "a..zA..Z0..9" IPV6_ZONE_ID_6; IPV6_ZONE_ID_5 ']' IP_END; IPV6_ZONE_ID_6 "a..zA..Z0..9" IPV6_ZONE_ID_7; IPV6_ZONE_ID_6 ']' IP_END; IPV6_ZONE_ID_7 "a..zA..Z0..9" IPV6_ZONE_ID_8; IPV6_ZONE_ID_7 ']' IP_END; IPV6_ZONE_ID_8 "a..zA..Z0..9" IPV6_ZONE_ID_9; IPV6_ZONE_ID_9 ']' IP_END; PORT_1 "0..9" PORT_2; PORT_2 "0..9" PORT_3; # google.com:8/ PORT_2 0 POP; PORT_3 "0..9" PORT_4; # google.com:80/ PORT_3 0 POP; PORT_4 "0..9" PORT_5; # google.com:808/ PORT_4 0 POP; PORT_5 "0..9" PORT_END; PORT_5 0 POP; PORT_END 0 POP;