Node c;
c = *a; *a = *b; *b = c;
- if (NTYPE(a) == NT_STR) {
+ if (NODE_TYPE(a) == NT_STR) {
StrNode* sn = NSTR(a);
if (sn->capa == 0) {
int len = sn->end - sn->s;
}
}
- if (NTYPE(b) == NT_STR) {
+ if (NODE_TYPE(b) == NT_STR) {
StrNode* sn = NSTR(b);
if (sn->capa == 0) {
int len = sn->end - sn->s;
is_anychar_star_quantifier(QtfrNode* qn)
{
if (qn->greedy && IS_REPEAT_INFINITE(qn->upper) &&
- NTYPE(NODE_BODY((Node* )qn)) == NT_CANY)
+ NODE_TYPE(NODE_BODY((Node* )qn)) == NT_CANY)
return 1;
else
return 0;
cklen = (CKN_ON ? SIZE_STATE_CHECK_NUM: 0);
/* anychar repeat */
- if (NTYPE(qn->target) == NT_CANY) {
+ if (NODE_TYPE(qn->target) == NT_CANY) {
if (qn->greedy && infinite) {
if (IS_NOT_NULL(qn->next_head_exact) && !CKN_ON)
return SIZE_OP_ANYCHAR_STAR_PEEK_NEXT + tlen * qn->lower + cklen;
if (tlen < 0) return tlen;
/* anychar repeat */
- if (NTYPE(NODE_BODY((Node* )qn)) == NT_CANY) {
+ if (NODE_TYPE(NODE_BODY((Node* )qn)) == NT_CANY) {
if (qn->greedy && infinite) {
if (IS_NOT_NULL(qn->next_head_exact))
return SIZE_OP_ANYCHAR_STAR_PEEK_NEXT + tlen * qn->lower;
{
int len, type, r;
- type = NTYPE(node);
+ type = NODE_TYPE(node);
switch (type) {
case NT_LIST:
len = 0;
{
int n, type, len, pos, r = 0;
- type = NTYPE(node);
+ type = NODE_TYPE(node);
switch (type) {
case NT_LIST:
do {
default:
#ifdef ONIG_DEBUG
- fprintf(stderr, "compile_tree: undefined node type %d\n", NTYPE(node));
+ fprintf(stderr, "compile_tree: undefined node type %d\n", NODE_TYPE(node));
#endif
break;
}
int r = 0;
Node* node = *plink;
- switch (NTYPE(node)) {
+ switch (NODE_TYPE(node)) {
case NT_LIST:
case NT_ALT:
do {
Node** ptarget = &(NODE_BODY(node));
Node* old = *ptarget;
r = noname_disable_map(ptarget, map, counter);
- if (*ptarget != old && NTYPE(*ptarget) == NT_QTFR) {
+ if (*ptarget != old && NODE_TYPE(*ptarget) == NT_QTFR) {
onig_reduce_nested_quantifier(node, *ptarget);
}
}
{
int r = 0;
- switch (NTYPE(node)) {
+ switch (NODE_TYPE(node)) {
case NT_LIST:
case NT_ALT:
do {
{
int r = 0;
- switch (NTYPE(node)) {
+ switch (NODE_TYPE(node)) {
case NT_LIST:
case NT_ALT:
do {
level++;
*len = 0;
- switch (NTYPE(node)) {
+ switch (NODE_TYPE(node)) {
case NT_LIST:
do {
r = get_char_length_tree1(NCAR(node), reg, &tlen, level);
int ytype;
retry:
- ytype = NTYPE(y);
- switch (NTYPE(x)) {
+ ytype = NODE_TYPE(y);
+ switch (NODE_TYPE(x)) {
case NT_CTYPE:
{
switch (ytype) {
{
Node* n = NULL_NODE;
- switch (NTYPE(node)) {
+ switch (NODE_TYPE(node)) {
case NT_BREF:
case NT_ALT:
case NT_CANY:
{
int type, r = 0;
- type = NTYPE(node);
- if ((NTYPE2BIT(type) & type_mask) == 0)
+ type = NODE_TYPE(node);
+ if ((NODE_TYPE2BIT(type) & type_mask) == 0)
return 1;
switch (type) {
int r = 0;
*min = 0;
- switch (NTYPE(node)) {
+ switch (NODE_TYPE(node)) {
case NT_BREF:
{
int i;
int r = 0;
*max = 0;
- switch (NTYPE(node)) {
+ switch (NODE_TYPE(node)) {
case NT_LIST:
do {
r = get_max_len(NCAR(node), &tmax, env);
int type;
int r = 0;
- type = NTYPE(node);
+ type = NODE_TYPE(node);
switch (type) {
case NT_LIST:
{
int type;
int r = 0;
- type = NTYPE(node);
+ type = NODE_TYPE(node);
switch (type) {
case NT_LIST:
case NT_ALT:
{
int r = 0;
- switch (NTYPE(node)) {
+ switch (NODE_TYPE(node)) {
case NT_LIST:
case NT_ALT:
do {
int type;
int r = 0;
- type = NTYPE(node);
+ type = NODE_TYPE(node);
switch (type) {
case NT_LIST:
case NT_ALT:
int type;
int r = 0;
- type = NTYPE(node);
+ type = NODE_TYPE(node);
switch (type) {
case NT_LIST:
do {
if (anc_type == ANCHOR_LOOK_BEHIND_NOT) {
np = node;
do {
- SET_NTYPE(np, NT_LIST); /* alt -> list */
+ SET_NODE_TYPE(np, NT_LIST); /* alt -> list */
} while ((np = NCDR(np)) != NULL_NODE);
}
return 0;
int type;
retry:
- type = NTYPE(node);
+ type = NODE_TYPE(node);
if (type == NT_QTFR) {
QtfrNode* qn = NQTFR(node);
if (qn->greedy && IS_REPEAT_INFINITE(qn->upper)) {
#endif
/* automatic posseivation a*b ==> (?>a*)b */
if (qn->lower <= 1) {
- int ttype = NTYPE(NODE_BODY(node));
+ int ttype = NODE_TYPE(NODE_BODY(node));
if (IS_NODE_TYPE_SIMPLE(ttype)) {
Node *x, *y;
x = get_head_value_node(NODE_BODY(node), 0, reg);
int type;
int r = state;
- type = NTYPE(node);
+ type = NODE_TYPE(node);
switch (type) {
case NT_LIST:
{
/* check (a*){n,m}, (a+){n,m} => (a*){n,n}, (a+){n,n} */
if (env->backrefed_mem == 0) {
- if (NTYPE(qn->target) == NT_ENCLOSE) {
+ if (NODE_TYPE(qn->target) == NT_ENCLOSE) {
EncloseNode* en = NENCLOSE(qn->target);
if (en->type == ENCLOSE_MEMORY) {
- if (NTYPE(en->target) == NT_QTFR) {
+ if (NODE_TYPE(en->target) == NT_QTFR) {
QtfrNode* q = NQTFR(en->target);
if (IS_REPEAT_INFINITE(q->upper)
&& q->greedy == qn->greedy) {
{
int r = 0;
- switch (NTYPE(node)) {
+ switch (NODE_TYPE(node)) {
case NT_LIST:
case NT_ALT:
{
int type;
int r = 0;
- type = NTYPE(node);
+ type = NODE_TYPE(node);
switch (type) {
case NT_LIST:
{
if (r > 0) {
qn->body_empty_info = r;
if (r == NQ_BODY_IS_EMPTY_REC) {
- if (NTYPE(target) == NT_ENCLOSE &&
+ if (NODE_TYPE(target) == NT_ENCLOSE &&
NENCLOSE(target)->type == ENCLOSE_MEMORY) {
BIT_STATUS_ON_AT(env->bt_mem_end, NENCLOSE(target)->regnum);
}
/* ()* ==> ()?, ()+ ==> () */
qn->upper = 1;
if (qn->lower > 1) qn->lower = 1;
- if (NTYPE(target) == NT_STR) {
+ if (NODE_TYPE(target) == NT_STR) {
qn->upper = qn->lower = 0; /* /(?:)+/ ==> // */
}
}
/* expand string */
#define EXPAND_STRING_MAX_LENGTH 100
- if (NTYPE(target) == NT_STR) {
+ if (NODE_TYPE(target) == NT_STR) {
if (!IS_REPEAT_INFINITE(qn->lower) && qn->lower == qn->upper &&
qn->lower > 1 && qn->lower <= EXPAND_STRING_MAX_LENGTH) {
int len = NSTRING_LEN(target);
#ifdef USE_OP_PUSH_OR_JUMP_EXACT
if (qn->greedy && (qn->body_empty_info != 0)) {
- if (NTYPE(target) == NT_QTFR) {
+ if (NODE_TYPE(target) == NT_QTFR) {
QtfrNode* tqn = NQTFR(target);
if (IS_NOT_NULL(tqn->head_exact)) {
qn->head_exact = tqn->head_exact;
{
Node* target = NODE_BODY(node);
r = setup_tree(target, reg, state, env);
- if (NTYPE(target) == NT_QTFR) {
+ if (NODE_TYPE(target) == NT_QTFR) {
QtfrNode* tqn = NQTFR(target);
if (IS_REPEAT_INFINITE(tqn->upper) && tqn->lower <= 1 &&
tqn->greedy != 0) { /* (?>a*), a*+ etc... */
- int qtype = NTYPE(NODE_BODY(target));
+ int qtype = NODE_TYPE(NODE_BODY(target));
if (IS_NODE_TYPE_SIMPLE(qtype))
NODE_STATUS_SET(node, NST_STOP_BT_SIMPLE_REPEAT);
}
clear_node_opt_info(opt);
set_bound_node_opt_info(opt, &env->mmd);
- type = NTYPE(node);
+ type = NODE_TYPE(node);
switch (type) {
case NT_LIST:
{
if (qn->lower == 0 && IS_REPEAT_INFINITE(qn->upper)) {
if (env->mmd.max == 0 &&
- NTYPE(NODE_BODY(node)) == NT_CANY && qn->greedy) {
+ NODE_TYPE(NODE_BODY(node)) == NT_CANY && qn->greedy) {
if (IS_MULTILINE(env->options))
add_opt_anc_info(&opt->anc, ANCHOR_ANYCHAR_STAR_ML);
else
default:
#ifdef ONIG_DEBUG
fprintf(stderr, "optimize_node_left: undefined node type %d\n",
- NTYPE(node));
+ NODE_TYPE(node));
#endif
r = ONIGERR_TYPE_BUG;
break;
exit (0);
}
- type = NTYPE(node);
+ type = NODE_TYPE(node);
switch (type) {
case NT_LIST:
case NT_ALT:
- if (NTYPE(node) == NT_LIST)
+ if (NODE_TYPE(node) == NT_LIST)
fprintf(f, "<list:%p>\n", node);
else
fprintf(f, "<alt:%p>\n", node);
print_indent_tree(f, NCAR(node), indent + add);
while (IS_NOT_NULL(node = NCDR(node))) {
- if (NTYPE(node) != type) {
- fprintf(f, "ERROR: list/alt right is not a cons. %d\n", NTYPE(node));
+ if (NODE_TYPE(node) != type) {
+ fprintf(f, "ERROR: list/alt right is not a cons. %d\n", NODE_TYPE(node));
exit(0);
}
print_indent_tree(f, NCAR(node), indent + add);
break;
default:
- fprintf(f, "print_indent_tree: undefined node type %d\n", NTYPE(node));
+ fprintf(f, "print_indent_tree: undefined node type %d\n", NODE_TYPE(node));
break;
}
fprintf(stderr, "onig_node_free: %p\n", node);
#endif
- switch (NTYPE(node)) {
+ switch (NODE_TYPE(node)) {
case NT_STR:
if (NSTR(node)->capa != 0 &&
IS_NOT_NULL(NSTR(node)->s) && NSTR(node)->s != NSTR(node)->buf) {
Node* node = node_new();
CHECK_NULL_RETURN(node);
- SET_NTYPE(node, NT_CCLASS);
+ SET_NODE_TYPE(node, NT_CCLASS);
initialize_cclass(NCCLASS(node));
return node;
}
Node* node = node_new();
CHECK_NULL_RETURN(node);
- SET_NTYPE(node, NT_CTYPE);
+ SET_NODE_TYPE(node, NT_CTYPE);
NCTYPE(node)->ctype = type;
NCTYPE(node)->not = not;
return node;
Node* node = node_new();
CHECK_NULL_RETURN(node);
- SET_NTYPE(node, NT_CANY);
+ SET_NODE_TYPE(node, NT_CANY);
return node;
}
Node* node = node_new();
CHECK_NULL_RETURN(node);
- SET_NTYPE(node, NT_LIST);
+ SET_NODE_TYPE(node, NT_LIST);
NCAR(node) = left;
NCDR(node) = right;
return node;
Node* node = node_new();
CHECK_NULL_RETURN(node);
- SET_NTYPE(node, NT_ALT);
+ SET_NODE_TYPE(node, NT_ALT);
NCAR(node) = left;
NCDR(node) = right;
return node;
Node* node = node_new();
CHECK_NULL_RETURN(node);
- SET_NTYPE(node, NT_ANCHOR);
+ SET_NODE_TYPE(node, NT_ANCHOR);
NANCHOR(node)->type = type;
NANCHOR(node)->char_len = -1;
return node;
CHECK_NULL_RETURN(node);
- SET_NTYPE(node, NT_BREF);
+ SET_NODE_TYPE(node, NT_BREF);
NBREF(node)->back_num = back_num;
NBREF(node)->back_dynamic = (int* )NULL;
if (by_name != 0)
Node* node = node_new();
CHECK_NULL_RETURN(node);
- SET_NTYPE(node, NT_CALL);
+ SET_NODE_TYPE(node, NT_CALL);
NCALL(node)->name = name;
NCALL(node)->name_end = name_end;
NCALL(node)->group_num = gnum; /* call by number if gnum != 0 */
Node* node = node_new();
CHECK_NULL_RETURN(node);
- SET_NTYPE(node, NT_QTFR);
+ SET_NODE_TYPE(node, NT_QTFR);
NQTFR(node)->lower = lower;
NQTFR(node)->upper = upper;
NQTFR(node)->greedy = 1;
Node* node = node_new();
CHECK_NULL_RETURN(node);
- SET_NTYPE(node, NT_ENCLOSE);
+ SET_NODE_TYPE(node, NT_ENCLOSE);
NENCLOSE(node)->type = type;
NENCLOSE(node)->regnum = 0;
NENCLOSE(node)->option = 0;
extern void
onig_node_conv_to_str_node(Node* node, int flag)
{
- SET_NTYPE(node, NT_STR);
+ SET_NODE_TYPE(node, NT_STR);
NSTR(node)->flag = flag;
NSTR(node)->capa = 0;
NSTR(node)->s = NSTR(node)->buf;
Node* node = node_new();
CHECK_NULL_RETURN(node);
- SET_NTYPE(node, NT_STR);
+ SET_NODE_TYPE(node, NT_STR);
NSTR(node)->capa = 0;
NSTR(node)->flag = 0;
NSTR(node)->s = NSTR(node)->buf;
static int
is_invalid_quantifier_target(Node* node)
{
- switch (NTYPE(node)) {
+ switch (NODE_TYPE(node)) {
case NT_ANCHOR:
return 1;
break;
}
NODE_BODY(*np) = target;
- if (NTYPE(*np) == NT_ENCLOSE) {
+ if (NODE_TYPE(*np) == NT_ENCLOSE) {
if (NENCLOSE(*np)->type == ENCLOSE_MEMORY) {
/* Don't move this to previous of parse_subexp() */
r = scan_env_set_mem_node(env, NENCLOSE(*np)->regnum, *np);
return 1;
}
- switch (NTYPE(target)) {
+ switch (NODE_TYPE(target)) {
case NT_STR:
if (! group) {
StrNode* sn = NSTR(target);
return r;
}
- if (NTYPE(node) == NT_LIST) {
+ if (NODE_TYPE(node) == NT_LIST) {
*headp = node;
while (IS_NOT_NULL(NCDR(node))) node = NCDR(node);
headp = &(NCDR(node));
#define NT_CALL 10
/* node type bit */
-#define NTYPE2BIT(type) (1<<(type))
-
-#define BIT_NT_STR NTYPE2BIT(NT_STR)
-#define BIT_NT_CCLASS NTYPE2BIT(NT_CCLASS)
-#define BIT_NT_CTYPE NTYPE2BIT(NT_CTYPE)
-#define BIT_NT_CANY NTYPE2BIT(NT_CANY)
-#define BIT_NT_BREF NTYPE2BIT(NT_BREF)
-#define BIT_NT_QTFR NTYPE2BIT(NT_QTFR)
-#define BIT_NT_ENCLOSE NTYPE2BIT(NT_ENCLOSE)
-#define BIT_NT_ANCHOR NTYPE2BIT(NT_ANCHOR)
-#define BIT_NT_LIST NTYPE2BIT(NT_LIST)
-#define BIT_NT_ALT NTYPE2BIT(NT_ALT)
-#define BIT_NT_CALL NTYPE2BIT(NT_CALL)
+#define NODE_TYPE2BIT(type) (1<<(type))
+
+#define BIT_NT_STR NODE_TYPE2BIT(NT_STR)
+#define BIT_NT_CCLASS NODE_TYPE2BIT(NT_CCLASS)
+#define BIT_NT_CTYPE NODE_TYPE2BIT(NT_CTYPE)
+#define BIT_NT_CANY NODE_TYPE2BIT(NT_CANY)
+#define BIT_NT_BREF NODE_TYPE2BIT(NT_BREF)
+#define BIT_NT_QTFR NODE_TYPE2BIT(NT_QTFR)
+#define BIT_NT_ENCLOSE NODE_TYPE2BIT(NT_ENCLOSE)
+#define BIT_NT_ANCHOR NODE_TYPE2BIT(NT_ANCHOR)
+#define BIT_NT_LIST NODE_TYPE2BIT(NT_LIST)
+#define BIT_NT_ALT NODE_TYPE2BIT(NT_ALT)
+#define BIT_NT_CALL NODE_TYPE2BIT(NT_CALL)
#define IS_NODE_TYPE_SIMPLE(type) \
- ((NTYPE2BIT(type) & (BIT_NT_STR | BIT_NT_CCLASS | BIT_NT_CTYPE |\
+ ((NODE_TYPE2BIT(type) & (BIT_NT_STR | BIT_NT_CCLASS | BIT_NT_CTYPE |\
BIT_NT_CANY | BIT_NT_BREF)) != 0)
-#define NTYPE(node) ((node)->u.base.node_type)
-#define SET_NTYPE(node, ntype) (node)->u.base.node_type = (ntype)
+#define NODE_TYPE(node) ((node)->u.base.node_type)
+#define SET_NODE_TYPE(node, ntype) (node)->u.base.node_type = (ntype)
#define NSTR(node) (&((node)->u.str))
#define NCCLASS(node) (&((node)->u.cclass))