Lines Matching refs:nodes
309 for (node_cnt = 0; node_cnt < init_state->nodes.nelem; ++node_cnt)
311 int node = init_state->nodes.elems[node_cnt];
312 re_token_type_t type = dfa->nodes[node].type;
316 re_set_fastmap (fastmap, icase, dfa->nodes[node].opr.c);
325 *p++ = dfa->nodes[node].opr.c;
327 && dfa->nodes[node].type == CHARACTER
328 && dfa->nodes[node].mb_partial)
329 *p++ = dfa->nodes[node].opr.c;
345 bitset_word_t w = dfa->nodes[node].opr.sbcset[i];
354 re_charset_t *cset = dfa->nodes[node].opr.mbcset;
593 if (dfa->nodes)
595 free_token (dfa->nodes + i);
609 re_free (dfa->nodes);
850 dfa->nodes = re_malloc (re_token_t, dfa->nodes_alloc);
920 if (BE (dfa->nodes == NULL || dfa->state_table == NULL, 0))
1011 Then we add epsilon closures of the nodes which are the next nodes of
1017 re_token_type_t type = dfa->nodes[node_idx].type;
1025 clexp_node = dfa->nodes + init_nodes.elems[clexp_idx];
1027 && clexp_node->opr.idx == dfa->nodes[node_idx].opr.idx)
1079 DFA nodes where needed. */
1087 switch (dfa->nodes[node].type)
1090 if (dfa->nodes[node].opr.c >= 0x80)
1094 switch (dfa->nodes[node].opr.ctx_type)
1103 opr.ctx_type since constraints (for all DFA nodes) are
1124 if (dfa->nodes[node].opr.sbcset[i])
1134 if (dfa->nodes[node].type == CHARACTER
1135 && dfa->nodes[node].opr.c >= 0x80)
1136 dfa->nodes[node].mb_partial = 0;
1137 else if (dfa->nodes[node].type == OP_PERIOD)
1138 dfa->nodes[node].type = OP_UTF8_PERIOD;
1342 have bad CONCAT nodes with NULL children. This is obviously not
1369 nodes. Requires a postorder visit. */
1386 dfa->nodes[node->node_idx].constraint = node->token.opr.ctx_type;
1414 /* Pass 3: link all DFA nodes to their NEXT node (any order will do). */
1472 Note that duplicated nodes have constraint INIT_CONSTRAINT in addition
1485 if (dfa->nodes[org_node].type == OP_BACK_REF)
1525 constraint |= dfa->nodes[org_node].constraint;
1587 for (idx = dfa->nodes_len - 1; dfa->nodes[idx].duplicated && idx > 0; --idx)
1590 && constraint == dfa->nodes[idx].constraint)
1603 int dup_idx = re_dfa_add_node (dfa, dfa->nodes[org_idx]);
1606 dfa->nodes[dup_idx].constraint = constraint;
1607 dfa->nodes[dup_idx].constraint |= dfa->nodes[org_idx].constraint;
1608 dfa->nodes[dup_idx].duplicated = 1;
1647 /* For each nodes, calculate epsilon closure. */
1699 /* If the current node has constraints, duplicate all nodes
1701 if (dfa->nodes[node].constraint
1703 && !dfa->nodes[dfa->edests[node].elems[0]].duplicated)
1706 dfa->nodes[node].constraint);
1711 /* Expand each epsilon destination nodes. */
1712 if (IS_EPSILON_NODE(dfa->nodes[node].type))