@@ -9,6 +9,7 @@ type RegexFlagsRec =
99 { global :: Boolean
1010 , ignoreCase :: Boolean
1111 , multiline :: Boolean
12+ , dotAll :: Boolean
1213 , sticky :: Boolean
1314 , unicode :: Boolean
1415 }
@@ -22,6 +23,7 @@ noFlags = RegexFlags
2223 { global: false
2324 , ignoreCase: false
2425 , multiline: false
26+ , dotAll : false
2527 , sticky: false
2628 , unicode: false
2729 }
@@ -32,6 +34,7 @@ global = RegexFlags
3234 { global: true
3335 , ignoreCase: false
3436 , multiline: false
37+ , dotAll : false
3538 , sticky: false
3639 , unicode: false
3740 }
@@ -42,6 +45,7 @@ ignoreCase = RegexFlags
4245 { global: false
4346 , ignoreCase: true
4447 , multiline: false
48+ , dotAll : false
4549 , sticky: false
4650 , unicode: false
4751 }
@@ -52,6 +56,7 @@ multiline = RegexFlags
5256 { global: false
5357 , ignoreCase: false
5458 , multiline: true
59+ , dotAll : false
5560 , sticky: false
5661 , unicode: false
5762 }
@@ -62,6 +67,7 @@ sticky = RegexFlags
6267 { global: false
6368 , ignoreCase: false
6469 , multiline: false
70+ , dotAll : false
6571 , sticky: true
6672 , unicode: false
6773 }
@@ -72,15 +78,28 @@ unicode = RegexFlags
7278 { global: false
7379 , ignoreCase: false
7480 , multiline: false
81+ , dotAll : false
7582 , sticky: false
7683 , unicode: true
7784 }
7885
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+
7997instance semigroupRegexFlags :: Semigroup RegexFlags where
8098 append (RegexFlags x) (RegexFlags y) = RegexFlags
8199 { global: x.global || y.global
82100 , ignoreCase: x.ignoreCase || y.ignoreCase
83101 , multiline: x.multiline || y.multiline
102+ , dotAll: x.dotAll || y.dotAll
84103 , sticky: x.sticky || y.sticky
85104 , unicode: x.unicode || y.unicode
86105 }
@@ -93,6 +112,7 @@ instance eqRegexFlags :: Eq RegexFlags where
93112 = x.global == y.global
94113 && x.ignoreCase == y.ignoreCase
95114 && x.multiline == y.multiline
115+ && x.dotAll == y.dotAll
96116 && x.sticky == y.sticky
97117 && x.unicode == y.unicode
98118
@@ -104,6 +124,7 @@ instance showRegexFlags :: Show RegexFlags where
104124 <> (guard flags.global $> " global" )
105125 <> (guard flags.ignoreCase $> " ignoreCase" )
106126 <> (guard flags.multiline $> " multiline" )
127+ <> (guard flags.dotAll $> " dotAll" )
107128 <> (guard flags.sticky $> " sticky" )
108129 <> (guard flags.unicode $> " unicode" )
109130 in
0 commit comments