Lines Matching refs:nodes

311   for (node_cnt = 0; node_cnt < init_state->nodes.nelem; ++node_cnt)
313 int node = init_state->nodes.elems[node_cnt];
314 re_token_type_t type = dfa->nodes[node].type;
318 re_set_fastmap (fastmap, icase, dfa->nodes[node].opr.c);
327 *p++ = dfa->nodes[node].opr.c;
329 && dfa->nodes[node].type == CHARACTER
330 && dfa->nodes[node].mb_partial)
331 *p++ = dfa->nodes[node].opr.c;
347 bitset_word_t w = dfa->nodes[node].opr.sbcset[i];
356 re_charset_t *cset = dfa->nodes[node].opr.mbcset;
595 if (dfa->nodes)
597 free_token (dfa->nodes + i);
611 re_free (dfa->nodes);
852 dfa->nodes = re_malloc (re_token_t, dfa->nodes_alloc);
922 if (BE (dfa->nodes == NULL || dfa->state_table == NULL, 0))
981 Then we add epsilon closures of the nodes which are the next nodes of
987 re_token_type_t type = dfa->nodes[node_idx].type;
995 clexp_node = dfa->nodes + init_nodes.elems[clexp_idx];
997 && clexp_node->opr.idx == dfa->nodes[node_idx].opr.idx)
1045 DFA nodes where needed. */
1053 switch (dfa->nodes[node].type)
1056 if (dfa->nodes[node].opr.c >= 0x80)
1060 switch (dfa->nodes[node].opr.ctx_type)
1069 opr.ctx_type since constraints (for all DFA nodes) are
1090 if (dfa->nodes[node].opr.sbcset[i])
1100 if (dfa->nodes[node].type == CHARACTER
1101 && dfa->nodes[node].opr.c >= 0x80)
1102 dfa->nodes[node].mb_partial = 0;
1103 else if (dfa->nodes[node].type == OP_PERIOD)
1104 dfa->nodes[node].type = OP_UTF8_PERIOD;
1308 have bad CONCAT nodes with NULL children. This is obviously not
1335 nodes. Requires a postorder visit. */
1352 dfa->nodes[node->node_idx].constraint = node->token.opr.ctx_type;
1380 /* Pass 3: link all DFA nodes to their NEXT node (any order will do). */
1438 Note that duplicated nodes have constraint INIT_CONSTRAINT in addition
1451 if (dfa->nodes[org_node].type == OP_BACK_REF)
1491 constraint |= dfa->nodes[org_node].constraint;
1553 for (idx = dfa->nodes_len - 1; dfa->nodes[idx].duplicated && idx > 0; --idx)
1556 && constraint == dfa->nodes[idx].constraint)
1569 int dup_idx = re_dfa_add_node (dfa, dfa->nodes[org_idx]);
1572 dfa->nodes[dup_idx].constraint = constraint;
1573 dfa->nodes[dup_idx].constraint |= dfa->nodes[org_idx].constraint;
1574 dfa->nodes[dup_idx].duplicated = 1;
1613 /* For each nodes, calculate epsilon closure. */
1664 /* If the current node has constraints, duplicate all nodes
1666 if (dfa->nodes[node].constraint
1668 && !dfa->nodes[dfa->edests[node].elems[0]].duplicated)
1671 dfa->nodes[node].constraint);
1676 /* Expand each epsilon destination nodes. */
1677 if (IS_EPSILON_NODE(dfa->nodes[node].type))