@@ -56,6 +56,9 @@ import Performance.Minibench (benchWith)
56
56
import Text.Parsing.Parser (Parser , runParser )
57
57
import Text.Parsing.Parser.String (string )
58
58
import Text.Parsing.Parser.Token (digit )
59
+ import Text.Parsing.StringParser as StringParser
60
+ import Text.Parsing.StringParser.CodePoints as StringParser.CodePoints
61
+ import Text.Parsing.StringParser.CodeUnits as StringParser.CodeUnits
59
62
60
63
string23 :: String
61
64
string23 = " 23"
@@ -74,6 +77,12 @@ stringSkidoo_10000 = fold $ replicate 10000 stringSkidoo
74
77
parse23 :: Parser String (List Char )
75
78
parse23 = manyRec digit
76
79
80
+ parse23Points :: StringParser.Parser (List Char )
81
+ parse23Points = manyRec StringParser.CodePoints .anyDigit
82
+
83
+ parse23Units :: StringParser.Parser (List Char )
84
+ parse23Units = manyRec StringParser.CodeUnits .anyDigit
85
+
77
86
pattern23 :: Regex
78
87
pattern23 = either (unsafePerformEffect <<< throw) identity $
79
88
regex " \\ d" $ RegexFlags
@@ -108,6 +117,12 @@ main = do
108
117
log " runParser parse23"
109
118
benchWith 200
110
119
$ \_ -> runParser string23_10000 parse23
120
+ log " StringParser.runParser parse23Points"
121
+ benchWith 200
122
+ $ \_ -> StringParser .runParser parse23Points string23_10000
123
+ log " StringParser.runParser parse23Units"
124
+ benchWith 200
125
+ $ \_ -> StringParser .runParser parse23Units string23_10000
111
126
log " Regex.match pattern23"
112
127
benchWith 200
113
128
$ \_ -> Regex .match pattern23 string23_10000
0 commit comments