diff options
| -rw-r--r-- | nimterop/setup.nim | 17 | ||||
| -rw-r--r-- | nimterop/treesitter/c.nim | 4 |
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".} |
