summaryrefslogtreecommitdiff
path: root/bench/regex-match.myr
diff options
context:
space:
mode:
authorOri Bernstein <ori@eigenstate.org>2014-10-13 16:10:30 -0400
committerOri Bernstein <ori@eigenstate.org>2014-10-13 16:10:30 -0400
commit0b71df23363b948afdb16b5f08dcbc1508278a6b (patch)
treebdd0e5ffd3abbe9b078ff5a413068aa612bac7f0 /bench/regex-match.myr
parent06b12a03f31531fd6783adf4a49a49234da83ca5 (diff)
downloadmc-0b71df23363b948afdb16b5f08dcbc1508278a6b.tar.gz
Add regex benchmark.
Diffstat (limited to 'bench/regex-match.myr')
-rw-r--r--bench/regex-match.myr26
1 files changed, 26 insertions, 0 deletions
diff --git a/bench/regex-match.myr b/bench/regex-match.myr
new file mode 100644
index 0000000..a6219d3
--- /dev/null
+++ b/bench/regex-match.myr
@@ -0,0 +1,26 @@
+use std
+use regex
+
+const main = {
+ var str, re, i
+
+ str = "€i²æ&±-ŝ€i²æ&±-ŝ€i²æ&±-ŝ€i²æ&±-ŝ€i²æ&±-ŝüüü€i²æ&±-ŝüüü€i²æ&±-ŝü"
+ str = std.strcat(str, str)
+ str = std.strcat(str, str)
+ str = std.strcat(str, str)
+ str = std.strcat(str, str)
+
+ for i = 0; i < 100; i++
+ match regex.compile(".*")
+ | `std.Ok r: re = r
+ | `std.Fail m: std.fatal(1, "couldn't compile regex: %s\n", m)
+ ;;
+
+ match regex.exec(re, str)
+ | `std.Some m:
+ | `std.None: std.fatal(1, "Didn't match regex\n")
+ ;;
+
+ regex.free(re)
+ ;;
+}