From 7bc619e79dbe751c037c3d61983baed3a7bc64d9 Mon Sep 17 00:00:00 2001 From: Ganesh Viswanathan Date: Wed, 6 Feb 2019 18:13:58 -0600 Subject: [PATCH] Rename tree-sitter runtime to api, add tsgen --- nimterop/all.nim | 2 +- nimterop/ast.nim | 2 +- nimterop/astold.nim | 2 +- nimterop/getters.nim | 2 +- nimterop/globals.nim | 2 +- nimterop/grammar.nim | 2 +- nimterop/toast.nim | 2 +- nimterop/treesitter/{runtime.nim => api.nim} | 0 nimterop/treesitter/c.nim | 2 +- nimterop/treesitter/cpp.nim | 2 +- nimterop/treesitter/tsgen.nim | 18 ++++++++++++++++++ 11 files changed, 27 insertions(+), 9 deletions(-) rename nimterop/treesitter/{runtime.nim => api.nim} (100%) create mode 100644 nimterop/treesitter/tsgen.nim diff --git a/nimterop/all.nim b/nimterop/all.nim index 87564e0..dd42c03 100644 --- a/nimterop/all.nim +++ b/nimterop/all.nim @@ -4,4 +4,4 @@ Module that should import everything so that `nim doc --project nimtero/all` run # TODO: make sure it does import everything. -import "."/[cimport,git,plugin] +import "."/[cimport, git, types, plugin] diff --git a/nimterop/ast.nim b/nimterop/ast.nim index 94465a7..aede004 100644 --- a/nimterop/ast.nim +++ b/nimterop/ast.nim @@ -2,7 +2,7 @@ import os, sequtils, sets, strformat, strutils, tables, times import regex -import "."/[getters, globals, grammar, treesitter/runtime] +import "."/[getters, globals, grammar, treesitter/api] proc saveNodeData(node: TSNode, nimState: NimState): bool = let name = $node.tsNodeType() diff --git a/nimterop/astold.nim b/nimterop/astold.nim index 069ecba..a0c5b93 100644 --- a/nimterop/astold.nim +++ b/nimterop/astold.nim @@ -1,6 +1,6 @@ import macros, os, strformat, strutils -import treesitter/runtime +import treesitter/api import getters, globals diff --git a/nimterop/getters.nim b/nimterop/getters.nim index 7c42583..63836e3 100644 --- a/nimterop/getters.nim +++ b/nimterop/getters.nim @@ -2,7 +2,7 @@ import dynlib, macros, os, sequtils, sets, strformat, strutils, tables, times import regex -import "."/[git, globals, plugin, treesitter/runtime] +import "."/[git, globals, plugin, treesitter/api] const gReserved = """ addr and as asm diff --git a/nimterop/globals.nim b/nimterop/globals.nim index b959958..bdb29dc 100644 --- a/nimterop/globals.nim +++ b/nimterop/globals.nim @@ -5,7 +5,7 @@ import regex import "."/plugin when not declared(CIMPORT): - import "."/treesitter/runtime + import "."/treesitter/api const gAtoms {.used.} = @[ diff --git a/nimterop/grammar.nim b/nimterop/grammar.nim index 510cc7c..3895aa1 100644 --- a/nimterop/grammar.nim +++ b/nimterop/grammar.nim @@ -2,7 +2,7 @@ import macros, sets, strformat, strutils, tables import regex -import "."/[getters, globals, lisp, treesitter/runtime] +import "."/[getters, globals, lisp, treesitter/api] type Grammar = seq[tuple[grammar: string, call: proc(ast: ref Ast, node: TSNode, nimState: NimState) {.nimcall.}]] diff --git a/nimterop/toast.nim b/nimterop/toast.nim index 9221802..e3651a0 100644 --- a/nimterop/toast.nim +++ b/nimterop/toast.nim @@ -1,6 +1,6 @@ import os, strformat, strutils -import "."/treesitter/[runtime, c, cpp] +import "."/treesitter/[api, c, cpp] import "."/[ast, globals, getters, grammar] diff --git a/nimterop/treesitter/runtime.nim b/nimterop/treesitter/api.nim similarity index 100% rename from nimterop/treesitter/runtime.nim rename to nimterop/treesitter/api.nim diff --git a/nimterop/treesitter/c.nim b/nimterop/treesitter/c.nim index f34eaf9..0170a5d 100644 --- a/nimterop/treesitter/c.nim +++ b/nimterop/treesitter/c.nim @@ -5,7 +5,7 @@ import ".."/[setup, paths] static: treesitterCSetup() -import "."/runtime +import "."/api {.compile: incDir() / "treesitter_c/src/parser.c".} diff --git a/nimterop/treesitter/cpp.nim b/nimterop/treesitter/cpp.nim index 7fc0b13..296929f 100644 --- a/nimterop/treesitter/cpp.nim +++ b/nimterop/treesitter/cpp.nim @@ -5,7 +5,7 @@ import ".."/[setup, paths] static: treesitterCppSetup() -import "."/runtime +import "."/api const srcDir = incDir() / "treesitter_cpp/src" diff --git a/nimterop/treesitter/tsgen.nim b/nimterop/treesitter/tsgen.nim new file mode 100644 index 0000000..335f28f --- /dev/null +++ b/nimterop/treesitter/tsgen.nim @@ -0,0 +1,18 @@ +# nim c tsgen.nim > temp.nim +# Move temp.nim contents to api.nim below generated line + minor adjustments + +import os + +import nimterop/[cimport, paths] + +cPlugin: + import strutils + + proc onSymbol*(sym: var Symbol) {.exportc, dynlib.} = + if "_CRT" in sym.name: + sym.name = sym.name.strip(chars={'_'}) + +static: + cDebug() + +cImport(incDir()/"treesitter/lib/include/tree_sitter/api.h") \ No newline at end of file