aboutsummaryrefslogtreecommitdiff
path: root/3rdparty/create_gumbo_wrapper.nim
diff options
context:
space:
mode:
authorOskari Timperi <oskari.timperi@iki.fi>2017-12-05 19:27:09 +0200
committerOskari Timperi <oskari.timperi@iki.fi>2017-12-05 19:27:09 +0200
commit7ee6dfc00d26bd41b334386115dd2a58cfd80aab (patch)
treefb4d6ae992a7b683d6b938ae205104b1279595d4 /3rdparty/create_gumbo_wrapper.nim
downloadnim-gumbo-parser-7ee6dfc00d26bd41b334386115dd2a58cfd80aab.tar.gz
nim-gumbo-parser-7ee6dfc00d26bd41b334386115dd2a58cfd80aab.zip
Initial commitHEADmaster
Diffstat (limited to '3rdparty/create_gumbo_wrapper.nim')
-rw-r--r--3rdparty/create_gumbo_wrapper.nim27
1 files changed, 27 insertions, 0 deletions
diff --git a/3rdparty/create_gumbo_wrapper.nim b/3rdparty/create_gumbo_wrapper.nim
new file mode 100644
index 0000000..86c8b99
--- /dev/null
+++ b/3rdparty/create_gumbo_wrapper.nim
@@ -0,0 +1,27 @@
+import json
+import os
+import osproc
+import strutils
+import sequtils
+import pegs
+
+let gumboHeader = getAppDir() / "gumbo-parser" / "src" / "gumbo.h"
+let tmpFile = getAppDir() / "gumbo.nim.tmp"
+let outputFile = getAppDir() / "gumbo.nim"
+
+let dynlibPeg = peg"','\s*'dynlib: DYNLIB'"
+
+let args = [
+ "--skipinclude",
+ "--skipcomments",
+ "--dynlib:DYNLIB",
+ "--out:" & tmpFile,
+ "--debug",
+ gumboHeader
+]
+
+echo(execProcess("c2nim", args, nil, {poEchoCmd, poUsePath}))
+
+transformFile(tmpFile, outputFile, [(pattern: dynlibPeg, repl: "")])
+
+removeFile(tmpFile)