Bump to latest tree-sitter

This commit is contained in:
Ganesh Viswanathan 2020-06-25 00:59:42 -05:00
commit f42ba492e3
3 changed files with 199 additions and 127 deletions

View file

@ -7,12 +7,7 @@ proc treesitterSetup*() =
gitPull("https://github.com/tree-sitter/tree-sitter", cacheDir / "treesitter", """ gitPull("https://github.com/tree-sitter/tree-sitter", cacheDir / "treesitter", """
lib/include/* lib/include/*
lib/src/* lib/src/*
""", "0.15.14") """, "0.16.8")
gitPull("https://github.com/JuliaStrings/utf8proc", cacheDir / "utf8proc", """
*.c
*.h
""")
let let
tbase = cacheDir / "treesitter" / "lib" tbase = cacheDir / "treesitter" / "lib"
@ -37,7 +32,7 @@ src/*.h
src/*.c src/*.c
src/*.cc src/*.cc
src/tree_sitter/parser.h src/tree_sitter/parser.h
""", "v0.15.3") """, "0.16.1")
writeFile(cacheDir / "treesitter_c" / "src" / "api.h", """ writeFile(cacheDir / "treesitter_c" / "src" / "api.h", """
const TSLanguage *tree_sitter_c(); const TSLanguage *tree_sitter_c();
@ -49,7 +44,7 @@ src/*.h
src/*.c src/*.c
src/*.cc src/*.cc
src/tree_sitter/parser.h src/tree_sitter/parser.h
""", "v0.15.1") """, "v0.16.0")
writeFile(cacheDir / "treesitter_cpp" / "src" / "api.h", """ writeFile(cacheDir / "treesitter_cpp" / "src" / "api.h", """
const TSLanguage *tree_sitter_cpp(); const TSLanguage *tree_sitter_cpp();

View file

@ -12,56 +12,70 @@ const sourcePath = cacheDir / "treesitter" / "lib"
when defined(Linux): when defined(Linux):
{.passC: "-std=c11".} {.passC: "-std=c11".}
{.passC: "-DUTF8PROC_STATIC".}
{.passC: "-I$1" % (sourcePath / "include").} {.passC: "-I$1" % (sourcePath / "include").}
{.passC: "-I$1" % (sourcePath / "src").} {.passC: "-I$1" % (sourcePath / "src").}
{.passC: "-I$1" % (sourcePath / ".." / ".." / "utf8proc").}
{.compile: sourcePath / "src" / "lib.c".} {.compile: sourcePath / "src" / "lib.c".}
### Generated below ### Generated below
{.hint[ConvFromXtoItselfNotNeeded]: off.} {.push hint[ConvFromXtoItselfNotNeeded]: off.}
{.pragma: impapiHdr, header: sourcePath / "include" / "tree_sitter" / "api.h".}
defineEnum(TSInputEncoding) defineEnum(TSInputEncoding)
defineEnum(TSSymbolType) defineEnum(TSSymbolType)
defineEnum(TSLogType) defineEnum(TSLogType)
defineEnum(TSQueryPredicateStepType)
defineEnum(TSQueryError)
const const
headerapi {.used.} = sourcePath / "include" / "tree_sitter" / "api.h" TREE_SITTER_LANGUAGE_VERSION* = 11
TREE_SITTER_LANGUAGE_VERSION* = 9 TREE_SITTER_MIN_COMPATIBLE_LANGUAGE_VERSION* = 9
TSInputEncodingUTF8* = 0.TSInputEncoding TSInputEncodingUTF8* = (0).TSInputEncoding
TSInputEncodingUTF16* = 1.TSInputEncoding TSInputEncodingUTF16* = (TSInputEncodingUTF8 + 1).TSInputEncoding
TSSymbolTypeRegular* = 0.TSSymbolType TSSymbolTypeRegular* = (0).TSSymbolType
TSSymbolTypeAnonymous* = 1.TSSymbolType TSSymbolTypeAnonymous* = (TSSymbolTypeRegular + 1).TSSymbolType
TSSymbolTypeAuxiliary* = 2.TSSymbolType TSSymbolTypeAuxiliary* = (TSSymbolTypeAnonymous + 1).TSSymbolType
TSLogTypeParse* = 0.TSLogType TSLogTypeParse* = (0).TSLogType
TSLogTypeLex* = 1.TSLogType TSLogTypeLex* = (TSLogTypeParse + 1).TSLogType
TSQueryPredicateStepTypeDone* = (0).TSQueryPredicateStepType
TSQueryPredicateStepTypeCapture* = (TSQueryPredicateStepTypeDone + 1).TSQueryPredicateStepType
TSQueryPredicateStepTypeString* = (TSQueryPredicateStepTypeCapture + 1).TSQueryPredicateStepType
TSQueryErrorNone* = (0).TSQueryError
TSQueryErrorSyntax* = (TSQueryErrorNone + 1).TSQueryError
TSQueryErrorNodeType* = (TSQueryErrorSyntax + 1).TSQueryError
TSQueryErrorField* = (TSQueryErrorNodeType + 1).TSQueryError
TSQueryErrorCapture* = (TSQueryErrorField + 1).TSQueryError
type type
TSSymbol* = uint16 TSSymbol* {.importc, impapiHdr.} = uint16
TSLanguage* = object TSFieldId* {.importc, impapiHdr.} = uint16
TSParser* = object TSLanguage* {.importc, impapiHdr, incompleteStruct.} = object
TSTree* = object TSParser* {.importc, impapiHdr, incompleteStruct.} = object
TSPoint* {.importc, header: headerapi, bycopy.} = object TSTree* {.importc, impapiHdr, incompleteStruct.} = object
TSQuery* {.importc, impapiHdr, incompleteStruct.} = object
TSQueryCursor* {.importc, impapiHdr, incompleteStruct.} = object
TSPoint* {.bycopy, importc, impapiHdr.} = object
row*: uint32 row*: uint32
column*: uint32 column*: uint32
TSRange* {.importc, header: headerapi, bycopy.} = object TSRange* {.bycopy, importc, impapiHdr.} = object
start_point*: TSPoint start_point*: TSPoint
end_point*: TSPoint end_point*: TSPoint
start_byte*: uint32 start_byte*: uint32
end_byte*: uint32 end_byte*: uint32
TSInput* {.importc, header: headerapi, bycopy.} = object TSInput* {.bycopy, importc, impapiHdr.} = object
payload*: pointer payload*: pointer
read*: proc (payload: pointer; byte_index: uint32; position: TSPoint; read*: proc (payload: pointer; byte_index: uint32; position: TSPoint;
bytes_read: ptr uint32): cstring {.nimcall.} bytes_read: ptr uint32): cstring {.cdecl.}
encoding*: TSInputEncoding encoding*: TSInputEncoding
TSLogger* {.importc, header: headerapi, bycopy.} = object TSLogger* {.bycopy, importc, impapiHdr.} = object
payload*: pointer payload*: pointer
log*: proc (payload: pointer; a1: TSLogType; a2: cstring) {.nimcall.} log*: proc (payload: pointer; a2: TSLogType; a3: cstring) {.cdecl.}
TSInputEdit* {.importc, header: headerapi, bycopy.} = object TSInputEdit* {.bycopy, importc, impapiHdr.} = object
start_byte*: uint32 start_byte*: uint32
old_end_byte*: uint32 old_end_byte*: uint32
new_end_byte*: uint32 new_end_byte*: uint32
@ -69,106 +83,176 @@ type
old_end_point*: TSPoint old_end_point*: TSPoint
new_end_point*: TSPoint new_end_point*: TSPoint
TSNode* {.importc, header: headerapi, bycopy.} = object TSNode* {.bycopy, importc, impapiHdr.} = object
context*: array[4, uint32] context*: array[4, uint32]
id*: pointer id*: pointer
tree*: ptr TSTree tree*: ptr TSTree
TSTreeCursor* {.importc, header: headerapi, bycopy.} = object TSTreeCursor* {.bycopy, importc, impapiHdr.} = object
tree*: pointer tree*: pointer
id*: pointer id*: pointer
context*: array[2, uint32] context*: array[2, uint32]
proc ts_parser_new*(): ptr TSParser {.importc, header: headerapi.} TSQueryCapture* {.bycopy, importc, impapiHdr.} = object
proc ts_parser_delete*(a1: ptr TSParser) {.importc, header: headerapi.} node*: TSNode
proc ts_parser_language*(a1: ptr TSParser): ptr TSLanguage {.importc, header: headerapi.} index*: uint32
proc ts_parser_set_language*(a1: ptr TSParser; a2: ptr TSLanguage): bool {.importc,
header: headerapi.} TSQueryMatch* {.bycopy, importc, impapiHdr.} = object
proc ts_parser_logger*(a1: ptr TSParser): TSLogger {.importc, header: headerapi.} id*: uint32
proc ts_parser_set_logger*(a1: ptr TSParser; a2: TSLogger) {.importc, header: headerapi.} pattern_index*: uint16
proc ts_parser_print_dot_graphs*(a1: ptr TSParser; a2: cint) {.importc, capture_count*: uint16
header: headerapi.} captures*: ptr TSQueryCapture
proc ts_parser_halt_on_error*(a1: ptr TSParser; a2: bool) {.importc, header: headerapi.}
proc ts_parser_parse*(a1: ptr TSParser; a2: ptr TSTree; a3: TSInput): ptr TSTree {.importc, TSQueryPredicateStep* {.bycopy, importc, impapiHdr.} = object
header: headerapi.} `type`*: TSQueryPredicateStepType
proc ts_parser_parse_string*(a1: ptr TSParser; a2: ptr TSTree; a3: cstring; a4: uint32): ptr TSTree {. value_id*: uint32
importc, header: headerapi.}
proc ts_parser_parse_string_encoding*(a1: ptr TSParser; a2: ptr TSTree; a3: cstring; proc ts_parser_new*(): ptr TSParser {.importc, cdecl, impapiHdr.}
a4: uint32; a5: TSInputEncoding): ptr TSTree {. proc ts_parser_delete*(parser: ptr TSParser) {.importc, cdecl, impapiHdr.}
importc, header: headerapi.} proc ts_parser_set_language*(self: ptr TSParser; language: ptr TSLanguage): bool {.
proc ts_parser_enabled*(a1: ptr TSParser): bool {.importc, header: headerapi.} importc, cdecl, impapiHdr.}
proc ts_parser_set_enabled*(a1: ptr TSParser; a2: bool) {.importc, header: headerapi.} proc ts_parser_language*(self: ptr TSParser): ptr TSLanguage {.importc, cdecl, impapiHdr.}
proc ts_parser_operation_limit*(a1: ptr TSParser): cuint {.importc, header: headerapi.} proc ts_parser_set_included_ranges*(self: ptr TSParser; ranges: ptr TSRange;
proc ts_parser_set_operation_limit*(a1: ptr TSParser; a2: cuint) {.importc, length: uint32) {.importc, cdecl, impapiHdr.}
header: headerapi.} proc ts_parser_included_ranges*(self: ptr TSParser; length: ptr uint32): ptr TSRange {.
proc ts_parser_reset*(a1: ptr TSParser) {.importc, header: headerapi.} importc, cdecl, impapiHdr.}
proc ts_parser_set_included_ranges*(a1: ptr TSParser; a2: ptr TSRange; a3: uint32) {. proc ts_parser_parse*(self: ptr TSParser; old_tree: ptr TSTree; input: TSInput): ptr TSTree {.
importc, header: headerapi.} importc, cdecl, impapiHdr.}
proc ts_parser_included_ranges*(a1: ptr TSParser; a2: ptr uint32): ptr TSRange {.importc, proc ts_parser_parse_string*(self: ptr TSParser; old_tree: ptr TSTree; string: cstring;
header: headerapi.} length: uint32): ptr TSTree {.importc, cdecl, impapiHdr.}
proc ts_tree_copy*(a1: ptr TSTree): ptr TSTree {.importc, header: headerapi.} proc ts_parser_parse_string_encoding*(self: ptr TSParser; old_tree: ptr TSTree;
proc ts_tree_delete*(a1: ptr TSTree) {.importc, header: headerapi.} string: cstring; length: uint32;
proc ts_tree_root_node*(a1: ptr TSTree): TSNode {.importc, header: headerapi.} encoding: TSInputEncoding): ptr TSTree {.
proc ts_tree_edit*(a1: ptr TSTree; a2: ptr TSInputEdit) {.importc, header: headerapi.} importc, cdecl, impapiHdr.}
proc ts_tree_get_changed_ranges*(a1: ptr TSTree; a2: ptr TSTree; a3: ptr uint32): ptr TSRange {. proc ts_parser_reset*(self: ptr TSParser) {.importc, cdecl, impapiHdr.}
importc, header: headerapi.} proc ts_parser_set_timeout_micros*(self: ptr TSParser; timeout: uint64) {.importc,
proc ts_tree_print_dot_graph*(a1: ptr TSTree; a2: ptr FILE) {.importc, header: headerapi.} cdecl, impapiHdr.}
proc ts_tree_language*(a1: ptr TSTree): ptr TSLanguage {.importc, header: headerapi.} proc ts_parser_timeout_micros*(self: ptr TSParser): uint64 {.importc, cdecl, impapiHdr.}
proc ts_node_start_byte*(a1: TSNode): uint32 {.importc, header: headerapi.} proc ts_parser_set_cancellation_flag*(self: ptr TSParser; flag: ptr uint) {.importc,
proc ts_node_start_point*(a1: TSNode): TSPoint {.importc, header: headerapi.} cdecl, impapiHdr.}
proc ts_node_end_byte*(a1: TSNode): uint32 {.importc, header: headerapi.} proc ts_parser_cancellation_flag*(self: ptr TSParser): ptr uint {.importc, cdecl,
proc ts_node_end_point*(a1: TSNode): TSPoint {.importc, header: headerapi.} impapiHdr.}
proc ts_node_symbol*(a1: TSNode): TSSymbol {.importc, header: headerapi.} proc ts_parser_set_logger*(self: ptr TSParser; logger: TSLogger) {.importc, cdecl,
proc ts_node_type*(a1: TSNode): cstring {.importc, header: headerapi.} impapiHdr.}
proc ts_node_string*(a1: TSNode): cstring {.importc, header: headerapi.} proc ts_parser_logger*(self: ptr TSParser): TSLogger {.importc, cdecl, impapiHdr.}
proc ts_node_eq*(a1: TSNode; a2: TSNode): bool {.importc, header: headerapi.} proc ts_parser_print_dot_graphs*(self: ptr TSParser; file: cint) {.importc, cdecl,
proc ts_node_is_null*(a1: TSNode): bool {.importc, header: headerapi.} impapiHdr.}
proc ts_node_is_named*(a1: TSNode): bool {.importc, header: headerapi.} proc ts_parser_halt_on_error*(self: ptr TSParser; halt: bool) {.importc, cdecl,
proc ts_node_is_missing*(a1: TSNode): bool {.importc, header: headerapi.} impapiHdr.}
proc ts_node_has_changes*(a1: TSNode): bool {.importc, header: headerapi.} proc ts_tree_copy*(self: ptr TSTree): ptr TSTree {.importc, cdecl, impapiHdr.}
proc ts_node_has_error*(a1: TSNode): bool {.importc, header: headerapi.} proc ts_tree_delete*(self: ptr TSTree) {.importc, cdecl, impapiHdr.}
proc ts_node_parent*(a1: TSNode): TSNode {.importc, header: headerapi.} proc ts_tree_root_node*(self: ptr TSTree): TSNode {.importc, cdecl, impapiHdr.}
proc ts_node_child*(a1: TSNode; a2: uint32): TSNode {.importc, header: headerapi.} proc ts_tree_language*(a1: ptr TSTree): ptr TSLanguage {.importc, cdecl, impapiHdr.}
proc ts_node_named_child*(a1: TSNode; a2: uint32): TSNode {.importc, header: headerapi.} proc ts_tree_edit*(self: ptr TSTree; edit: ptr TSInputEdit) {.importc, cdecl, impapiHdr.}
proc ts_node_child_count*(a1: TSNode): uint32 {.importc, header: headerapi.} proc ts_tree_get_changed_ranges*(old_tree: ptr TSTree; new_tree: ptr TSTree;
proc ts_node_named_child_count*(a1: TSNode): uint32 {.importc, header: headerapi.} length: ptr uint32): ptr TSRange {.importc, cdecl,
proc ts_node_next_sibling*(a1: TSNode): TSNode {.importc, header: headerapi.} impapiHdr.}
proc ts_node_next_named_sibling*(a1: TSNode): TSNode {.importc, header: headerapi.} proc ts_tree_print_dot_graph*(a1: ptr TSTree; a2: File) {.importc, cdecl, impapiHdr.}
proc ts_node_prev_sibling*(a1: TSNode): TSNode {.importc, header: headerapi.} proc ts_node_type*(a1: TSNode): cstring {.importc, cdecl, impapiHdr.}
proc ts_node_prev_named_sibling*(a1: TSNode): TSNode {.importc, header: headerapi.} proc ts_node_symbol*(a1: TSNode): TSSymbol {.importc, cdecl, impapiHdr.}
proc ts_node_first_child_for_byte*(a1: TSNode; a2: uint32): TSNode {.importc, proc ts_node_start_byte*(a1: TSNode): uint32 {.importc, cdecl, impapiHdr.}
header: headerapi.} proc ts_node_start_point*(a1: TSNode): TSPoint {.importc, cdecl, impapiHdr.}
proc ts_node_end_byte*(a1: TSNode): uint32 {.importc, cdecl, impapiHdr.}
proc ts_node_end_point*(a1: TSNode): TSPoint {.importc, cdecl, impapiHdr.}
proc ts_node_string*(a1: TSNode): cstring {.importc, cdecl, impapiHdr.}
proc ts_node_is_null*(a1: TSNode): bool {.importc, cdecl, impapiHdr.}
proc ts_node_is_named*(a1: TSNode): bool {.importc, cdecl, impapiHdr.}
proc ts_node_is_missing*(a1: TSNode): bool {.importc, cdecl, impapiHdr.}
proc ts_node_is_extra*(a1: TSNode): bool {.importc, cdecl, impapiHdr.}
proc ts_node_has_changes*(a1: TSNode): bool {.importc, cdecl, impapiHdr.}
proc ts_node_has_error*(a1: TSNode): bool {.importc, cdecl, impapiHdr.}
proc ts_node_parent*(a1: TSNode): TSNode {.importc, cdecl, impapiHdr.}
proc ts_node_child*(a1: TSNode; a2: uint32): TSNode {.importc, cdecl, impapiHdr.}
proc ts_node_child_count*(a1: TSNode): uint32 {.importc, cdecl, impapiHdr.}
proc ts_node_named_child*(a1: TSNode; a2: uint32): TSNode {.importc, cdecl, impapiHdr.}
proc ts_node_named_child_count*(a1: TSNode): uint32 {.importc, cdecl, impapiHdr.}
proc ts_node_child_by_field_name*(self: TSNode; field_name: cstring;
field_name_length: uint32): TSNode {.importc,
cdecl, impapiHdr.}
proc ts_node_child_by_field_id*(a1: TSNode; a2: TSFieldId): TSNode {.importc, cdecl,
impapiHdr.}
proc ts_node_next_sibling*(a1: TSNode): TSNode {.importc, cdecl, impapiHdr.}
proc ts_node_prev_sibling*(a1: TSNode): TSNode {.importc, cdecl, impapiHdr.}
proc ts_node_next_named_sibling*(a1: TSNode): TSNode {.importc, cdecl, impapiHdr.}
proc ts_node_prev_named_sibling*(a1: TSNode): TSNode {.importc, cdecl, impapiHdr.}
proc ts_node_first_child_for_byte*(a1: TSNode; a2: uint32): TSNode {.importc, cdecl,
impapiHdr.}
proc ts_node_first_named_child_for_byte*(a1: TSNode; a2: uint32): TSNode {.importc, proc ts_node_first_named_child_for_byte*(a1: TSNode; a2: uint32): TSNode {.importc,
header: headerapi.} cdecl, impapiHdr.}
proc ts_node_descendant_for_byte_range*(a1: TSNode; a2: uint32; a3: uint32): TSNode {. proc ts_node_descendant_for_byte_range*(a1: TSNode; a2: uint32; a3: uint32): TSNode {.
importc, header: headerapi.} importc, cdecl, impapiHdr.}
proc ts_node_named_descendant_for_byte_range*(a1: TSNode; a2: uint32; a3: uint32): TSNode {.
importc, header: headerapi.}
proc ts_node_descendant_for_point_range*(a1: TSNode; a2: TSPoint; a3: TSPoint): TSNode {. proc ts_node_descendant_for_point_range*(a1: TSNode; a2: TSPoint; a3: TSPoint): TSNode {.
importc, header: headerapi.} importc, cdecl, impapiHdr.}
proc ts_node_named_descendant_for_byte_range*(a1: TSNode; a2: uint32; a3: uint32): TSNode {.
importc, cdecl, impapiHdr.}
proc ts_node_named_descendant_for_point_range*(a1: TSNode; a2: TSPoint; a3: TSPoint): TSNode {. proc ts_node_named_descendant_for_point_range*(a1: TSNode; a2: TSPoint; a3: TSPoint): TSNode {.
importc, header: headerapi.} importc, cdecl, impapiHdr.}
proc ts_node_edit*(a1: ptr TSNode; a2: ptr TSInputEdit) {.importc, header: headerapi.} proc ts_node_edit*(a1: ptr TSNode; a2: ptr TSInputEdit) {.importc, cdecl, impapiHdr.}
proc ts_tree_cursor_new*(a1: TSNode): TSTreeCursor {.importc, header: headerapi.} proc ts_node_eq*(a1: TSNode; a2: TSNode): bool {.importc, cdecl, impapiHdr.}
proc ts_tree_cursor_delete*(a1: ptr TSTreeCursor) {.importc, header: headerapi.} proc ts_tree_cursor_new*(a1: TSNode): TSTreeCursor {.importc, cdecl, impapiHdr.}
proc ts_tree_cursor_reset*(a1: ptr TSTreeCursor; a2: TSNode) {.importc, proc ts_tree_cursor_delete*(a1: ptr TSTreeCursor) {.importc, cdecl, impapiHdr.}
header: headerapi.} proc ts_tree_cursor_reset*(a1: ptr TSTreeCursor; a2: TSNode) {.importc, cdecl, impapiHdr.}
proc ts_tree_cursor_current_node*(a1: ptr TSTreeCursor): TSNode {.importc, proc ts_tree_cursor_current_node*(a1: ptr TSTreeCursor): TSNode {.importc, cdecl,
header: headerapi.} impapiHdr.}
proc ts_tree_cursor_goto_parent*(a1: ptr TSTreeCursor): bool {.importc, proc ts_tree_cursor_current_field_name*(a1: ptr TSTreeCursor): cstring {.importc,
header: headerapi.} cdecl, impapiHdr.}
proc ts_tree_cursor_goto_next_sibling*(a1: ptr TSTreeCursor): bool {.importc, proc ts_tree_cursor_current_field_id*(a1: ptr TSTreeCursor): TSFieldId {.importc,
header: headerapi.} cdecl, impapiHdr.}
proc ts_tree_cursor_goto_first_child*(a1: ptr TSTreeCursor): bool {.importc, proc ts_tree_cursor_goto_parent*(a1: ptr TSTreeCursor): bool {.importc, cdecl,
header: headerapi.} impapiHdr.}
proc ts_tree_cursor_goto_next_sibling*(a1: ptr TSTreeCursor): bool {.importc, cdecl,
impapiHdr.}
proc ts_tree_cursor_goto_first_child*(a1: ptr TSTreeCursor): bool {.importc, cdecl,
impapiHdr.}
proc ts_tree_cursor_goto_first_child_for_byte*(a1: ptr TSTreeCursor; a2: uint32): int64 {. proc ts_tree_cursor_goto_first_child_for_byte*(a1: ptr TSTreeCursor; a2: uint32): int64 {.
importc, header: headerapi.} importc, cdecl, impapiHdr.}
proc ts_language_symbol_count*(a1: ptr TSLanguage): uint32 {.importc, proc ts_tree_cursor_copy*(a1: ptr TSTreeCursor): TSTreeCursor {.importc, cdecl,
header: headerapi.} impapiHdr.}
proc ts_query_new*(language: ptr TSLanguage; source: cstring; source_len: uint32;
error_offset: ptr uint32; error_type: ptr TSQueryError): ptr TSQuery {.
importc, cdecl, impapiHdr.}
proc ts_query_delete*(a1: ptr TSQuery) {.importc, cdecl, impapiHdr.}
proc ts_query_pattern_count*(a1: ptr TSQuery): uint32 {.importc, cdecl, impapiHdr.}
proc ts_query_capture_count*(a1: ptr TSQuery): uint32 {.importc, cdecl, impapiHdr.}
proc ts_query_string_count*(a1: ptr TSQuery): uint32 {.importc, cdecl, impapiHdr.}
proc ts_query_start_byte_for_pattern*(a1: ptr TSQuery; a2: uint32): uint32 {.importc,
cdecl, impapiHdr.}
proc ts_query_predicates_for_pattern*(self: ptr TSQuery; pattern_index: uint32;
length: ptr uint32): ptr TSQueryPredicateStep {.
importc, cdecl, impapiHdr.}
proc ts_query_capture_name_for_id*(a1: ptr TSQuery; id: uint32; length: ptr uint32): cstring {.
importc, cdecl, impapiHdr.}
proc ts_query_string_value_for_id*(a1: ptr TSQuery; id: uint32; length: ptr uint32): cstring {.
importc, cdecl, impapiHdr.}
proc ts_query_disable_capture*(a1: ptr TSQuery; a2: cstring; a3: uint32) {.importc,
cdecl, impapiHdr.}
proc ts_query_cursor_new*(): ptr TSQueryCursor {.importc, cdecl, impapiHdr.}
proc ts_query_cursor_delete*(a1: ptr TSQueryCursor) {.importc, cdecl, impapiHdr.}
proc ts_query_cursor_exec*(a1: ptr TSQueryCursor; a2: ptr TSQuery; a3: TSNode) {.importc,
cdecl, impapiHdr.}
proc ts_query_cursor_set_byte_range*(a1: ptr TSQueryCursor; a2: uint32; a3: uint32) {.
importc, cdecl, impapiHdr.}
proc ts_query_cursor_set_point_range*(a1: ptr TSQueryCursor; a2: TSPoint; a3: TSPoint) {.
importc, cdecl, impapiHdr.}
proc ts_query_cursor_next_match*(a1: ptr TSQueryCursor; match: ptr TSQueryMatch): bool {.
importc, cdecl, impapiHdr.}
proc ts_query_cursor_remove_match*(a1: ptr TSQueryCursor; id: uint32) {.importc, cdecl,
impapiHdr.}
proc ts_query_cursor_next_capture*(a1: ptr TSQueryCursor; match: ptr TSQueryMatch;
capture_index: ptr uint32): bool {.importc, cdecl,
impapiHdr.}
proc ts_language_symbol_count*(a1: ptr TSLanguage): uint32 {.importc, cdecl, impapiHdr.}
proc ts_language_symbol_name*(a1: ptr TSLanguage; a2: TSSymbol): cstring {.importc, proc ts_language_symbol_name*(a1: ptr TSLanguage; a2: TSSymbol): cstring {.importc,
header: headerapi.} cdecl, impapiHdr.}
proc ts_language_symbol_for_name*(a1: ptr TSLanguage; a2: cstring): TSSymbol {.importc, proc ts_language_symbol_for_name*(self: ptr TSLanguage; string: cstring;
header: headerapi.} length: uint32; is_named: bool): TSSymbol {.importc,
cdecl, impapiHdr.}
proc ts_language_field_count*(a1: ptr TSLanguage): uint32 {.importc, cdecl, impapiHdr.}
proc ts_language_field_name_for_id*(a1: ptr TSLanguage; a2: TSFieldId): cstring {.
importc, cdecl, impapiHdr.}
proc ts_language_field_id_for_name*(a1: ptr TSLanguage; a2: cstring; a3: uint32): TSFieldId {.
importc, cdecl, impapiHdr.}
proc ts_language_symbol_type*(a1: ptr TSLanguage; a2: TSSymbol): TSSymbolType {. proc ts_language_symbol_type*(a1: ptr TSLanguage; a2: TSSymbol): TSSymbolType {.
importc, header: headerapi.} importc, cdecl, impapiHdr.}
proc ts_language_version*(a1: ptr TSLanguage): uint32 {.importc, header: headerapi.} proc ts_language_version*(a1: ptr TSLanguage): uint32 {.importc, cdecl, impapiHdr.}
{.pop.}

View file

@ -5,14 +5,7 @@ import os
import nimterop/[cimport, paths] 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: static:
cDebug() cDebug()
cImport(cacheDir / "treesitter" /"lib" / "include" / "tree_sitter" / "api.h") cImport(cacheDir / "treesitter" / "lib" / "include" / "tree_sitter" / "api.h", flags = "-E_ -c")