renamed generated symbols
This commit is contained in:
parent
4e908ea67a
commit
1c03cdee21
@ -25,7 +25,7 @@ typedef struct {\n\
|
|||||||
} tbcase_t;\n\
|
} tbcase_t;\n\
|
||||||
\n\
|
\n\
|
||||||
// XXX better search algo\n\
|
// XXX better search algo\n\
|
||||||
int determine_case(const tbcase_t * const ordered_array, const char * const string) {\n\
|
int tbdetermine_case(const tbcase_t * const ordered_array, const char * const string) {\n\
|
||||||
const tbcase_t * c = ordered_array;\n\
|
const tbcase_t * c = ordered_array;\n\
|
||||||
for (; c->string != NULL; c++) {\n\
|
for (; c->string != NULL; c++) {\n\
|
||||||
if (!strcmp(c->string, string)) { break; }\n\
|
if (!strcmp(c->string, string)) { break; }\n\
|
||||||
@ -44,8 +44,8 @@ char * tbtext(const char * const code, TSNode node) {\n\
|
|||||||
return r;\n\
|
return r;\n\
|
||||||
}\n\
|
}\n\
|
||||||
\n\
|
\n\
|
||||||
#define GET_TBTEXT tbtext(code, current_node)\n\
|
#define GET_TBTEXT tbtext(code, tbnode)\n\
|
||||||
#define GET_TBTEXT_FROM_NODE(n) tbtext(code, n)\n\
|
#define GET_TBTEXT_FROM_NODE(n) tbtext(tbcode, n)\n\
|
||||||
";
|
";
|
||||||
|
|
||||||
const char * const TBSP_case = "\
|
const char * const TBSP_case = "\
|
||||||
@ -53,35 +53,35 @@ const char * const TBSP_case = "\
|
|||||||
";
|
";
|
||||||
|
|
||||||
const char * const TBSP_traverse_top = "\
|
const char * const TBSP_traverse_top = "\
|
||||||
int tbtraverse(const char * const code) {\n\
|
int tbtraverse(const char * const tbcode) {\n\
|
||||||
// init\n\
|
// init\n\
|
||||||
TSParser * parser;\n\
|
TSParser * tbparser;\n\
|
||||||
TSTree * tree;\n\
|
TSTree * tbtree;\n\
|
||||||
TSTreeCursor cursor;\n\
|
TSTreeCursor tbcursor;\n\
|
||||||
TSNode current_node;\n\
|
TSNode tbnode;\n\
|
||||||
\n\
|
\n\
|
||||||
int tb_case;\n\
|
int tbcase;\n\
|
||||||
\n\
|
\n\
|
||||||
parser = ts_parser_new();\n\
|
tbparser = ts_parser_new();\n\
|
||||||
\n\
|
\n\
|
||||||
ts_parser_set_language(parser, tblanguage_function());\n\
|
ts_parser_set_language(tbparser, tblanguage_function());\n\
|
||||||
\n\
|
\n\
|
||||||
tree = ts_parser_parse_string(parser, NULL, code, strlen(code));\n\
|
tbtree = ts_parser_parse_string(tbparser, NULL, tbcode, strlen(tbcode));\n\
|
||||||
cursor = ts_tree_cursor_new(ts_tree_root_node(tree));\n\
|
tbcursor = ts_tree_cursor_new(ts_tree_root_node(tbtree));\n\
|
||||||
current_node = ts_tree_root_node(tree);\n\
|
tbnode = ts_tree_root_node(tbtree);\n\
|
||||||
\n\
|
\n\
|
||||||
const tbcase_t * current_cases = tb_enter_cases;\n\
|
const tbcase_t * tbcurrent_cases = tbenter_cases;\n\
|
||||||
\n\
|
\n\
|
||||||
// meat\n\
|
// meat\n\
|
||||||
while (true) {\n\
|
while (true) {\n\
|
||||||
current_node = ts_tree_cursor_current_node(&cursor);\n\
|
tbnode = ts_tree_cursor_current_node(&tbcursor);\n\
|
||||||
\n\
|
|
||||||
tb_case = determine_case(current_cases, ts_node_type(current_node));\n\
|
|
||||||
\n\
|
|
||||||
#if defined(TBDEBUG) && TBDEBUG == 1\n\
|
#if defined(TBDEBUG) && TBDEBUG == 1\n\
|
||||||
puts(ts_node_string(current_node));\n\
|
puts(ts_node_string(tbnode));\n\
|
||||||
#endif\n\
|
#endif\n\
|
||||||
switch (tb_case) {\n\
|
\n\
|
||||||
|
tbcase = tbdetermine_case(tbcurrent_cases, ts_node_type(tbnode));\n\
|
||||||
|
\n\
|
||||||
|
switch (tbcase) {\n\
|
||||||
// XXX INJECTION\n\
|
// XXX INJECTION\n\
|
||||||
";
|
";
|
||||||
|
|
||||||
@ -89,41 +89,41 @@ const char * const TBSP_traverse_bottom = "\
|
|||||||
default: { ; } break;\n\
|
default: { ; } break;\n\
|
||||||
}\n\
|
}\n\
|
||||||
\n\
|
\n\
|
||||||
if (ts_node_child_count(current_node)\n\
|
if (ts_node_child_count(tbnode)\n\
|
||||||
&& current_cases == tb_enter_cases) {\n\
|
&& tbcurrent_cases == tbenter_cases) {\n\
|
||||||
ts_tree_cursor_goto_first_child(&cursor);\n\
|
ts_tree_cursor_goto_first_child(&tbcursor);\n\
|
||||||
continue;\n\
|
continue;\n\
|
||||||
}\n\
|
}\n\
|
||||||
\n\
|
\n\
|
||||||
logic:\n\
|
tblogic:\n\
|
||||||
if (!ts_node_is_null(ts_node_next_sibling(current_node))) {\n\
|
if (!ts_node_is_null(ts_node_next_sibling(tbnode))) {\n\
|
||||||
if (current_cases == tb_enter_cases) {\n\
|
if (tbcurrent_cases == tbenter_cases) {\n\
|
||||||
current_cases = tb_leave_cases;\n\
|
tbcurrent_cases = tbleave_cases;\n\
|
||||||
continue;\n\
|
continue;\n\
|
||||||
} else {\n\
|
} else {\n\
|
||||||
ts_tree_cursor_goto_next_sibling(&cursor);\n\
|
ts_tree_cursor_goto_next_sibling(&tbcursor);\n\
|
||||||
current_cases = tb_enter_cases;\n\
|
tbcurrent_cases = tbenter_cases;\n\
|
||||||
continue;\n\
|
continue;\n\
|
||||||
}\n\
|
}\n\
|
||||||
}\n\
|
}\n\
|
||||||
\n\
|
\n\
|
||||||
if (current_cases == tb_enter_cases) {\n\
|
if (tbcurrent_cases == tbenter_cases) {\n\
|
||||||
current_cases = tb_leave_cases;\n\
|
tbcurrent_cases = tbleave_cases;\n\
|
||||||
continue;\n\
|
continue;\n\
|
||||||
}\n\
|
}\n\
|
||||||
\n\
|
\n\
|
||||||
if (ts_tree_cursor_goto_parent(&cursor)) {\n\
|
if (ts_tree_cursor_goto_parent(&tbcursor)) {\n\
|
||||||
current_cases = tb_enter_cases;\n\
|
tbcurrent_cases = tbenter_cases;\n\
|
||||||
goto logic;\n\
|
goto tblogic;\n\
|
||||||
}\n\
|
}\n\
|
||||||
\n\
|
\n\
|
||||||
break;\n\
|
break;\n\
|
||||||
}\n\
|
}\n\
|
||||||
\n\
|
\n\
|
||||||
// deinit\n\
|
// deinit\n\
|
||||||
ts_tree_delete(tree);\n\
|
ts_tree_delete(tbtree);\n\
|
||||||
ts_parser_delete(parser);\n\
|
ts_parser_delete(tbparser);\n\
|
||||||
ts_tree_cursor_delete(&cursor);\n\
|
ts_tree_cursor_delete(&tbcursor);\n\
|
||||||
\n\
|
\n\
|
||||||
return 0;\n\
|
return 0;\n\
|
||||||
}\n\
|
}\n\
|
||||||
|
@ -44,7 +44,7 @@ void put_rule_table(const char * const name, rule_type_t type_mask) {
|
|||||||
char * sprint_buffer;
|
char * sprint_buffer;
|
||||||
int sprint_r;
|
int sprint_r;
|
||||||
(void)sprint_r;
|
(void)sprint_r;
|
||||||
fputs("const tbcase_t tb_", yyout);
|
fputs("const tbcase_t tb", yyout);
|
||||||
fputs(name, yyout);
|
fputs(name, yyout);
|
||||||
fputs("[] = {\n", yyout);
|
fputs("[] = {\n", yyout);
|
||||||
for (int i = 0; i < kv_size(rules); i++) {
|
for (int i = 0; i < kv_size(rules); i++) {
|
||||||
|
@ -126,7 +126,7 @@ char * expand_c_query(void) {
|
|||||||
const char * const query_fmt = "ts_node_child_by_field_name(%s, %s, strlen(%s))";
|
const char * const query_fmt = "ts_node_child_by_field_name(%s, %s, strlen(%s))";
|
||||||
char * r;
|
char * r;
|
||||||
|
|
||||||
r = (char *)"current_node";
|
r = (char *)"tbnode";
|
||||||
for (int i = 0; i < kv_size(query); i++) {
|
for (int i = 0; i < kv_size(query); i++) {
|
||||||
asprintf(&r, query_fmt, r, kv_A(query, i), kv_A(query, i));
|
asprintf(&r, query_fmt, r, kv_A(query, i), kv_A(query, i));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user