diff --git a/.gitmodules b/.gitmodules
index 25595a48247f572798df0302a98f5f39937524f9..96528423c1cbec2755b07b8793b09ec744401040 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -4,3 +4,6 @@
 [submodule "json"]
 	path = json
 	url = git@github.com:bcumming/json.git
+[submodule "modparser"]
+	path = modparser
+	url = git@github.com:eth-cscs/modparser.git
diff --git a/mechanisms/generate.sh b/mechanisms/generate.sh
index 9fe83f04d1b2775eae25f0e4ec7030cd89ee6163..d9033f0dbc1cb34e6ef10b1b42d6bdd9e37b0cd7 100755
--- a/mechanisms/generate.sh
+++ b/mechanisms/generate.sh
@@ -1,4 +1,4 @@
 for mech in pas hh
 do
-    modcc -t cpu -o ../include/mechanisms/$mech.hpp ./mod/$mech.mod
+    ../modparser/bin/modcc -t cpu -o ../include/mechanisms/$mech.hpp ./mod/$mech.mod
 done
diff --git a/modparser b/modparser
new file mode 160000
index 0000000000000000000000000000000000000000..d1dd8fa868c0dc7e348093ed4a4b5c6c94e29e34
--- /dev/null
+++ b/modparser
@@ -0,0 +1 @@
+Subproject commit d1dd8fa868c0dc7e348093ed4a4b5c6c94e29e34