tbsp/test/double_selector.tbsp

37 lines
719 B
Plaintext

%language c
%%
enter function_definition declaration {
TSNode declarator = $$->"declarator";
TSNode next_declarator = declarator;
while (next_declarator = tbnode_child_by_field_name(next_declarator, "declarator"),
!ts_node_is_null(next_declarator)) {
declarator = next_declarator;
}
char * s = tbget_node_text(declarator);
puts(s);
free(s);
}
%%
/* @BAKE
tbsp $@
gcc -o $*.out $*.tb.c $(pkg-config --cflags --libs tree-sitter tree-sitter-c) -ggdb
./$*.out $.tb.c
@STOP
*/
#include "file2str.h"
signed main(int argc, char * * argv) {
if (argc < 2) { return 1; }
FILE2STR(fstr, argv[1]);
puts(fstr);
tbtraverse(fstr);
return 0;
}