bufsize_t _scan_html_tag()

in src/scanners.c [4985:6677]


bufsize_t _scan_html_tag(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    static const unsigned char yybm[] = {
        /* table 1 .. 8: 0 */
        0,
        250,
        250,
        250,
        250,
        250,
        250,
        250,
        250,
        235,
        235,
        235,
        235,
        235,
        250,
        250,
        250,
        250,
        250,
        250,
        250,
        250,
        250,
        250,
        250,
        250,
        250,
        250,
        250,
        250,
        250,
        250,
        235,
        250,
        202,
        250,
        250,
        250,
        250,
        170,
        250,
        250,
        250,
        250,
        250,
        246,
        254,
        250,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        250,
        234,
        234,
        232,
        250,
        250,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        250,
        250,
        122,
        250,
        254,
        234,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        254,
        250,
        250,
        250,
        250,
        250,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        /* table 9 .. 11: 256 */
        0,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        128,
        192,
        128,
        128,
        192,
        192,
        192,
        192,
        192,
        192,
        192,
        192,
        192,
        192,
        128,
        128,
        128,
        128,
        128,
        0,
        128,
        224,
        224,
        224,
        224,
        224,
        224,
        224,
        224,
        224,
        224,
        224,
        224,
        224,
        224,
        224,
        224,
        224,
        224,
        224,
        224,
        224,
        224,
        224,
        224,
        224,
        224,
        128,
        128,
        128,
        128,
        128,
        128,
        192,
        192,
        192,
        192,
        192,
        192,
        192,
        192,
        192,
        192,
        192,
        192,
        192,
        192,
        192,
        192,
        192,
        192,
        192,
        192,
        192,
        192,
        192,
        192,
        192,
        192,
        128,
        128,
        128,
        128,
        128,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
    };
    yych = *p;
    if (yych <= '>') {
      if (yych <= '!') {
        if (yych >= '!')
          goto yy226;
      } else {
        if (yych == '/')
          goto yy227;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '?')
          goto yy228;
        if (yych >= 'A')
          goto yy229;
      } else {
        if (yych <= '`')
          goto yy224;
        if (yych <= 'z')
          goto yy229;
      }
    }
  yy224:
    ++p;
  yy225 : { return 0; }
  yy226:
    yych = *(marker = ++p);
    if (yybm[256 + yych] & 32) {
      goto yy232;
    }
    if (yych == '-')
      goto yy230;
    if (yych <= '@')
      goto yy225;
    if (yych <= '[')
      goto yy234;
    goto yy225;
  yy227:
    yych = *(marker = ++p);
    if (yych <= '@')
      goto yy225;
    if (yych <= 'Z')
      goto yy235;
    if (yych <= '`')
      goto yy225;
    if (yych <= 'z')
      goto yy235;
    goto yy225;
  yy228:
    yych = *(marker = ++p);
    if (yych <= 0x00)
      goto yy225;
    if (yych <= 0x7F)
      goto yy238;
    if (yych <= 0xC1)
      goto yy225;
    if (yych <= 0xF4)
      goto yy238;
    goto yy225;
  yy229:
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 1) {
      goto yy247;
    }
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych == '-')
          goto yy249;
        goto yy225;
      } else {
        if (yych <= '/')
          goto yy251;
        if (yych <= '9')
          goto yy249;
        goto yy225;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy252;
        if (yych <= '@')
          goto yy225;
        goto yy249;
      } else {
        if (yych <= '`')
          goto yy225;
        if (yych <= 'z')
          goto yy249;
        goto yy225;
      }
    }
  yy230:
    yych = *++p;
    if (yych == '-')
      goto yy254;
  yy231:
    p = marker;
    goto yy225;
  yy232:
    ++p;
    yych = *p;
    if (yybm[256 + yych] & 32) {
      goto yy232;
    }
    if (yych <= 0x08)
      goto yy231;
    if (yych <= '\r')
      goto yy255;
    if (yych == ' ')
      goto yy255;
    goto yy231;
  yy234:
    yych = *++p;
    if (yych == 'C')
      goto yy257;
    if (yych == 'c')
      goto yy257;
    goto yy231;
  yy235:
    ++p;
    yych = *p;
    if (yybm[256 + yych] & 64) {
      goto yy235;
    }
    if (yych <= 0x1F) {
      if (yych <= 0x08)
        goto yy231;
      if (yych <= '\r')
        goto yy258;
      goto yy231;
    } else {
      if (yych <= ' ')
        goto yy258;
      if (yych == '>')
        goto yy252;
      goto yy231;
    }
  yy237:
    ++p;
    yych = *p;
  yy238:
    if (yybm[256 + yych] & 128) {
      goto yy237;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy231;
        if (yych >= '@')
          goto yy231;
      } else {
        if (yych <= 0xDF)
          goto yy240;
        if (yych <= 0xE0)
          goto yy241;
        goto yy242;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy243;
        if (yych <= 0xEF)
          goto yy242;
        goto yy244;
      } else {
        if (yych <= 0xF3)
          goto yy245;
        if (yych <= 0xF4)
          goto yy246;
        goto yy231;
      }
    }
    ++p;
    yych = *p;
    if (yych <= 0xE0) {
      if (yych <= '>') {
        if (yych <= 0x00)
          goto yy231;
        if (yych <= '=')
          goto yy237;
        goto yy252;
      } else {
        if (yych <= 0x7F)
          goto yy237;
        if (yych <= 0xC1)
          goto yy231;
        if (yych >= 0xE0)
          goto yy241;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy243;
        goto yy242;
      } else {
        if (yych <= 0xF0)
          goto yy244;
        if (yych <= 0xF3)
          goto yy245;
        if (yych <= 0xF4)
          goto yy246;
        goto yy231;
      }
    }
  yy240:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy237;
    goto yy231;
  yy241:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy240;
    goto yy231;
  yy242:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy240;
    goto yy231;
  yy243:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0x9F)
      goto yy240;
    goto yy231;
  yy244:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy242;
    goto yy231;
  yy245:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy242;
    goto yy231;
  yy246:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0x8F)
      goto yy242;
    goto yy231;
  yy247:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 1) {
      goto yy247;
    }
    if (yych <= '>') {
      if (yych <= '9') {
        if (yych == '/')
          goto yy251;
        goto yy231;
      } else {
        if (yych <= ':')
          goto yy260;
        if (yych <= '=')
          goto yy231;
        goto yy252;
      }
    } else {
      if (yych <= '^') {
        if (yych <= '@')
          goto yy231;
        if (yych <= 'Z')
          goto yy260;
        goto yy231;
      } else {
        if (yych == '`')
          goto yy231;
        if (yych <= 'z')
          goto yy260;
        goto yy231;
      }
    }
  yy249:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 1) {
      goto yy247;
    }
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych == '-')
          goto yy249;
        goto yy231;
      } else {
        if (yych <= '/')
          goto yy251;
        if (yych <= '9')
          goto yy249;
        goto yy231;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy252;
        if (yych <= '@')
          goto yy231;
        goto yy249;
      } else {
        if (yych <= '`')
          goto yy231;
        if (yych <= 'z')
          goto yy249;
        goto yy231;
      }
    }
  yy251:
    yych = *++p;
    if (yych != '>')
      goto yy231;
  yy252:
    ++p;
    { return (bufsize_t)(p - start); }
  yy254:
    yych = *++p;
    if (yych == '-')
      goto yy264;
    if (yych == '>')
      goto yy231;
    goto yy263;
  yy255:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 2) {
      goto yy255;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy231;
        if (yych <= '>')
          goto yy252;
        goto yy231;
      } else {
        if (yych <= 0xDF)
          goto yy272;
        if (yych <= 0xE0)
          goto yy273;
        goto yy274;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy275;
        if (yych <= 0xEF)
          goto yy274;
        goto yy276;
      } else {
        if (yych <= 0xF3)
          goto yy277;
        if (yych <= 0xF4)
          goto yy278;
        goto yy231;
      }
    }
  yy257:
    yych = *++p;
    if (yych == 'D')
      goto yy279;
    if (yych == 'd')
      goto yy279;
    goto yy231;
  yy258:
    ++p;
    yych = *p;
    if (yych <= 0x1F) {
      if (yych <= 0x08)
        goto yy231;
      if (yych <= '\r')
        goto yy258;
      goto yy231;
    } else {
      if (yych <= ' ')
        goto yy258;
      if (yych == '>')
        goto yy252;
      goto yy231;
    }
  yy260:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 4) {
      goto yy260;
    }
    if (yych <= ',') {
      if (yych <= '\r') {
        if (yych <= 0x08)
          goto yy231;
        goto yy280;
      } else {
        if (yych == ' ')
          goto yy280;
        goto yy231;
      }
    } else {
      if (yych <= '<') {
        if (yych <= '/')
          goto yy251;
        goto yy231;
      } else {
        if (yych <= '=')
          goto yy282;
        if (yych <= '>')
          goto yy252;
        goto yy231;
      }
    }
  yy262:
    ++p;
    yych = *p;
  yy263:
    if (yybm[0 + yych] & 8) {
      goto yy262;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy231;
        if (yych <= '-')
          goto yy284;
        goto yy231;
      } else {
        if (yych <= 0xDF)
          goto yy265;
        if (yych <= 0xE0)
          goto yy266;
        goto yy267;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy268;
        if (yych <= 0xEF)
          goto yy267;
        goto yy269;
      } else {
        if (yych <= 0xF3)
          goto yy270;
        if (yych <= 0xF4)
          goto yy271;
        goto yy231;
      }
    }
  yy264:
    yych = *++p;
    if (yych == '-')
      goto yy251;
    if (yych == '>')
      goto yy231;
    goto yy263;
  yy265:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy262;
    goto yy231;
  yy266:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy265;
    goto yy231;
  yy267:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy265;
    goto yy231;
  yy268:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0x9F)
      goto yy265;
    goto yy231;
  yy269:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy267;
    goto yy231;
  yy270:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy267;
    goto yy231;
  yy271:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0x8F)
      goto yy267;
    goto yy231;
  yy272:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy255;
    goto yy231;
  yy273:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy272;
    goto yy231;
  yy274:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy272;
    goto yy231;
  yy275:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0x9F)
      goto yy272;
    goto yy231;
  yy276:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy274;
    goto yy231;
  yy277:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy274;
    goto yy231;
  yy278:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0x8F)
      goto yy274;
    goto yy231;
  yy279:
    yych = *++p;
    if (yych == 'A')
      goto yy285;
    if (yych == 'a')
      goto yy285;
    goto yy231;
  yy280:
    ++p;
    yych = *p;
    if (yych <= '<') {
      if (yych <= ' ') {
        if (yych <= 0x08)
          goto yy231;
        if (yych <= '\r')
          goto yy280;
        if (yych <= 0x1F)
          goto yy231;
        goto yy280;
      } else {
        if (yych <= '/') {
          if (yych <= '.')
            goto yy231;
          goto yy251;
        } else {
          if (yych == ':')
            goto yy260;
          goto yy231;
        }
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '=')
          goto yy282;
        if (yych <= '>')
          goto yy252;
        if (yych <= '@')
          goto yy231;
        goto yy260;
      } else {
        if (yych <= '_') {
          if (yych <= '^')
            goto yy231;
          goto yy260;
        } else {
          if (yych <= '`')
            goto yy231;
          if (yych <= 'z')
            goto yy260;
          goto yy231;
        }
      }
    }
  yy282:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 16) {
      goto yy286;
    }
    if (yych <= 0xE0) {
      if (yych <= '"') {
        if (yych <= 0x00)
          goto yy231;
        if (yych <= ' ')
          goto yy282;
        goto yy288;
      } else {
        if (yych <= '\'')
          goto yy290;
        if (yych <= 0xC1)
          goto yy231;
        if (yych <= 0xDF)
          goto yy292;
        goto yy293;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy295;
        goto yy294;
      } else {
        if (yych <= 0xF0)
          goto yy296;
        if (yych <= 0xF3)
          goto yy297;
        if (yych <= 0xF4)
          goto yy298;
        goto yy231;
      }
    }
  yy284:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 8) {
      goto yy262;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy231;
        if (yych <= '-')
          goto yy251;
        goto yy231;
      } else {
        if (yych <= 0xDF)
          goto yy265;
        if (yych <= 0xE0)
          goto yy266;
        goto yy267;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy268;
        if (yych <= 0xEF)
          goto yy267;
        goto yy269;
      } else {
        if (yych <= 0xF3)
          goto yy270;
        if (yych <= 0xF4)
          goto yy271;
        goto yy231;
      }
    }
  yy285:
    yych = *++p;
    if (yych == 'T')
      goto yy299;
    if (yych == 't')
      goto yy299;
    goto yy231;
  yy286:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 16) {
      goto yy286;
    }
    if (yych <= 0xE0) {
      if (yych <= '=') {
        if (yych <= 0x00)
          goto yy231;
        if (yych <= ' ')
          goto yy247;
        goto yy231;
      } else {
        if (yych <= '>')
          goto yy252;
        if (yych <= 0xC1)
          goto yy231;
        if (yych <= 0xDF)
          goto yy292;
        goto yy293;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy295;
        goto yy294;
      } else {
        if (yych <= 0xF0)
          goto yy296;
        if (yych <= 0xF3)
          goto yy297;
        if (yych <= 0xF4)
          goto yy298;
        goto yy231;
      }
    }
  yy288:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy288;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy231;
        if (yych <= '"')
          goto yy300;
        goto yy231;
      } else {
        if (yych <= 0xDF)
          goto yy301;
        if (yych <= 0xE0)
          goto yy302;
        goto yy303;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy304;
        if (yych <= 0xEF)
          goto yy303;
        goto yy305;
      } else {
        if (yych <= 0xF3)
          goto yy306;
        if (yych <= 0xF4)
          goto yy307;
        goto yy231;
      }
    }
  yy290:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy290;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy231;
        if (yych <= '\'')
          goto yy300;
        goto yy231;
      } else {
        if (yych <= 0xDF)
          goto yy308;
        if (yych <= 0xE0)
          goto yy309;
        goto yy310;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy311;
        if (yych <= 0xEF)
          goto yy310;
        goto yy312;
      } else {
        if (yych <= 0xF3)
          goto yy313;
        if (yych <= 0xF4)
          goto yy314;
        goto yy231;
      }
    }
  yy292:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy286;
    goto yy231;
  yy293:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy292;
    goto yy231;
  yy294:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy292;
    goto yy231;
  yy295:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0x9F)
      goto yy292;
    goto yy231;
  yy296:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy294;
    goto yy231;
  yy297:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy294;
    goto yy231;
  yy298:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0x8F)
      goto yy294;
    goto yy231;
  yy299:
    yych = *++p;
    if (yych == 'A')
      goto yy315;
    if (yych == 'a')
      goto yy315;
    goto yy231;
  yy300:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 1) {
      goto yy247;
    }
    if (yych == '/')
      goto yy251;
    if (yych == '>')
      goto yy252;
    goto yy231;
  yy301:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy288;
    goto yy231;
  yy302:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy301;
    goto yy231;
  yy303:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy301;
    goto yy231;
  yy304:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0x9F)
      goto yy301;
    goto yy231;
  yy305:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy303;
    goto yy231;
  yy306:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy303;
    goto yy231;
  yy307:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0x8F)
      goto yy303;
    goto yy231;
  yy308:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy290;
    goto yy231;
  yy309:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy308;
    goto yy231;
  yy310:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy308;
    goto yy231;
  yy311:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0x9F)
      goto yy308;
    goto yy231;
  yy312:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy310;
    goto yy231;
  yy313:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy310;
    goto yy231;
  yy314:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0x8F)
      goto yy310;
    goto yy231;
  yy315:
    yych = *++p;
    if (yych != '[')
      goto yy231;
  yy316:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy316;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy231;
        if (yych >= '^')
          goto yy231;
      } else {
        if (yych <= 0xDF)
          goto yy319;
        if (yych <= 0xE0)
          goto yy320;
        goto yy321;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy322;
        if (yych <= 0xEF)
          goto yy321;
        goto yy323;
      } else {
        if (yych <= 0xF3)
          goto yy324;
        if (yych <= 0xF4)
          goto yy325;
        goto yy231;
      }
    }
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy316;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy231;
        if (yych <= ']')
          goto yy326;
        goto yy231;
      } else {
        if (yych <= 0xDF)
          goto yy319;
        if (yych <= 0xE0)
          goto yy320;
        goto yy321;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy322;
        if (yych <= 0xEF)
          goto yy321;
        goto yy323;
      } else {
        if (yych <= 0xF3)
          goto yy324;
        if (yych <= 0xF4)
          goto yy325;
        goto yy231;
      }
    }
  yy319:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy316;
    goto yy231;
  yy320:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy319;
    goto yy231;
  yy321:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy319;
    goto yy231;
  yy322:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0x9F)
      goto yy319;
    goto yy231;
  yy323:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy321;
    goto yy231;
  yy324:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0xBF)
      goto yy321;
    goto yy231;
  yy325:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy231;
    if (yych <= 0x8F)
      goto yy321;
    goto yy231;
  yy326:
    ++p;
    yych = *p;
    if (yych <= 0xE0) {
      if (yych <= '>') {
        if (yych <= 0x00)
          goto yy231;
        if (yych <= '=')
          goto yy316;
        goto yy252;
      } else {
        if (yych <= 0x7F)
          goto yy316;
        if (yych <= 0xC1)
          goto yy231;
        if (yych <= 0xDF)
          goto yy319;
        goto yy320;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy322;
        goto yy321;
      } else {
        if (yych <= 0xF0)
          goto yy323;
        if (yych <= 0xF3)
          goto yy324;
        if (yych <= 0xF4)
          goto yy325;
        goto yy231;
      }
    }
  }
}