aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGanesh Viswanathan <dev@genotrance.com>2019-04-01 12:05:43 -0500
committerGanesh Viswanathan <dev@genotrance.com>2019-04-01 12:05:43 -0500
commitda4d800fade4d0559eb0a658fe02269edfe0ec12 (patch)
tree72266af2bf73d40d5cba984a368183595b98a314
parent98352b889914e40b3838115a42e07d822e50d0d9 (diff)
downloadnimterop-da4d800fade4d0559eb0a658fe02269edfe0ec12.tar.gz
nimterop-da4d800fade4d0559eb0a658fe02269edfe0ec12.zip
Fix for upstream tree-sitter changes
-rw-r--r--nimterop/setup.nim10
-rw-r--r--nimterop/treesitter/c.nim8
-rw-r--r--nimterop/treesitter/cpp.nim8
3 files changed, 16 insertions, 10 deletions
diff --git a/nimterop/setup.nim b/nimterop/setup.nim
index fceac88..e50a5ef 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/*
+lib/include/tree_sitter/api.h
lib/src/*
""")
@@ -24,13 +24,13 @@ proc treesitterCSetup*() =
src/*.h
src/*.c
src/*.cc
+src/tree_sitter/parser.h
""")
let
- headerc = incDir() / "treesitter_c/src/parser.h"
+ headerc = incDir() / "treesitter_c/src/api.h"
headerc.writeFile("""
-typedef struct TSLanguage TSLanguage;
const TSLanguage *tree_sitter_c();
""")
@@ -39,12 +39,12 @@ proc treesitterCppSetup*() =
src/*.h
src/*.c
src/*.cc
+src/tree_sitter/parser.h
""")
let
- headercpp = incDir() / "treesitter_cpp/src/parser.h"
+ headercpp = incDir() / "treesitter_cpp/src/api.h"
headercpp.writeFile("""
-typedef struct TSLanguage TSLanguage;
const TSLanguage *tree_sitter_cpp();
""")
diff --git a/nimterop/treesitter/c.nim b/nimterop/treesitter/c.nim
index 0170a5d..86cb71a 100644
--- a/nimterop/treesitter/c.nim
+++ b/nimterop/treesitter/c.nim
@@ -5,8 +5,12 @@ import ".."/[setup, paths]
static:
treesitterCSetup()
+const srcDir = incDir() / "treesitter_c/src"
+
+{.passC: "-I$1" % srcDir.}
+
import "."/api
-{.compile: incDir() / "treesitter_c/src/parser.c".}
+{.compile: srcDir / "parser.c".}
-proc treeSitterC*(): ptr TSLanguage {.importc: "tree_sitter_c", header: incDir() / "treesitter_c/src/parser.h".}
+proc treeSitterC*(): ptr TSLanguage {.importc: "tree_sitter_c", header: srcDir / "api.h".}
diff --git a/nimterop/treesitter/cpp.nim b/nimterop/treesitter/cpp.nim
index 296929f..90db000 100644
--- a/nimterop/treesitter/cpp.nim
+++ b/nimterop/treesitter/cpp.nim
@@ -5,10 +5,12 @@ import ".."/[setup, paths]
static:
treesitterCppSetup()
-import "."/api
-
const srcDir = incDir() / "treesitter_cpp/src"
+{.passC: "-I$1" % srcDir.}
+
+import "."/api
+
when (NimMajor, NimMinor, NimPatch) < (0, 19, 9):
const srcDirRel = "../../build/inc/treesitter_cpp/src"
else:
@@ -31,4 +33,4 @@ that we link against, which avoids the linker hack.
{.compile: srcDir / "scanner.cc".}
-proc treeSitterCpp*(): ptr TSLanguage {.importc: "tree_sitter_cpp", header: srcDir / "parser.h".}
+proc treeSitterCpp*(): ptr TSLanguage {.importc: "tree_sitter_cpp", header: srcDir / "api.h".}