// This is an open source non-commercial project. Dear PVS-Studio, please check// it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com// lua bindings for tree-sitter.// NB: this file mostly contains a generic lua interface for tree-sitter// trees and nodes, and could be broken out as a reusable lua package#include <assert.h>#include <lauxlib.h>#include <limits.h>#include <lua.h>#include <stdbool.h>#include <stdint.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <uv.h>#include"klib/kvec.h"#include"nvim/api/private/helpers.h"#include"nvim/buffer_defs.h"#include"nvim/globals.h"#include"nvim/lua/executor.h"#include"nvim/lua/treesitter.h"#include"nvim/macros.h"#include"nvim/map.h"#include"nvim/memline.h"#include"nvim/memory.h"#include"nvim/pos.h"#include"nvim/strings.h"#include"nvim/types.h"#include"tree_sitter/api.h"#define TS_META_PARSER"treesitter_parser"#define TS_META_TREE"treesitter_tree"#define TS_META_NODE"treesitter_node"#define TS_META_QUERY"treesitter_query"#define TS_META_QUERYCURSOR"treesitter_querycursor"#define TS_META_TREECURSOR"treesitter_treecursor"typedefstruct