Skip to content

Commit

Permalink
Remove tmp_child_idx
Browse files Browse the repository at this point in the history
  • Loading branch information
kazarmy committed Jan 8, 2025
1 parent 093331c commit eedef9b
Showing 1 changed file with 24 additions and 20 deletions.
44 changes: 24 additions & 20 deletions librz/core/cmd/cmd.c
Original file line number Diff line number Diff line change
Expand Up @@ -3542,27 +3542,31 @@ DEFINE_HANDLE_TS_FCN_AND_SYMBOL(help_stmt) {
return res;
}

static uint32_t tmp_child_idx = 0;

static TSNode tmp_get_next_node(TSNode cur) {
TSNode next = ts_node_next_named_sibling(cur);
tmp_child_idx++;
if (ts_node_is_null(next)) {
next = ts_node_named_child(ts_node_parent(cur), 0);
tmp_child_idx = 0;
}
return next;
}

static uint32_t tmp_get_idx(TSNode node) {
uint32_t cnt = 0;
while (!ts_node_is_null(node)) {
node = ts_node_prev_named_sibling(node);
cnt++;
}
return cnt - 1;
}

DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_stmt) {
TSNode first_tmp = ts_node_named_child(node, 1);
tmp_child_idx = 1;
return handle_ts_stmt(state, first_tmp);
}

DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_seek_stmt) {
TSNode offset = ts_node_named_child(node, 0);
char *offset_string = ts_node_handle_arg(state, ts_node_parent(node), offset, tmp_child_idx, true);
char *offset_string = ts_node_handle_arg(state, ts_node_parent(node), offset, tmp_get_idx(node), true);
if (!offset_string) {
return RZ_CMD_STATUS_INVALID;
}
Expand All @@ -3589,7 +3593,7 @@ DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_seek_stmt) {

DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_blksz_stmt) {
TSNode blksz = ts_node_named_child(node, 0);
char *blksz_string = ts_node_handle_arg(state, ts_node_parent(node), blksz, tmp_child_idx, true);
char *blksz_string = ts_node_handle_arg(state, ts_node_parent(node), blksz, tmp_get_idx(node), true);
if (!blksz_string) {
return RZ_CMD_STATUS_INVALID;
}
Expand All @@ -3606,7 +3610,7 @@ DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_blksz_stmt) {
DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_fromto_stmt) {
RzCore *core = state->core;
TSNode fromto = ts_node_named_child(node, 0);
RzCmdParsedArgs *a = ts_node_handle_arg_prargs(state, ts_node_parent(node), fromto, tmp_child_idx,
RzCmdParsedArgs *a = ts_node_handle_arg_prargs(state, ts_node_parent(node), fromto, tmp_get_idx(node),
true, NULL, true);
if (!a || a->argc != 2 + 1) {
rz_cmd_parsed_args_free(a);
Expand Down Expand Up @@ -3648,7 +3652,7 @@ DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_fromto_stmt) {
DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_arch_stmt) {
RzCore *core = state->core;
TSNode arg = ts_node_named_child(node, 0);
char *arg_str = ts_node_handle_arg(state, ts_node_parent(node), arg, tmp_child_idx, true);
char *arg_str = ts_node_handle_arg(state, ts_node_parent(node), arg, tmp_get_idx(node), true);
if (!arg_str) {
return RZ_CMD_STATUS_INVALID;
}
Expand Down Expand Up @@ -3691,7 +3695,7 @@ DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_arch_stmt) {
DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_bits_stmt) {
RzCore *core = state->core;
TSNode arg = ts_node_named_child(node, 0);
char *arg_str = ts_node_handle_arg(state, ts_node_parent(node), arg, tmp_child_idx, true);
char *arg_str = ts_node_handle_arg(state, ts_node_parent(node), arg, tmp_get_idx(node), true);
if (!arg_str) {
return RZ_CMD_STATUS_INVALID;
}
Expand All @@ -3717,7 +3721,7 @@ DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_bits_stmt) {
DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_nthi_stmt) {
RzCore *core = state->core;
TSNode arg = ts_node_named_child(node, 0);
char *arg_str = ts_node_handle_arg(state, ts_node_parent(node), arg, tmp_child_idx, true);
char *arg_str = ts_node_handle_arg(state, ts_node_parent(node), arg, tmp_get_idx(node), true);
if (!arg_str) {
return RZ_CMD_STATUS_INVALID;
}
Expand Down Expand Up @@ -3769,7 +3773,7 @@ DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_eval_stmt) {
DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_fs_stmt) {
RzCore *core = state->core;
TSNode arg = ts_node_named_child(node, 0);
char *arg_str = ts_node_handle_arg(state, ts_node_parent(node), arg, tmp_child_idx, true);
char *arg_str = ts_node_handle_arg(state, ts_node_parent(node), arg, tmp_get_idx(node), true);
if (!arg_str) {
return RZ_CMD_STATUS_INVALID;
}
Expand All @@ -3784,7 +3788,7 @@ DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_fs_stmt) {
DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_reli_stmt) {
RzCore *core = state->core;
TSNode arg = ts_node_named_child(node, 0);
char *arg_str = ts_node_handle_arg(state, ts_node_parent(node), arg, tmp_child_idx, true);
char *arg_str = ts_node_handle_arg(state, ts_node_parent(node), arg, tmp_get_idx(node), true);
if (!arg_str) {
return RZ_CMD_STATUS_INVALID;
}
Expand All @@ -3803,7 +3807,7 @@ DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_reli_stmt) {
DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_kuery_stmt) {
RzCore *core = state->core;
TSNode arg = ts_node_named_child(node, 0);
char *arg_str = ts_node_handle_arg(state, ts_node_parent(node), arg, tmp_child_idx, true);
char *arg_str = ts_node_handle_arg(state, ts_node_parent(node), arg, tmp_get_idx(node), true);
if (!arg_str) {
return RZ_CMD_STATUS_INVALID;
}
Expand All @@ -3823,7 +3827,7 @@ DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_kuery_stmt) {
DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_fd_stmt) {
RzCore *core = state->core;
TSNode arg = ts_node_named_child(node, 0);
char *arg_str = ts_node_handle_arg(state, ts_node_parent(node), arg, tmp_child_idx, true);
char *arg_str = ts_node_handle_arg(state, ts_node_parent(node), arg, tmp_get_idx(node), true);
if (!arg_str) {
return RZ_CMD_STATUS_INVALID;
}
Expand All @@ -3839,7 +3843,7 @@ DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_fd_stmt) {
DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_reg_stmt) {
RzCore *core = state->core;
TSNode arg = ts_node_named_child(node, 0);
char *arg_str = ts_node_handle_arg(state, ts_node_parent(node), arg, tmp_child_idx, true);
char *arg_str = ts_node_handle_arg(state, ts_node_parent(node), arg, tmp_get_idx(node), true);
if (!arg_str) {
return RZ_CMD_STATUS_INVALID;
}
Expand Down Expand Up @@ -3891,7 +3895,7 @@ static bool handle_tmp_desc(struct tsr2cmd_state *state, TSNode command, const u

DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_file_stmt) {
TSNode arg = ts_node_named_child(node, 0);
char *arg_str = ts_node_handle_arg(state, ts_node_parent(node), arg, tmp_child_idx, true);
char *arg_str = ts_node_handle_arg(state, ts_node_parent(node), arg, tmp_get_idx(node), true);
if (!arg_str) {
return RZ_CMD_STATUS_INVALID;
}
Expand All @@ -3915,7 +3919,7 @@ DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_file_stmt) {

DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_string_stmt) {
TSNode arg = ts_node_named_child(node, 0);
char *arg_str = ts_node_handle_arg(state, ts_node_parent(node), arg, tmp_child_idx, true);
char *arg_str = ts_node_handle_arg(state, ts_node_parent(node), arg, tmp_get_idx(node), true);
if (!arg_str) {
return RZ_CMD_STATUS_INVALID;
}
Expand All @@ -3934,7 +3938,7 @@ DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_string_stmt) {
DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_value_stmt) {
RzCore *core = state->core;
TSNode arg = ts_node_named_child(node, 0);
char *arg_str = ts_node_handle_arg(state, ts_node_parent(node), arg, tmp_child_idx, true);
char *arg_str = ts_node_handle_arg(state, ts_node_parent(node), arg, tmp_get_idx(node), true);
if (!arg_str) {
return RZ_CMD_STATUS_INVALID;
}
Expand All @@ -3956,7 +3960,7 @@ DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_value_stmt) {

DEFINE_HANDLE_TS_FCN_AND_SYMBOL(tmp_hex_stmt) {
TSNode arg = ts_node_named_child(node, 0);
char *arg_str = ts_node_handle_arg(state, ts_node_parent(node), arg, tmp_child_idx, true);
char *arg_str = ts_node_handle_arg(state, ts_node_parent(node), arg, tmp_get_idx(node), true);
if (!arg_str) {
return RZ_CMD_STATUS_INVALID;
}
Expand Down

0 comments on commit eedef9b

Please sign in to comment.