@@ -9,6 +9,7 @@ type RegexFlagsRec =
9
9
{ global :: Boolean
10
10
, ignoreCase :: Boolean
11
11
, multiline :: Boolean
12
+ , dotAll :: Boolean
12
13
, sticky :: Boolean
13
14
, unicode :: Boolean
14
15
}
@@ -22,6 +23,7 @@ noFlags = RegexFlags
22
23
{ global: false
23
24
, ignoreCase: false
24
25
, multiline: false
26
+ , dotAll : false
25
27
, sticky: false
26
28
, unicode: false
27
29
}
@@ -32,6 +34,7 @@ global = RegexFlags
32
34
{ global: true
33
35
, ignoreCase: false
34
36
, multiline: false
37
+ , dotAll : false
35
38
, sticky: false
36
39
, unicode: false
37
40
}
@@ -42,6 +45,7 @@ ignoreCase = RegexFlags
42
45
{ global: false
43
46
, ignoreCase: true
44
47
, multiline: false
48
+ , dotAll : false
45
49
, sticky: false
46
50
, unicode: false
47
51
}
@@ -52,6 +56,7 @@ multiline = RegexFlags
52
56
{ global: false
53
57
, ignoreCase: false
54
58
, multiline: true
59
+ , dotAll : false
55
60
, sticky: false
56
61
, unicode: false
57
62
}
@@ -62,6 +67,7 @@ sticky = RegexFlags
62
67
{ global: false
63
68
, ignoreCase: false
64
69
, multiline: false
70
+ , dotAll : false
65
71
, sticky: true
66
72
, unicode: false
67
73
}
@@ -72,15 +78,28 @@ unicode = RegexFlags
72
78
{ global: false
73
79
, ignoreCase: false
74
80
, multiline: false
81
+ , dotAll : false
75
82
, sticky: false
76
83
, unicode: true
77
84
}
78
85
86
+ -- | Only dotAll flag set to true
87
+ dotAll :: RegexFlags
88
+ dotAll = RegexFlags
89
+ { global: false
90
+ , ignoreCase: false
91
+ , multiline: false
92
+ , dotAll : true
93
+ , sticky: false
94
+ , unicode: false
95
+ }
96
+
79
97
instance semigroupRegexFlags :: Semigroup RegexFlags where
80
98
append (RegexFlags x) (RegexFlags y) = RegexFlags
81
99
{ global: x.global || y.global
82
100
, ignoreCase: x.ignoreCase || y.ignoreCase
83
101
, multiline: x.multiline || y.multiline
102
+ , dotAll: x.dotAll || y.dotAll
84
103
, sticky: x.sticky || y.sticky
85
104
, unicode: x.unicode || y.unicode
86
105
}
@@ -93,6 +112,7 @@ instance eqRegexFlags :: Eq RegexFlags where
93
112
= x.global == y.global
94
113
&& x.ignoreCase == y.ignoreCase
95
114
&& x.multiline == y.multiline
115
+ && x.dotAll == y.dotAll
96
116
&& x.sticky == y.sticky
97
117
&& x.unicode == y.unicode
98
118
@@ -104,6 +124,7 @@ instance showRegexFlags :: Show RegexFlags where
104
124
<> (guard flags.global $> " global" )
105
125
<> (guard flags.ignoreCase $> " ignoreCase" )
106
126
<> (guard flags.multiline $> " multiline" )
127
+ <> (guard flags.dotAll $> " dotAll" )
107
128
<> (guard flags.sticky $> " sticky" )
108
129
<> (guard flags.unicode $> " unicode" )
109
130
in
0 commit comments