Lines Matching refs:nodes
318 for (node_cnt = 0; node_cnt < init_state->nodes.nelem; ++node_cnt)
320 Idx node = init_state->nodes.elems[node_cnt];
321 re_token_type_t type = dfa->nodes[node].type;
325 re_set_fastmap (fastmap, icase, dfa->nodes[node].opr.c);
335 *p++ = dfa->nodes[node].opr.c;
337 && dfa->nodes[node].type == CHARACTER
338 && dfa->nodes[node].mb_partial)
339 *p++ = dfa->nodes[node].opr.c;
355 bitset_word_t w = dfa->nodes[node].opr.sbcset[i];
364 re_charset_t *cset = dfa->nodes[node].opr.mbcset;
617 if (dfa->nodes)
619 free_token (dfa->nodes + i);
633 re_free (dfa->nodes);
885 dfa->nodes = re_malloc (re_token_t, dfa->nodes_alloc);
940 if (BE (dfa->nodes == NULL || dfa->state_table == NULL, 0))
999 Then we add epsilon closures of the nodes which are the next nodes of
1005 re_token_type_t type = dfa->nodes[node_idx].type;
1013 clexp_node = dfa->nodes + init_nodes.elems[clexp_idx];
1015 && clexp_node->opr.idx == dfa->nodes[node_idx].opr.idx)
1063 DFA nodes where needed. */
1074 switch (dfa->nodes[node].type)
1077 if (dfa->nodes[node].opr.c >= ASCII_CHARS)
1081 switch (dfa->nodes[node].opr.ctx_type)
1090 opr.ctx_type since constraints (for all DFA nodes) are
1115 if (dfa->nodes[node].opr.sbcset[i] >> rshift != 0)
1128 if (dfa->nodes[node].type == CHARACTER
1129 && dfa->nodes[node].opr.c >= ASCII_CHARS)
1130 dfa->nodes[node].mb_partial = 0;
1131 else if (dfa->nodes[node].type == OP_PERIOD)
1132 dfa->nodes[node].type = OP_UTF8_PERIOD;
1336 have bad CONCAT nodes with NULL children. This is obviously not
1363 nodes. Requires a postorder visit. */
1380 dfa->nodes[node->node_idx].constraint = node->token.opr.ctx_type;
1408 /* Pass 3: link all DFA nodes to their NEXT node (any order will do). */
1466 Note that duplicated nodes have constraint INIT_CONSTRAINT in addition
1480 if (dfa->nodes[org_node].type == OP_BACK_REF)
1521 constraint |= dfa->nodes[org_node].constraint;
1583 for (idx = dfa->nodes_len - 1; dfa->nodes[idx].duplicated && idx > 0; --idx)
1586 && constraint == dfa->nodes[idx].constraint)
1599 Idx dup_idx = re_dfa_add_node (dfa, dfa->nodes[org_idx]);
1602 dfa->nodes[dup_idx].constraint = constraint;
1603 dfa->nodes[dup_idx].constraint |= dfa->nodes[org_idx].constraint;
1604 dfa->nodes[dup_idx].duplicated = 1;
1645 /* For each nodes, calculate epsilon closure. */
1698 /* If the current node has constraints, duplicate all nodes
1700 if (dfa->nodes[node].constraint
1702 && !dfa->nodes[dfa->edests[node].elems[0]].duplicated)
1705 dfa->nodes[node].constraint);
1710 /* Expand each epsilon destination nodes. */
1711 if (IS_EPSILON_NODE(dfa->nodes[node].type))