ch = re_string_byte_at (&mctx->input, idx); switch (node->type) { case CHARACTER: return node->opr.c == ch; case SIMPLE_BRACKET: return bitset_contain (node->opr.sbcset, ch); #ifdef RE_ENABLE_I18N case OP_UTF8_PERIOD: if (ch >= 0x80) return 0;  #endif case OP_PERIOD: return !((ch == '\n' && !(dfa->syntax & RE_DOT_NEWLINE)) || (ch == '\0' && (dfa->syntax & RE_DOT_NOT_NULL))); default: return 0; }
return 1;
check_node_accept (mctx, node, idx)    const re_match_context_t *mctx;    const re_token_t *node;    int idx;{  re_dfa_t *const dfa = mctx->dfa;  unsigned char ch;  if (node->constraint)    {      /* The node has constraints.  Check whether the current context	 satisfies the constraints.  */      unsigned int context = re_string_context_at (&mctx->input, idx,						   mctx->eflags);      if (NOT_SATISFY_NEXT_CONSTRAINT (node->constraint, context))	return 0;    }  ch = re_string_byte_at (&mctx->input, idx);  switch (node->type)    {    case CHARACTER:      return node->opr.c == ch;    case SIMPLE_BRACKET:      return bitset_contain (node->opr.sbcset, ch);#ifdef RE_ENABLE_I18N    case OP_UTF8_PERIOD:      if (ch >= 0x80)        return 0;      /* FALLTHROUGH */#endif    case OP_PERIOD:      return !((ch == '\n' && !(dfa->syntax & RE_DOT_NEWLINE))	       || (ch == '\0' && (dfa->syntax & RE_DOT_NOT_NULL)));    default:      return 0;    }}