aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGanesh Viswanathan <dev@genotrance.com>2019-04-01 16:57:28 -0500
committerGanesh Viswanathan <dev@genotrance.com>2019-04-01 16:57:28 -0500
commitcc1cbb459c0e725a038df449ff265c484b4086c0 (patch)
tree80d82ce0136cb1b8b8c0ccb70d0de13b7df8193e
parent50f4d73db92d78474c66f2e7aebdb7cb8c7f4eef (diff)
downloadnimterop-cc1cbb459c0e725a038df449ff265c484b4086c0.tar.gz
nimterop-cc1cbb459c0e725a038df449ff265c484b4086c0.zip
Fix for parser.h
-rw-r--r--nimterop/setup.nim17
-rw-r--r--nimterop/treesitter/c.nim4
2 files changed, 16 insertions, 5 deletions
diff --git a/nimterop/setup.nim b/nimterop/setup.nim
index e50a5ef..2e436cb 100644
--- a/nimterop/setup.nim
+++ b/nimterop/setup.nim
@@ -4,7 +4,7 @@ import "."/[git, paths]
proc treesitterSetup*() =
gitPull("https://github.com/tree-sitter/tree-sitter/", incDir() / "treesitter", """
-lib/include/tree_sitter/api.h
+lib/include/*
lib/src/*
""")
@@ -13,12 +13,23 @@ lib/src/*
*.h
""")
- # TODO: does this work on windows? if not use `os.unixToNativePath`
let
- stack = incDir() / "treesitter/lib/src/stack.c"
+ tbase = incDir() / "treesitter/lib"
+ stack = tbase / "src/stack.c"
+ parser = tbase / "include/tree_sitter/parser.h"
+ tparser = parser.replace("parser", "tparser")
+ language = tbase / "src/language.h"
+ lexer = tbase / "src/lexer.h"
+ subtree = tbase / "src/subtree.h"
stack.writeFile(stack.readFile().replace("inline Stack", "Stack"))
+ # parser.h
+ mvFile(parser, tparser)
+ language.writeFile(language.readFile().replace("parser.h", "tparser.h"))
+ lexer.writeFile(lexer.readFile().replace("parser.h", "tparser.h"))
+ subtree.writeFile(subtree.readFile().replace("parser.h", "tparser.h"))
+
proc treesitterCSetup*() =
gitPull("https://github.com/tree-sitter/tree-sitter-c", incDir() / "treesitter_c", """
src/*.h
diff --git a/nimterop/treesitter/c.nim b/nimterop/treesitter/c.nim
index 86cb71a..a39ee65 100644
--- a/nimterop/treesitter/c.nim
+++ b/nimterop/treesitter/c.nim
@@ -7,10 +7,10 @@ static:
const srcDir = incDir() / "treesitter_c/src"
-{.passC: "-I$1" % srcDir.}
-
import "."/api
+{.passC: "-I$1" % srcDir.}
+
{.compile: srcDir / "parser.c".}
proc treeSitterC*(): ptr TSLanguage {.importc: "tree_sitter_c", header: srcDir / "api.h".}