@@ -162,12 +162,12 @@ impl BuildAst {
162
162
/// expression.
163
163
pub type Flags = u8 ;
164
164
165
- pub static FLAG_EMPTY : u8 = 0 ;
166
- pub static FLAG_NOCASE : u8 = 1 << 0 ; // i
167
- pub static FLAG_MULTI : u8 = 1 << 1 ; // m
168
- pub static FLAG_DOTNL : u8 = 1 << 2 ; // s
169
- pub static FLAG_SWAP_GREED : u8 = 1 << 3 ; // U
170
- pub static FLAG_NEGATED : u8 = 1 << 4 ; // char class or not word boundary
165
+ pub const FLAG_EMPTY : u8 = 0 ;
166
+ pub const FLAG_NOCASE : u8 = 1 << 0 ; // i
167
+ pub const FLAG_MULTI : u8 = 1 << 1 ; // m
168
+ pub const FLAG_DOTNL : u8 = 1 << 2 ; // s
169
+ pub const FLAG_SWAP_GREED : u8 = 1 << 3 ; // U
170
+ pub const FLAG_NEGATED : u8 = 1 << 4 ; // char class or not word boundary
171
171
172
172
struct Parser < ' a > {
173
173
// The input, parsed only as a sequence of UTF8 code points.
@@ -1025,7 +1025,7 @@ fn find_class(classes: NamedClasses, name: &str) -> Option<Vec<(char, char)>> {
1025
1025
}
1026
1026
1027
1027
type Class = & ' static [ ( char , char ) ] ;
1028
- type NamedClasses = & ' static [ ( & ' static str , Class ) ] ;
1028
+ type NamedClasses = & ' static [ ( & ' static str , & ' static Class ) ] ;
1029
1029
1030
1030
static ASCII_CLASSES : NamedClasses = & [
1031
1031
// Classes must be in alphabetical order so that bsearch works.
@@ -1044,19 +1044,34 @@ static ASCII_CLASSES: NamedClasses = &[
1044
1044
// [:word:] word characters (== [0-9A-Za-z_])
1045
1045
// [:xdigit:] hex digit (== [0-9A-Fa-f])
1046
1046
// Taken from: http://golang.org/pkg/regex/syntax/
1047
- ( "alnum" , & [ ( '0' , '9' ) , ( 'A' , 'Z' ) , ( 'a' , 'z' ) ] ) ,
1048
- ( "alpha" , & [ ( 'A' , 'Z' ) , ( 'a' , 'z' ) ] ) ,
1049
- ( "ascii" , & [ ( '\x00' , '\x7F' ) ] ) ,
1050
- ( "blank" , & [ ( ' ' , ' ' ) , ( '\t' , '\t' ) ] ) ,
1051
- ( "cntrl" , & [ ( '\x00' , '\x1F' ) , ( '\x7F' , '\x7F' ) ] ) ,
1052
- ( "digit" , & [ ( '0' , '9' ) ] ) ,
1053
- ( "graph" , & [ ( '!' , '~' ) ] ) ,
1054
- ( "lower" , & [ ( 'a' , 'z' ) ] ) ,
1055
- ( "print" , & [ ( ' ' , '~' ) ] ) ,
1056
- ( "punct" , & [ ( '!' , '/' ) , ( ':' , '@' ) , ( '[' , '`' ) , ( '{' , '~' ) ] ) ,
1057
- ( "space" , & [ ( '\t' , '\t' ) , ( '\n' , '\n' ) , ( '\x0B' , '\x0B' ) , ( '\x0C' , '\x0C' ) ,
1058
- ( '\r' , '\r' ) , ( ' ' , ' ' ) ] ) ,
1059
- ( "upper" , & [ ( 'A' , 'Z' ) ] ) ,
1060
- ( "word" , & [ ( '0' , '9' ) , ( 'A' , 'Z' ) , ( 'a' , 'z' ) , ( '_' , '_' ) ] ) ,
1061
- ( "xdigit" , & [ ( '0' , '9' ) , ( 'A' , 'F' ) , ( 'a' , 'f' ) ] ) ,
1047
+ ( "alnum" , & ALNUM ) ,
1048
+ ( "alpha" , & ALPHA ) ,
1049
+ ( "ascii" , & ASCII ) ,
1050
+ ( "blank" , & BLANK ) ,
1051
+ ( "cntrl" , & CNTRL ) ,
1052
+ ( "digit" , & DIGIT ) ,
1053
+ ( "graph" , & GRAPH ) ,
1054
+ ( "lower" , & LOWER ) ,
1055
+ ( "print" , & PRINT ) ,
1056
+ ( "punct" , & PUNCT ) ,
1057
+ ( "space" , & SPACE ) ,
1058
+ ( "upper" , & UPPER ) ,
1059
+ ( "word" , & WORD ) ,
1060
+ ( "xdigit" , & XDIGIT ) ,
1062
1061
] ;
1062
+
1063
+ static ALNUM : Class = & [ ( '0' , '9' ) , ( 'A' , 'Z' ) , ( 'a' , 'z' ) ] ;
1064
+ static ALPHA : Class = & [ ( 'A' , 'Z' ) , ( 'a' , 'z' ) ] ;
1065
+ static ASCII : Class = & [ ( '\x00' , '\x7F' ) ] ;
1066
+ static BLANK : Class = & [ ( ' ' , ' ' ) , ( '\t' , '\t' ) ] ;
1067
+ static CNTRL : Class = & [ ( '\x00' , '\x1F' ) , ( '\x7F' , '\x7F' ) ] ;
1068
+ static DIGIT : Class = & [ ( '0' , '9' ) ] ;
1069
+ static GRAPH : Class = & [ ( '!' , '~' ) ] ;
1070
+ static LOWER : Class = & [ ( 'a' , 'z' ) ] ;
1071
+ static PRINT : Class = & [ ( ' ' , '~' ) ] ;
1072
+ static PUNCT : Class = & [ ( '!' , '/' ) , ( ':' , '@' ) , ( '[' , '`' ) , ( '{' , '~' ) ] ;
1073
+ static SPACE : Class = & [ ( '\t' , '\t' ) , ( '\n' , '\n' ) , ( '\x0B' , '\x0B' ) ,
1074
+ ( '\x0C' , '\x0C' ) , ( '\r' , '\r' ) , ( ' ' , ' ' ) ] ;
1075
+ static UPPER : Class = & [ ( 'A' , 'Z' ) ] ;
1076
+ static WORD : Class = & [ ( '0' , '9' ) , ( 'A' , 'Z' ) , ( 'a' , 'z' ) , ( '_' , '_' ) ] ;
1077
+ static XDIGIT : Class = & [ ( '0' , '9' ) , ( 'A' , 'F' ) , ( 'a' , 'f' ) ] ;
0 commit comments