@@ -84,19 +84,42 @@ struct uri_grammar
84
84
ipvfuture %=
85
85
qi::lit (' v' ) >> +qi::xdigit >> ' .' >> +(unreserved | sub_delims | ' :' );
86
86
87
- ipv6address %=
88
- qi::raw[qi::repeat (6 )[h16 >> ' :' ] >> ls32 |
89
- " ::" >> qi::repeat (5 )[h16 >> ' :' ] >> ls32 |
90
- qi::raw[h16] >> " ::" >> qi::repeat (4 )[h16 >> ' :' ] >> ls32 |
91
- qi::raw[+(*(h16 >> ' :' )) >> h16] >> " ::" >>
92
- qi::repeat (3 )[h16 >> ' :' ] >> ls32 |
93
- qi::raw[qi::repeat (2 )[*(h16 >> ' :' )] >> h16] >> " ::" >>
94
- qi::repeat (2 )[h16 >> ' :' ] >> ls32 |
95
- qi::raw[qi::repeat (3 )[*(h16 >> ' :' )] >> h16] >> " ::" >> h16 >>
96
- ' :' >> ls32 |
97
- qi::raw[qi::repeat (4 )[*(h16 >> ' :' )] >> h16] >> " ::" >> ls32 |
98
- qi::raw[qi::repeat (5 )[*(h16 >> ' :' )] >> h16] >> " ::" >> h16 |
99
- qi::raw[qi::repeat (6 )[*(h16 >> ' :' )] >> h16] >> " ::" ];
87
+ ipv6address %= qi::raw
88
+ [qi::repeat (6 )[h16 >> ' :' ] >> ls32 |
89
+ " ::" >> qi::repeat (5 )[h16 >> ' :' ] >> ls32 |
90
+ -qi::raw[h16] >> " ::" >> qi::repeat (4 )[h16 >> ' :' ] >> ls32 |
91
+ -qi::raw[h16] >> " ::" >> qi::repeat (3 )[h16 >> ' :' ] >> ls32 |
92
+ -qi::raw[h16] >> " ::" >> qi::repeat (2 )[h16 >> ' :' ] >> ls32 |
93
+ -qi::raw[h16] >> " ::" >> h16 >> ' :' >> ls32 |
94
+ -qi::raw[h16] >> " ::" >> ls32 | -qi::raw[h16] >> " ::" >> h16 |
95
+ -qi::raw[h16] >> " ::" |
96
+ -qi::raw[qi::repeat (1 )[(h16 >> ' :' )] >> h16] >> " ::" >>
97
+ qi::repeat (3 )[h16 >> ' :' ] >> ls32 |
98
+ -qi::raw[qi::repeat (1 )[(h16 >> ' :' )] >> h16] >> " ::" >>
99
+ qi::repeat (2 )[h16 >> ' :' ] >> ls32 |
100
+ -qi::raw[qi::repeat (1 )[(h16 >> ' :' )] >> h16] >> " ::" >> h16 >>
101
+ ' :' >> ls32 |
102
+ -qi::raw[qi::repeat (1 )[(h16 >> ' :' )] >> h16] >> " ::" >> ls32 |
103
+ -qi::raw[qi::repeat (1 )[(h16 >> ' :' )] >> h16] >> " ::" >> h16 |
104
+ -qi::raw[qi::repeat (1 )[(h16 >> ' :' )] >> h16] >> " ::" |
105
+ -qi::raw[qi::repeat (2 )[(h16 >> ' :' )] >> h16] >> " ::" >>
106
+ qi::repeat (2 )[h16 >> ' :' ] >> ls32 |
107
+ -qi::raw[qi::repeat (2 )[(h16 >> ' :' )] >> h16] >> " ::" >> h16 >>
108
+ ' :' >> ls32 |
109
+ -qi::raw[qi::repeat (2 )[(h16 >> ' :' )] >> h16] >> " ::" >> ls32 |
110
+ -qi::raw[qi::repeat (2 )[(h16 >> ' :' )] >> h16] >> " ::" >> h16 |
111
+ -qi::raw[qi::repeat (2 )[(h16 >> ' :' )] >> h16] >> " ::" |
112
+ -qi::raw[qi::repeat (3 )[(h16 >> ' :' )] >> h16] >> " ::" >> h16 >>
113
+ ' :' >> ls32 |
114
+ -qi::raw[qi::repeat (3 )[(h16 >> ' :' )] >> h16] >> " ::" >> ls32 |
115
+ -qi::raw[qi::repeat (3 )[(h16 >> ' :' )] >> h16] >> " ::" >> h16 |
116
+ -qi::raw[qi::repeat (3 )[(h16 >> ' :' )] >> h16] >> " ::" |
117
+ -qi::raw[qi::repeat (4 )[(h16 >> ' :' )] >> h16] >> " ::" >> ls32 |
118
+ -qi::raw[qi::repeat (4 )[(h16 >> ' :' )] >> h16] >> " ::" >> h16 |
119
+ -qi::raw[qi::repeat (4 )[(h16 >> ' :' )] >> h16] >> " ::" |
120
+ -qi::raw[qi::repeat (5 )[(h16 >> ' :' )] >> h16] >> " ::" >> h16 |
121
+ -qi::raw[qi::repeat (5 )[(h16 >> ' :' )] >> h16] >> " ::" |
122
+ -qi::raw[qi::repeat (6 )[(h16 >> ' :' )] >> h16] >> " ::" ];
100
123
101
124
// ls32 = ( h16 ":" h16 ) / IPv4address
102
125
ls32 %= (h16 >> ' :' >> h16) | ipv4address;
0 commit comments