int len;
int tlen = 0;
- if (node->target) {
- tlen = compile_length_tree(node->target, reg);
+ if (NODE_BODY((Node* )node) != 0) {
+ tlen = compile_length_tree(NODE_BODY((Node* )node), reg);
if (tlen < 0) return tlen;
}
case ANCHOR_PREC_READ:
r = add_opcode(reg, OP_PUSH_POS);
if (r) return r;
- r = compile_tree(node->target, reg);
+ r = compile_tree(NODE_BODY((Node* )node), reg);
if (r) return r;
r = add_opcode(reg, OP_POP_POS);
break;
case ANCHOR_PREC_READ_NOT:
- len = compile_length_tree(node->target, reg);
+ len = compile_length_tree(NODE_BODY((Node* )node), reg);
if (len < 0) return len;
r = add_opcode_rel_addr(reg, OP_PUSH_POS_NOT, len + SIZE_OP_FAIL_POS);
if (r) return r;
- r = compile_tree(node->target, reg);
+ r = compile_tree(NODE_BODY((Node* )node), reg);
if (r) return r;
r = add_opcode(reg, OP_FAIL_POS);
break;
r = add_opcode(reg, OP_LOOK_BEHIND);
if (r) return r;
if (node->char_len < 0) {
- r = get_char_length_tree(node->target, reg, &n);
+ r = get_char_length_tree(NODE_BODY((Node* )node), reg, &n);
if (r) return ONIGERR_INVALID_LOOK_BEHIND_PATTERN;
}
else
r = add_length(reg, n);
if (r) return r;
- r = compile_tree(node->target, reg);
+ r = compile_tree(NODE_BODY((Node* )node), reg);
}
break;
case ANCHOR_LOOK_BEHIND_NOT:
{
int n;
- len = compile_length_tree(node->target, reg);
+ len = compile_length_tree(NODE_BODY((Node* )node), reg);
r = add_opcode_rel_addr(reg, OP_PUSH_LOOK_BEHIND_NOT,
len + SIZE_OP_FAIL_LOOK_BEHIND_NOT);
if (r) return r;
if (node->char_len < 0) {
- r = get_char_length_tree(node->target, reg, &n);
+ r = get_char_length_tree(NODE_BODY((Node* )node), reg, &n);
if (r) return ONIGERR_INVALID_LOOK_BEHIND_PATTERN;
}
else
n = node->char_len;
r = add_length(reg, n);
if (r) return r;
- r = compile_tree(node->target, reg);
+ r = compile_tree(NODE_BODY((Node* )node), reg);
if (r) return r;
r = add_opcode(reg, OP_FAIL_LOOK_BEHIND_NOT);
}
break;
case NT_ANCHOR:
- if (NANCHOR(node)->target)
- r = noname_disable_map(&(NANCHOR(node)->target), map, counter);
+ if (NODE_BODY(node) != 0)
+ r = noname_disable_map(&(NODE_BODY(node)), map, counter);
break;
default:
break;
case NT_ANCHOR:
- if (NANCHOR(node)->target)
- r = renumber_by_map(NANCHOR(node)->target, map);
+ if (NODE_BODY(node) != 0)
+ r = renumber_by_map(NODE_BODY(node), map);
break;
default:
break;
case NT_ANCHOR:
- if (NANCHOR(node)->target)
- r = numbered_ref_check(NANCHOR(node)->target);
+ if (NODE_BODY(node) != 0)
+ r = numbered_ref_check(NODE_BODY(node));
break;
default:
case NT_ANCHOR:
if (NANCHOR(node)->type == ANCHOR_PREC_READ)
- n = get_head_value_node(NANCHOR(node)->target, exact, reg);
+ n = get_head_value_node(NODE_BODY(node), exact, reg);
break;
default:
if ((type & anchor_mask) == 0)
return 1;
- if (NANCHOR(node)->target)
- r = check_type_tree(NANCHOR(node)->target,
- type_mask, enclose_mask, anchor_mask);
+ if (NODE_BODY(node) != 0)
+ r = check_type_tree(NODE_BODY(node), type_mask, enclose_mask, anchor_mask);
break;
default:
case ANCHOR_PREC_READ_NOT:
case ANCHOR_LOOK_BEHIND:
case ANCHOR_LOOK_BEHIND_NOT:
- r = subexp_inf_recursive_check(an->target, env, head);
+ r = subexp_inf_recursive_check(NODE_BODY((Node* )an), env, head);
break;
}
}
case ANCHOR_PREC_READ_NOT:
case ANCHOR_LOOK_BEHIND:
case ANCHOR_LOOK_BEHIND_NOT:
- r = subexp_inf_recursive_check_trav(an->target, env);
+ r = subexp_inf_recursive_check_trav(NODE_BODY((Node* )an), env);
break;
}
}
case ANCHOR_PREC_READ_NOT:
case ANCHOR_LOOK_BEHIND:
case ANCHOR_LOOK_BEHIND_NOT:
- r = subexp_recursive_check(an->target);
+ r = subexp_recursive_check(NODE_BODY((Node* )an));
break;
}
}
case ANCHOR_PREC_READ_NOT:
case ANCHOR_LOOK_BEHIND:
case ANCHOR_LOOK_BEHIND_NOT:
- r = subexp_recursive_check_trav(an->target, env);
+ r = subexp_recursive_check_trav(NODE_BODY((Node* )an), env);
break;
}
}
case ANCHOR_PREC_READ_NOT:
case ANCHOR_LOOK_BEHIND:
case ANCHOR_LOOK_BEHIND_NOT:
- r = setup_subexp_call(an->target, env);
+ r = setup_subexp_call(NODE_BODY((Node* )an), env);
break;
}
}
/* fprintf(stderr, "divide_look_behind: %d\n", (int )node); */
- head = an->target;
+ head = NODE_BODY((Node* )an);
np = NCAR(head);
swap_node(node, head);
NCAR(node) = head;
- NANCHOR(head)->target = np;
+ NODE_BODY(head) = np;
np = node;
while ((np = NCDR(np)) != NULL_NODE) {
insert_node = onig_node_new_anchor(anc_type);
CHECK_NULL_RETURN_MEMERR(insert_node);
- NANCHOR(insert_node)->target = NCAR(np);
+ NODE_BODY(insert_node) = NCAR(np);
NCAR(np) = insert_node;
}
/* fprintf(stderr, "setup_look_behind: %x\n", (int )node); */
- r = get_char_length_tree(an->target, reg, &len);
+ r = get_char_length_tree(NODE_BODY((Node* )an), reg, &len);
if (r == 0)
an->char_len = len;
else if (r == GET_CHAR_LEN_VARLEN)
switch (an->type) {
case ANCHOR_PREC_READ:
- r = setup_tree(an->target, reg, state, env);
+ r = setup_tree(NODE_BODY((Node* )an), reg, state, env);
break;
case ANCHOR_PREC_READ_NOT:
- r = setup_tree(an->target, reg, (state | IN_NOT), env);
+ r = setup_tree(NODE_BODY((Node* )an), reg, (state | IN_NOT), env);
break;
/* allowed node types in look-behind */
case ANCHOR_LOOK_BEHIND:
{
- r = check_type_tree(an->target, ALLOWED_TYPE_IN_LB,
+ r = check_type_tree(NODE_BODY((Node* )an), ALLOWED_TYPE_IN_LB,
ALLOWED_ENCLOSE_IN_LB, ALLOWED_ANCHOR_IN_LB);
if (r < 0) return r;
if (r > 0) return ONIGERR_INVALID_LOOK_BEHIND_PATTERN;
- r = setup_tree(an->target, reg, state, env);
+ r = setup_tree(NODE_BODY((Node* )an), reg, state, env);
if (r != 0) return r;
r = setup_look_behind(node, reg, env);
}
case ANCHOR_LOOK_BEHIND_NOT:
{
- r = check_type_tree(an->target, ALLOWED_TYPE_IN_LB,
+ r = check_type_tree(NODE_BODY((Node* )an), ALLOWED_TYPE_IN_LB,
ALLOWED_ENCLOSE_IN_LB_NOT, ALLOWED_ANCHOR_IN_LB_NOT);
if (r < 0) return r;
if (r > 0) return ONIGERR_INVALID_LOOK_BEHIND_PATTERN;
- r = setup_tree(an->target, reg, (state | IN_NOT), env);
+ r = setup_tree(NODE_BODY((Node* )an), reg, (state | IN_NOT), env);
if (r != 0) return r;
r = setup_look_behind(node, reg, env);
}
{
NodeOptInfo nopt;
- r = optimize_node_left(NANCHOR(node)->target, &nopt, env);
+ r = optimize_node_left(NODE_BODY(node), &nopt, env);
if (r == 0) {
if (nopt.exb.len > 0)
copy_opt_exact_info(&opt->expr, &nopt.exb);