diff --git a/regexes.txt b/regexes.txt
deleted file mode 100644
index 4b4a208..0000000
--- a/regexes.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-
-/* A */  =>  // A
-
-	%s/\/\* \(.*\) \*\//\/\/ \1/gc
-
-A; [// B]  =>  A [// B]
-
-	%s/;[ \t]*\( \\/ .*\)\?$/\1/gc
-
-type [*]name  =>  name [*]type
-
-	%s/\(\%(\%(const\|unsigned\) \)\?\%(yaml_[a-z_]*_t\|\<int\>\|\<char\>\|\<size_t\>\)\) \(\**\)\([a-z_]\+\)/\3 \2\1/gc
-
-if (A) return B  =>  if A { return B }
-
-	%s/if (\(.*\)) return \([^ ]\+\)$/if \1 { return \2 }/gc
-
-if (A) {  =>  if A {
-
-	%s/if (\(.*\)) {$/if \1 {/gc
-
-if (A)\n{\n  =>  if A {\n
-
-	%s/\([ \t\/]*\)\(else\|if\)\( \)(\([^{]\+\))\n[ \t\/]*{$/\1\2\3\4 {/gc
-
-if (A)\nB  =>  if A {\nB\n}
-
-	%s/^\([ \t]*\/\/\)\?\( *\)if (\(.*\))\n\(.*\)/\1\2if \3 {^M\4^M\1\2}/gc
-
-if (A\nB) {  =>  if A\nB {
-
-	%s/\(if\|for\) (\(\_[^{]\+\)) {/\1 \2 {/gc
-
-}\nelse\n{  =>  } else {
-
-	%s/^\([ \t\/]*\)}\([ \t\/\n]*\)\n\1else\(\n\1\| \){/\1} else {/gc
-
-}\nelse if  =>  } else if
-
-	%s/^\([ \t\/]*\)}\([ \t\/\n]*\)\n\1else if/\1} else if/gc
-
-//static int\nyaml_*)\n//{  =>  //func yaml_*) bool {
-
-	%s/^\/\/\(static int\|YAML_DECLARE(int)\)\n\/\/\(yaml_\([^{]\+\n\?\)\+)\)\n\/\/{/\/\/func \2 bool {/gc
-
-IS_X_AT  =>  is_x
-
-	%s/IS_BLANKZ_AT(parser.buffer, \([0-9]\))/is_blankz(parser.buffer, parser.buffer_pos+\1)/
