@@ -56,8 +56,6 @@ RegExp toRegExp(Grammar _, \lit(string))
56
56
= regExp ("(?:<encode (chars (string ), withBounds = /^\w+$/ := string )> )" , []);
57
57
RegExp toRegExp (Grammar _, \cilit (string ))
58
58
= regExp ("(?i:<encode (chars (string ), withBounds = /^\w+$/ := string )> )" , []);
59
- RegExp toRegExp (Grammar g , \char -class (ranges ))
60
- = infix ("|" , toRegExps (g , ranges ));
61
59
62
60
// `ParseTree`: Regular expressions
63
61
RegExp toRegExp (Grammar _, \empty ())
@@ -158,10 +156,11 @@ default RegExp toRegExp(Grammar _, Condition c) {
158
156
Converts a character range to a regular expression.
159
157
}
160
158
161
- RegExp toRegExp (Grammar _, range (char , char ))
162
- = regExp ("<encode (char )> " , []);
163
- default RegExp toRegExp (Grammar _, range (begin , end ))
164
- = regExp ("[<encode (begin )> -<encode (end )> ]" , []);
159
+
160
+ RegExp toRegExp (Grammar _, \char -class ([range (int char , char )])) = regExp (encode (char ), []);
161
+ RegExp toRegExp (Grammar _, \char -class (ranges ))
162
+ = regExp ("[<("" | it + ((begin == end ) ? encode (begin ) : "<encode (begin )> -<encode (end )> " ) | range (int begin , int end ) <- ranges )> ]" , [])
163
+ ;
165
164
166
165
@synopsis {
167
166
Encodes a (list of) char(s) to a (list of) code unit(s).
0 commit comments