changeset 696: | 38e9c3be2392 |
parent: | dda17d7dba4f |
child: | 08621be7e780 |
author: | Richard Westhaver <ellis@rwest.io> |
date: | Fri, 04 Oct 2024 21:11:52 -0400 |
permissions: | -rw-r--r-- |
description: | prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M |
412
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
1 | //! tree-sitter/alien.c --- Tree-sitter C wrapper |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
2 | |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
3 | // based on https://github.com/death/cl-tree-sitter |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
4 | |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
5 | // it's annoying that we need this, I thought we could get away |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
6 | // without it. Alas, SB-ALIEN is also unable to fully interoperate |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
7 | // with the types defined in api.h, so we need to manually create |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
8 | // pointer type definitions for them. |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
9 | |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
10 | // build with: |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
11 | /* |
696
38e9c3be2392
prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
526
diff
changeset
|
12 | cc -g -O2 -Wall -Wno-unused-value -ltree-sitter -shared alien.c -o /usr/local/lib/libtree-sitter-alien.so |
412
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
13 | */ |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
14 | |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
15 | /// Code: |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
16 | #include <stdlib.h> |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
17 | |
696
38e9c3be2392
prep for adding zdict wrapper, change default control stack size of inferior-lisp to 8M
Richard Westhaver <ellis@rwest.io>
parents:
526
diff
changeset
|
18 | #include "alien.h" |
412
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
19 | |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
20 | TSNode *ts_tree_root_node_pointer(const TSTree *self) { |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
21 | TSNode *node = malloc(sizeof(TSNode)); |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
22 | |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
23 | if (node) { |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
24 | *node = ts_tree_root_node(self); |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
25 | } |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
26 | |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
27 | return node; |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
28 | } |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
29 | |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
30 | TSTreeCursor *ts_tree_cursor_new_pointer(TSNode *node) { |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
31 | TSTreeCursor *cursor = malloc(sizeof(TSTreeCursor)); |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
32 | |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
33 | if (cursor) { |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
34 | *cursor = ts_tree_cursor_new(*node); |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
35 | } |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
36 | |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
37 | return cursor; |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
38 | } |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
39 | |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
40 | TSNode *ts_tree_cursor_current_node_pointer(const TSTreeCursor *cursor) { |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
41 | TSNode *return_node = malloc(sizeof(TSNode)); |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
42 | |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
43 | if (return_node) { |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
44 | *return_node = ts_tree_cursor_current_node(cursor); |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
45 | } |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
46 | |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
47 | return return_node; |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
48 | } |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
49 | |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
50 | int ts_node_is_named_pointer(TSNode *node) { |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
51 | return ts_node_is_named(*node); |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
52 | } |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
53 | |
526 | 54 | TSPoint ts_node_start_point_pointer(TSNode *node) { |
412
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
55 | return ts_node_start_point(*node); |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
56 | } |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
57 | |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
58 | |
526 | 59 | TSPoint ts_node_end_point_pointer(TSNode *node) { |
412
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
60 | return ts_node_end_point(*node); |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
61 | } |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
62 | |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
63 | const char *ts_node_type_pointer(TSNode *node) { |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
64 | return ts_node_type(*node); |
0aabe04c7625
add back tree-sitter wrappers
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
65 | } |