Untitled diff
682 líneas
// Copyright (c) 2014 The Chromium Authors. All rights reserved.
// Copyright (c) 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// found in the LICENSE file.
#include "HTMLElementLookupTrie.h"
#include "HTMLElementLookupTrie.h"
#include "HTMLNames.h"
#include "HTMLNames.h"
namespace blink {
namespace blink {
using namespace HTMLNames;
using namespace HTMLNames;
StringImpl* lookupHTMLTag(const UChar* data, unsigned length)
StringImpl* lookupHTMLTag(const UChar* data, unsigned length)
{
{
ASSERT(data);
DCHECK(data);
ASSERT(length);
DCHECK(length);
switch (length) {
switch (length) {
case 1:
case 1:
switch (data[0]) {
switch (data[0]) {
case 'a':
case 'a':
return aTag.localName().impl();
return aTag.localName().impl();
case 'b':
case 'b':
return bTag.localName().impl();
return bTag.localName().impl();
case 'i':
case 'i':
return iTag.localName().impl();
return iTag.localName().impl();
case 'p':
case 'p':
return pTag.localName().impl();
return pTag.localName().impl();
case 'q':
case 'q':
return qTag.localName().impl();
return qTag.localName().impl();
case 's':
case 's':
return sTag.localName().impl();
return sTag.localName().impl();
case 'u':
case 'u':
return uTag.localName().impl();
return uTag.localName().impl();
}
}
return 0;
break;
case 2:
case 2:
switch (data[0]) {
switch (data[0]) {
case 'b':
case 'b':
if (data[1] == 'r')
if (data[1] == 'r')
return brTag.localName().impl();
return brTag.localName().impl();
return 0;
break;
case 'd':
case 'd':
switch (data[1]) {
switch (data[1]) {
case 'd':
case 'd':
return ddTag.localName().impl();
return ddTag.localName().impl();
case 'l':
case 'l':
return dlTag.localName().impl();
return dlTag.localName().impl();
case 't':
case 't':
return dtTag.localName().impl();
return dtTag.localName().impl();
}
}
return 0;
break;
case 'e':
case 'e':
if (data[1] == 'm')
if (data[1] == 'm')
return emTag.localName().impl();
return emTag.localName().impl();
return 0;
break;
case 'h':
case 'h':
switch (data[1]) {
switch (data[1]) {
case '1':
case '1':
return h1Tag.localName().impl();
return h1Tag.localName().impl();
case '2':
case '2':
return h2Tag.localName().impl();
return h2Tag.localName().impl();
case '3':
case '3':
return h3Tag.localName().impl();
return h3Tag.localName().impl();
case '4':
case '4':
return h4Tag.localName().impl();
return h4Tag.localName().impl();
case '5':
case '5':
return h5Tag.localName().impl();
return h5Tag.localName().impl();
case '6':
case '6':
return h6Tag.localName().impl();
return h6Tag.localName().impl();
case 'r':
case 'r':
return hrTag.localName().impl();
return hrTag.localName().impl();
}
}
return 0;
break;
case 'l':
case 'l':
if (data[1] == 'i')
if (data[1] == 'i')
return liTag.localName().impl();
return liTag.localName().impl();
return 0;
break;
case 'o':
case 'o':
if (data[1] == 'l')
if (data[1] == 'l')
return olTag.localName().impl();
return olTag.localName().impl();
return 0;
break;
case 'r':
case 'r':
switch (data[1]) {
switch (data[1]) {
case 'b':
case 'b':
return rbTag.localName().impl();
return rbTag.localName().impl();
case 'p':
case 'p':
return rpTag.localName().impl();
return rpTag.localName().impl();
case 't':
case 't':
return rtTag.localName().impl();
return rtTag.localName().impl();
}
}
return 0;
break;
case 't':
case 't':
switch (data[1]) {
switch (data[1]) {
case 'd':
case 'd':
return tdTag.localName().impl();
return tdTag.localName().impl();
case 'h':
case 'h':
return thTag.localName().impl();
return thTag.localName().impl();
case 'r':
case 'r':
return trTag.localName().impl();
return trTag.localName().impl();
case 't':
case 't':
return ttTag.localName().impl();
return ttTag.localName().impl();
}
}
return 0;
break;
case 'u':
case 'u':
if (data[1] == 'l')
if (data[1] == 'l')
return ulTag.localName().impl();
return ulTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
case 3:
case 3:
switch (data[0]) {
switch (data[0]) {
case 'b':
case 'b':
switch (data[1]) {
switch (data[1]) {
case 'd':
case 'd':
switch (data[2]) {
switch (data[2]) {
case 'i':
case 'i':
return bdiTag.localName().impl();
return bdiTag.localName().impl();
case 'o':
case 'o':
return bdoTag.localName().impl();
return bdoTag.localName().impl();
}
}
return 0;
break;
case 'i':
case 'i':
if (data[2] == 'g')
if (data[2] == 'g')
return bigTag.localName().impl();
return bigTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
case 'c':
case 'c':
if (data[1] == 'o' && data[2] == 'l')
if (data[1] == 'o' && data[2] == 'l')
return colTag.localName().impl();
return colTag.localName().impl();
return 0;
break;
case 'd':
case 'd':
switch (data[1]) {
switch (data[1]) {
case 'e':
case 'e':
if (data[2] == 'l')
if (data[2] == 'l')
return delTag.localName().impl();
return delTag.localName().impl();
return 0;
break;
case 'f':
case 'f':
if (data[2] == 'n')
if (data[2] == 'n')
return dfnTag.localName().impl();
return dfnTag.localName().impl();
return 0;
break;
case 'i':
case 'i':
switch (data[2]) {
switch (data[2]) {
case 'r':
case 'r':
return dirTag.localName().impl();
return dirTag.localName().impl();
case 'v':
case 'v':
return divTag.localName().impl();
return divTag.localName().impl();
}
}
return 0;
break;
}
}
return 0;
break;
case 'i':
case 'i':
switch (data[1]) {
switch (data[1]) {
case 'm':
case 'm':
if (data[2] == 'g')
if (data[2] == 'g')
return imgTag.localName().impl();
return imgTag.localName().impl();
return 0;
break;
case 'n':
case 'n':
if (data[2] == 's')
if (data[2] == 's')
return insTag.localName().impl();
return insTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
case 'k':
case 'k':
if (data[1] == 'b' && data[2] == 'd')
if (data[1] == 'b' && data[2] == 'd')
return kbdTag.localName().impl();
return kbdTag.localName().impl();
return 0;
break;
case 'm':
case 'm':
if (data[1] == 'a' && data[2] == 'p')
if (data[1] == 'a' && data[2] == 'p')
return mapTag.localName().impl();
return mapTag.localName().impl();
return 0;
break;
case 'n':
case 'n':
if (data[1] == 'a' && data[2] == 'v')
if (data[1] == 'a' && data[2] == 'v')
return navTag.localName().impl();
return navTag.localName().impl();
return 0;
break;
case 'p':
case 'p':
if (data[1] == 'r' && data[2] == 'e')
if (data[1] == 'r' && data[2] == 'e')
return preTag.localName().impl();
return preTag.localName().impl();
return 0;
break;
case 'r':
case 'r':
if (data[1] == 't' && data[2] == 'c')
if (data[1] == 't' && data[2] == 'c')
return rtcTag.localName().impl();
return rtcTag.localName().impl();
return 0;
break;
case 's':
case 's':
switch (data[1]) {
switch (data[1]) {
case 'u':
case 'u':
switch (data[2]) {
switch (data[2]) {
case 'b':
case 'b':
return subTag.localName().impl();
return subTag.localName().impl();
case 'p':
case 'p':
return supTag.localName().impl();
return supTag.localName().impl();
}
}
return 0;
break;
}
}
return 0;
break;
case 'v':
case 'v':
if (data[1] == 'a' && data[2] == 'r')
if (data[1] == 'a' && data[2] == 'r')
return varTag.localName().impl();
return varTag.localName().impl();
return 0;
break;
case 'w':
case 'w':
if (data[1] == 'b' && data[2] == 'r')
if (data[1] == 'b' && data[2] == 'r')
return wbrTag.localName().impl();
return wbrTag.localName().impl();
return 0;
break;
case 'x':
case 'x':
if (data[1] == 'm' && data[2] == 'p')
if (data[1] == 'm' && data[2] == 'p')
return xmpTag.localName().impl();
return xmpTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
case 4:
case 4:
switch (data[0]) {
switch (data[0]) {
case 'a':
case 'a':
switch (data[1]) {
switch (data[1]) {
case 'b':
case 'b':
if (data[2] == 'b' && data[3] == 'r')
if (data[2] == 'b' && data[3] == 'r')
return abbrTag.localName().impl();
return abbrTag.localName().impl();
return 0;
break;
case 'r':
case 'r':
if (data[2] == 'e' && data[3] == 'a')
if (data[2] == 'e' && data[3] == 'a')
return areaTag.localName().impl();
return areaTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
case 'b':
case 'b':
switch (data[1]) {
switch (data[1]) {
case 'a':
case 'a':
if (data[2] == 's' && data[3] == 'e')
if (data[2] == 's' && data[3] == 'e')
return baseTag.localName().impl();
return baseTag.localName().impl();
return 0;
break;
case 'o':
case 'o':
if (data[2] == 'd' && data[3] == 'y')
if (data[2] == 'd' && data[3] == 'y')
return bodyTag.localName().impl();
return bodyTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
case 'c':
case 'c':
switch (data[1]) {
switch (data[1]) {
case 'i':
case 'i':
if (data[2] == 't' && data[3] == 'e')
if (data[2] == 't' && data[3] == 'e')
return citeTag.localName().impl();
return citeTag.localName().impl();
return 0;
break;
case 'o':
case 'o':
if (data[2] == 'd' && data[3] == 'e')
if (data[2] == 'd' && data[3] == 'e')
return codeTag.localName().impl();
return codeTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
case 'f':
case 'f':
switch (data[1]) {
switch (data[1]) {
case 'o':
case 'o':
switch (data[2]) {
switch (data[2]) {
case 'n':
case 'n':
if (data[3] == 't')
if (data[3] == 't')
return fontTag.localName().impl();
return fontTag.localName().impl();
return 0;
break;
case 'r':
case 'r':
if (data[3] == 'm')
if (data[3] == 'm')
return formTag.localName().impl();
return formTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
}
}
return 0;
break;
case 'h':
case 'h':
switch (data[1]) {
switch (data[1]) {
case 'e':
case 'e':
if (data[2] == 'a' && data[3] == 'd')
if (data[2] == 'a' && data[3] == 'd')
return headTag.localName().impl();
return headTag.localName().impl();
return 0;
break;
case 't':
case 't':
if (data[2] == 'm' && data[3] == 'l')
if (data[2] == 'm' && data[3] == 'l')
return htmlTag.localName().impl();
return htmlTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
case 'l':
case 'l':
if (data[1] == 'i' && data[2] == 'n' && data[3] == 'k')
if (data[1] == 'i' && data[2] == 'n' && data[3] == 'k')
return linkTag.localName().impl();
return linkTag.localName().impl();
return 0;
break;
case 'm':
case 'm':
switch (data[1]) {
switch (data[1]) {
case 'a':
case 'a':
switch (data[2]) {
switch (data[2]) {
case 'i':
case 'i':
if (data[3] == 'n')
if (data[3] == 'n')
return mainTag.localName().impl();
return mainTag.localName().impl();
return 0;
break;
case 'r':
case 'r':
if (data[3] == 'k')
if (data[3] == 'k')
return markTag.localName().impl();
return markTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
case 'e':
case 'e':
switch (data[2]) {
switch (data[2]) {
case 'n':
case 'n':
if (data[3] == 'u')
if (data[3] == 'u')
return menuTag.localName().impl();
return menuTag.localName().impl();
return 0;
break;
case 't':
case 't':
if (data[3] == 'a')
if (data[3] == 'a')
return metaTag.localName().impl();
return metaTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
}
}
return 0;
break;
case 'n':
case 'n':
if (data[1] == 'o' && data[2] == 'b' && data[3] == 'r')
if (data[1] == 'o' && data[2] == 'b' && data[3] == 'r')
return nobrTag.localName().impl();
return nobrTag.localName().impl();
return 0;
break;
case 'r':
case 'r':
if (data[1] == 'u' && data[2] == 'b' && data[3] == 'y')
if (data[1] == 'u' && data[2] == 'b' && data[3] == 'y')
return rubyTag.localName().impl();
return rubyTag.localName().impl();
return 0;
break;
case 's':
case 's':
switch (data[1]) {
switch (data[1]) {
case 'a':
case 'a':
if (data[2] == 'm' && data[3] == 'p')
if (data[2] == 'm' && data[3] == 'p')
return sampTag.localName().impl();
return sampTag.localName().impl();
return 0;
break;
case 'l':
case 'l':
if (data[2] == 'o' && data[3] == 't')
if (data[2] == 'o' && data[3] == 't')
return slotTag.localName().impl();
return slotTag.localName().impl();
return 0;
break;
case 'p':
case 'p':
if (data[2] == 'a' && data[3] == 'n')
if (data[2] == 'a' && data[3] == 'n')
return spanTag.localName().impl();
return spanTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
}
}
return 0;
break;
case 5:
case 5:
switch (data[0]) {
switch (data[0]) {
case 'a':
case 'a':
switch (data[1]) {
switch (data[1]) {
case 's':
case 's':
if (data[2] == 'i' && data[3] == 'd' && data[4] == 'e')
if (data[2] == 'i' && data[3] == 'd' && data[4] == 'e')
return asideTag.localName().impl();
return asideTag.localName().impl();
return 0;
break;
case 'u':
case 'u':
if (data[2] == 'd' && data[3] == 'i' && data[4] == 'o')
if (data[2] == 'd' && data[3] == 'i' && data[4] == 'o')
return audioTag.localName().impl();
return audioTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
case 'e':
case 'e':
if (data[1] == 'm' && data[2] == 'b' && data[3] == 'e' && data[4] == 'd')
if (data[1] == 'm' && data[2] == 'b' && data[3] == 'e' && data[4] == 'd')
return embedTag.localName().impl();
return embedTag.localName().impl();
return 0;
break;
case 'f':
case 'f':
if (data[1] == 'r' && data[2] == 'a' && data[3] == 'm' && data[4] == 'e')
if (data[1] == 'r' && data[2] == 'a' && data[3] == 'm' && data[4] == 'e')
return frameTag.localName().impl();
return frameTag.localName().impl();
return 0;
break;
case 'i':
case 'i':
switch (data[1]) {
switch (data[1]) {
case 'm':
case 'm':
if (data[2] == 'a' && data[3] == 'g' && data[4] == 'e')
if (data[2] == 'a' && data[3] == 'g' && data[4] == 'e')
return imageTag.localName().impl();
return imageTag.localName().impl();
return 0;
break;
case 'n':
case 'n':
if (data[2] == 'p' && data[3] == 'u' && data[4] == 't')
if (data[2] == 'p' && data[3] == 'u' && data[4] == 't')
return inputTag.localName().impl();
return inputTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
case 'l':
case 'l':
switch (data[1]) {
switch (data[1]) {
case 'a':
case 'a':
switch (data[2]) {
switch (data[2]) {
case 'b':
case 'b':
if (data[3] == 'e' && data[4] == 'l')
if (data[3] == 'e' && data[4] == 'l')
return labelTag.localName().impl();
return labelTag.localName().impl();
return 0;
break;
case 'y':
case 'y':
if (data[3] == 'e' && data[4] == 'r')
if (data[3] == 'e' && data[4] == 'r')
return layerTag.localName().impl();
return layerTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
}
}
return 0;
break;
case 'm':
case 'm':
if (data[1] == 'e' && data[2] == 't' && data[3] == 'e' && data[4] == 'r')
if (data[1] == 'e' && data[2] == 't' && data[3] == 'e' && data[4] == 'r')
return meterTag.localName().impl();
return meterTag.localName().impl();
return 0;
break;
case 'p':
case 'p':
if (data[1] == 'a' && data[2] == 'r' && data[3] == 'a' && data[4] == 'm')
if (data[1] == 'a' && data[2] == 'r' && data[3] == 'a' && data[4] == 'm')
return paramTag.localName().impl();
return paramTag.localName().impl();
return 0;
break;
case 's':
case 's':
switch (data[1]) {
switch (data[1]) {
case 'm':
case 'm':
if (data[2] == 'a' && data[3] == 'l' && data[4] == 'l')
if (data[2] == 'a' && data[3] == 'l' && data[4] == 'l')
return smallTag.localName().impl();
return smallTag.localName().impl();
return 0;
break;
case 't':
case 't':
if (data[2] == 'y' && data[3] == 'l' && data[4] == 'e')
if (data[2] == 'y' && data[3] == 'l' && data[4] == 'e')
return styleTag.localName().impl();
return styleTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
case 't':
case 't':
switch (data[1]) {
switch (data[1]) {
case 'a':
case 'a':
if (data[2] == 'b' && data[3] == 'l' && data[4] == 'e')
if (data[2] == 'b' && data[3] == 'l' && data[4] == 'e')
return tableTag.localName().impl();
return tableTag.localName().impl();
return 0;
break;
case 'b':
case 'b':
if (data[2] == 'o' && data[3] == 'd' && data[4] == 'y')
if (data[2] == 'o' && data[3] == 'd' && data[4] == 'y')
return tbodyTag.localName().impl();
return tbodyTag.localName().impl();
return 0;
break;
case 'f':
case 'f':
if (data[2] == 'o' && data[3] == 'o' && data[4] == 't')
if (data[2] == 'o' && data[3] == 'o' && data[4] == 't')
return tfootTag.localName().impl();
return tfootTag.localName().impl();
return 0;
break;
case 'h':
case 'h':
if (data[2] == 'e' && data[3] == 'a' && data[4] == 'd')
if (data[2] == 'e' && data[3] == 'a' && data[4] == 'd')
return theadTag.localName().impl();
return theadTag.localName().impl();
return 0;
break;
case 'i':
case 'i':
if (data[2] == 't' && data[3] == 'l' && data[4] == 'e')
if (data[2] == 't' && data[3] == 'l' && data[4] == 'e')
return titleTag.localName().impl();
return titleTag.localName().impl();
return 0;
break;
case 'r':
case 'r':
if (data[2] == 'a' && data[3] == 'c' && data[4] == 'k')
if (data[2] == 'a' && data[3] == 'c' && data[4] == 'k')
return trackTag.localName().impl();
return trackTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
case 'v':
case 'v':
if (data[1] == 'i' && data[2] == 'd' && data[3] == 'e' && data[4] == 'o')
if (data[1] == 'i' && data[2] == 'd' && data[3] == 'e' && data[4] == 'o')
return videoTag.localName().impl();
return videoTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
case 6:
case 6:
switch (data[0]) {
switch (data[0]) {
case 'a':
case 'a':
if (data[1] == 'p' && data[2] == 'p' && data[3] == 'l' && data[4] == 'e' && data[5] == 't')
if (data[1] == 'p' && data[2] == 'p' && data[3] == 'l' && data[4] == 'e' && data[5] == 't')
return appletTag.localName().impl();
return appletTag.localName().impl();
return 0;
break;
case 'b':
case 'b':
if (data[1] == 'u' && data[2] == 't' && data[3] == 't' && data[4] == 'o' && data[5] == 'n')
if (data[1] == 'u' && data[2] == 't' && data[3] == 't' && data[4] == 'o' && data[5] == 'n')
return buttonTag.localName().impl();
return buttonTag.localName().impl();
return 0;
break;
case 'c':
case 'c':
switch (data[1]) {
switch (data[1]) {
case 'a':
case 'a':
if (data[2] == 'n' && data[3] == 'v' && data[4] == 'a' && data[5] == 's')
if (data[2] == 'n' && data[3] == 'v' && data[4] == 'a' && data[5] == 's')
return canvasTag.localName().impl();
return canvasTag.localName().impl();
return 0;
break;
case 'e':
case 'e':
if (data[2] == 'n' && data[3] == 't' && data[4] == 'e' && data[5] == 'r')
if (data[2] == 'n' && data[3] == 't' && data[4] == 'e' && data[5] == 'r')
return centerTag.localName().impl();
return centerTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
case 'd':
case 'd':
if (data[1] == 'i' && data[2] == 'a' && data[3] == 'l' && data[4] == 'o' && data[5] == 'g')
if (data[1] == 'i' && data[2] == 'a' && data[3] == 'l' && data[4] == 'o' && data[5] == 'g')
return dialogTag.localName().impl();
return dialogTag.localName().impl();
return 0;
break;
case 'f':
case 'f':
switch (data[1]) {
switch (data[1]) {
case 'i':
case 'i':
if (data[2] == 'g' && data[3] == 'u' && data[4] == 'r' && data[5] == 'e')
if (data[2] == 'g' && data[3] == 'u' && data[4] == 'r' && data[5] == 'e')
return figureTag.localName().impl();
return figureTag.localName().impl();
return 0;
break;
case 'o':
case 'o':
if (data[2] == 'o' && data[3] == 't' && data[4] == 'e' && data[5] == 'r')
if (data[2] == 'o' && data[3] == 't' && data[4] == 'e' && data[5] == 'r')
return footerTag.localName().impl();
return footerTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
case 'h':
case 'h':
switch (data[1]) {
switch (data[1]) {
case 'e':
case 'e':
if (data[2] == 'a' && data[3] == 'd' && data[4] == 'e' && data[5] == 'r')
if (data[2] == 'a' && data[3] == 'd' && data[4] == 'e' && data[5] == 'r')
return headerTag.localName().impl();
return headerTag.localName().impl();
return 0;
break;
case 'g':
case 'g':
if (data[2] == 'r' && data[3] == 'o' && data[4] == 'u' && data[5] == 'p')
if (data[2] == 'r' && data[3] == 'o' && data[4] == 'u' && data[5] == 'p')
return hgroupTag.localName().impl();
return hgroupTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
case 'i':
case 'i':
if (data[1] == 'f' && data[2] == 'r' && data[3] == 'a' && data[4] == 'm' && data[5] == 'e')
if (data[1] == 'f' && data[2] == 'r' && data[3] == 'a' && data[4] == 'm' && data[5] == 'e')
return iframeTag.localName().impl();
return iframeTag.localName().impl();
return 0;
break;
case 'k':
case 'k':
if (data[1] == 'e' && data[2] == 'y' && data[3] == 'g' && data[4] == 'e' && data[5] == 'n')
if (data[1] == 'e' && data[2] == 'y' && data[3] == 'g' && data[4] == 'e' && data[5] == 'n')
return keygenTag.localName().impl();
return keygenTag.localName().impl();
return 0;
break;
case 'l':
case 'l':
if (data[1] == 'e' && data[2] == 'g' && data[3] == 'e' && data[4] == 'n' && data[5] == 'd')
if (data[1] == 'e' && data[2] == 'g' && data[3] == 'e' && data[4] == 'n' && data[5] == 'd')
return legendTag.localName().impl();
return legendTag.localName().impl();
return 0;
break;
case 'o':
case 'o':
switch (data[1]) {
switch (data[1]) {
case 'b':
case 'b':
if (data[2] == 'j' && data[3] == 'e' && data[4] == 'c' && data[5] == 't')
if (data[2] == 'j' && data[3] == 'e' && data[4] == 'c' && data[5] == 't')
return objectTag.localName().impl();
return objectTag.localName().impl();
return 0;
break;
case 'p':
case 'p':
if (data[2] == 't' && data[3] == 'i' && data[4] == 'o' && data[5] == 'n')
if (data[2] == 't' && data[3] == 'i' && data[4] == 'o' && data[5] == 'n')
return optionTag.localName().impl();
return optionTag.localName().impl();
return 0;
break;
case 'u':
case 'u':
if (data[2] == 't' && data[3] == 'p' && data[4] == 'u' && data[5] == 't')
if (data[2] == 't' && data[3] == 'p' && data[4] == 'u' && data[5] == 't')
return outputTag.localName().impl();
return outputTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
case 's':
case 's':
switch (data[1]) {
switch (data[1]) {
case 'c':
case 'c':
if (data[2] == 'r' && data[3] == 'i' && data[4] == 'p' && data[5] == 't')
if (data[2] == 'r' && data[3] == 'i' && data[4] == 'p' && data[5] == 't')
return scriptTag.localName().impl();
return scriptTag.localName().impl();
return 0;
break;
case 'e':
case 'e':
if (data[2] == 'l' && data[3] == 'e' && data[4] == 'c' && data[5] == 't')
if (data[2] == 'l' && data[3] == 'e' && data[4] == 'c' && data[5] == 't')
return selectTag.localName().impl();
return selectTag.localName().impl();
return 0;
break;
case 'h':
case 'h':
if (data[2] == 'a' && data[3] == 'd' && data[4] == 'o' && data[5] == 'w')
if (data[2] == 'a' && data[3] == 'd' && data[4] == 'o' && data[5] == 'w')
return shadowTag.localName().impl();
return shadowTag.localName().impl();
return 0;
break;
case 'o':
case 'o':
if (data[2] == 'u' && data[3] == 'r' && data[4] == 'c' && data[5] == 'e')
if (data[2] == 'u' && data[3] == 'r' && data[4] == 'c' && data[5] == 'e')
return sourceTag.localName().impl();
return sourceTag.localName().impl();
return 0;
break;
case 't':
case 't':
switch (data[2]) {
switch (data[2]) {
case 'r':
case 'r':
switch (data[3]) {
switch (data[3]) {
case 'i':
case 'i':
if (data[4] == 'k' && data[5] == 'e')
if (data[4] == 'k' && data[5] == 'e')
return strikeTag.localName().impl();
return strikeTag.localName().impl();
return 0;
break;
case 'o':
case 'o':
if (data[4] == 'n' && data[5] == 'g')
if (data[4] == 'n' && data[5] == 'g')
return strongTag.localName().impl();
return strongTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
}
}
return 0;
break;
}
}
return 0;
break;
}
}
return 0;
break;
case 7:
case 7:
switch (data[0]) {
switch (data[0]) {
case 'a':
case 'a':
switch (data[1]) {
switch (data[1]) {
case 'c':
case 'c':
if (data[2] == 'r' && data[3] == 'o' && data[4] == 'n' && data[5] == 'y' && data[6] == 'm')
if (data[2] == 'r' && data[3] == 'o' && data[4] == 'n' && data[5] == 'y' && data[6] == 'm')
return acronymTag.localName().impl();
return acronymTag.localName().impl();
return 0;
break;
case 'd':
case 'd':
if (data[2] == 'd' && data[3] == 'r' && data[4] == 'e' && data[5] == 's' && data[6] == 's')
if (data[2] == 'd' && data[3] == 'r' && data[4] == 'e' && data[5] == 's' && data[6] == 's')
return addressTag.localName().impl();
return addressTag.localName().impl();
return 0;
break;
case 'r':
case 'r':
if (data[2] == 't' && data[3] == 'i' && data[4] == 'c' && data[5] == 'l' && data[6] == 'e')
if (data[2] == 't' && data[3] == 'i' && data[4] == 'c' && data[5] == 'l' && data[6] == 'e')
return articleTag.localName().impl();
return articleTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
case 'b':
case 'b':
if (data[1] == 'g' && data[2] == 's' && data[3] == 'o' && data[4] == 'u' && data[5] == 'n' && data[6] == 'd')
if (data[1] == 'g' && data[2] == 's' && data[3] == 'o' && data[4] == 'u' && data[5] == 'n' && data[6] == 'd')
return bgsoundTag.localName().impl();
return bgsoundTag.localName().impl();
return 0;
break;
case 'c':
case 'c':
switch (data[1]) {
switch (data[1]) {
case 'a':
case 'a':
if (data[2] == 'p' && data[3] == 't' && data[4] == 'i' && data[5] == 'o' && data[6] == 'n')
if (data[2] == 'p' && data[3] == 't' && data[4] == 'i' && data[5] == 'o' && data[6] == 'n')
return captionTag.localName().impl();
return captionTag.localName().impl();
return 0;
break;
case 'o':
case 'o':
switch (data[2]) {
switch (data[2]) {
case 'm':
case 'm':
if (data[3] == 'm' && data[4] == 'a' && data[5] == 'n' && data[6] == 'd')
if (data[3] == 'm' && data[4] == 'a' && data[5] == 'n' && data[6] == 'd')
return commandTag.localName().impl();
return commandTag.localName().impl();
return 0;
break;
case 'n':
case 'n':
if (data[3] == 't' && data[4] == 'e' && data[5] == 'n' && data[6] == 't')
if (data[3] == 't' && data[4] == 'e' && data[5] == 'n' && data[6] == 't')
return contentTag.localName().impl();
return contentTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
}
}
return 0;
break;
case 'd':
case 'd':
if (data[1] == 'e' && data[2] == 't' && data[3] == 'a' && data[4] == 'i' && data[5] == 'l' && data[6] == 's')
if (data[1] == 'e' && data[2] == 't' && data[3] == 'a' && data[4] == 'i' && data[5] == 'l' && data[6] == 's')
return detailsTag.localName().impl();
return detailsTag.localName().impl();
return 0;
break;
case 'l':
case 'l':
if (data[1] == 'i' && data[2] == 's' && data[3] == 't' && data[4] == 'i' && data[5] == 'n' && data[6] == 'g')
if (data[1] == 'i' && data[2] == 's' && data[3] == 't' && data[4] == 'i' && data[5] == 'n' && data[6] == 'g')
return listingTag.localName().impl();
return listingTag.localName().impl();
return 0;
break;
case 'm':
case 'm':
if (data[1] == 'a' && data[2] == 'r' && data[3] == 'q' && data[4] == 'u' && data[5] == 'e' && data[6] == 'e')
if (data[1] == 'a' && data[2] == 'r' && data[3] == 'q' && data[4] == 'u' && data[5] == 'e' && data[6] == 'e')
return marqueeTag.localName().impl();
return marqueeTag.localName().impl();
return 0;
break;
case 'n':
case 'n':
switch (data[1]) {
switch (data[1]) {
case 'o':
case 'o':
switch (data[2]) {
switch (data[2]) {
case 'e':
case 'e':
if (data[3] == 'm' && data[4] == 'b' && data[5] == 'e' && data[6] == 'd')
if (data[3] == 'm' && data[4] == 'b' && data[5] == 'e' && data[6] == 'd')
return noembedTag.localName().impl();
return noembedTag.localName().impl();
return 0;
break;
case 'l':
case 'l':
if (data[3] == 'a' && data[4] == 'y' && data[5] == 'e' && data[6] == 'r')
if (data[3] == 'a' && data[4] == 'y' && data[5] == 'e' && data[6] == 'r')
return nolayerTag.localName().impl();
return nolayerTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
}
}
return 0;
break;
case 'p':
case 'p':
if (data[1] == 'i' && data[2] == 'c' && data[3] == 't' && data[4] == 'u' && data[5] == 'r' && data[6] == 'e')
if (data[1] == 'i' && data[2] == 'c' && data[3] == 't' && data[4] == 'u' && data[5] == 'r' && data[6] == 'e')
return pictureTag.localName().impl();
return pictureTag.localName().impl();
return 0;
break;
case 's':
case 's':
switch (data[1]) {
switch (data[1]) {
case 'e':
case 'e':
if (data[2] == 'c' && data[3] == 't' && data[4] == 'i' && data[5] == 'o' && data[6] == 'n')
if (data[2] == 'c' && data[3] == 't' && data[4] == 'i' && data[5] == 'o' && data[6] == 'n')
return sectionTag.localName().impl();
return sectionTag.localName().impl();
return 0;
break;
case 'u':
case 'u':
if (data[2] == 'm' && data[3] == 'm' && data[4] == 'a' && data[5] == 'r' && data[6] == 'y')
if (data[2] == 'm' && data[3] == 'm' && data[4] == 'a' && data[5] == 'r' && data[6] == 'y')
return summaryTag.localName().impl();
return summaryTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
}
}
return 0;
break;
case 8:
case 8:
switch (data[0]) {
switch (data[0]) {
case 'b':
case 'b':
if (data[1] == 'a' && data[2] == 's' && data[3] == 'e' && data[4] == 'f' && data[5] == 'o' && data[6] == 'n' && data[7] == 't')
if (data[1] == 'a' && data[2] == 's' && data[3] == 'e' && data[4] == 'f' && data[5] == 'o' && data[6] == 'n' && data[7] == 't')
return basefontTag.localName().impl();
return basefontTag.localName().impl();
return 0;
break;
case 'c':
case 'c':
if (data[1] == 'o' && data[2] == 'l' && data[3] == 'g' && data[4] == 'r' && data[5] == 'o' && data[6] == 'u' && data[7] == 'p')
if (data[1] == 'o' && data[2] == 'l' && data[3] == 'g' && data[4] == 'r' && data[5] == 'o' && data[6] == 'u' && data[7] == 'p')
return colgroupTag.localName().impl();
return colgroupTag.localName().impl();
return 0;
break;
case 'd':
case 'd':
if (data[1] == 'a' && data[2] == 't' && data[3] == 'a' && data[4] == 'l' && data[5] == 'i' && data[6] == 's' && data[7] == 't')
if (data[1] == 'a' && data[2] == 't' && data[3] == 'a' && data[4] == 'l' && data[5] == 'i' && data[6] == 's' && data[7] == 't')
return datalistTag.localName().impl();
return datalistTag.localName().impl();
return 0;
break;
case 'f':
case 'f':
switch (data[1]) {
switch (data[1]) {
case 'i':
case 'i':
if (data[2] == 'e' && data[3] == 'l' && data[4] == 'd' && data[5] == 's' && data[6] == 'e' && data[7] == 't')
if (data[2] == 'e' && data[3] == 'l' && data[4] == 'd' && data[5] == 's' && data[6] == 'e' && data[7] == 't')
return fieldsetTag.localName().impl();
return fieldsetTag.localName().impl();
return 0;
break;
case 'r':
case 'r':
if (data[2] == 'a' && data[3] == 'm' && data[4] == 'e' && data[5] == 's' && data[6] == 'e' && data[7] == 't')
if (data[2] == 'a' && data[3] == 'm' && data[4] == 'e' && data[5] == 's' && data[6] == 'e' && data[7] == 't')
return framesetTag.localName().impl();
return framesetTag.localName().impl();
return 0;
break;
}
}
return 0;
break;
case 'm':
case 'm':
if (data[1] == 'e' && data[2] == 'n' && data[3] == 'u' && data[4] == 'i' && data[5] == 't' && data[6] == 'e' && data[7] == 'm')
if (data[1] == 'e' && data[2] == 'n' && data[3] == 'u' && data[4] == 'i' && data[5] == 't' && data[6] == 'e' && data[7] == 'm')
return menuitemTag.localName().impl();
return menuitemTag.localName().impl();
return 0;
break;
case 'n':
case 'n':
switch (data[1]) {
switch (data[1]) {
case 'o':
case 'o':
switch (data[2]) {
switch (data[2]) {
case 'f':
case 'f':
if (data[3] == 'r' && data[4] == 'a' && data[5] == 'm' && data[6] == 'e' && data[7] == 's')
if (data[3] == 'r' && data[4] == 'a' && data[5] == 'm' && data[6] == 'e' && data[7] == 's')
return noframesTag.localName().impl();
return noframesTag.localName().impl();
return 0;
break;
case 's':
case 's':
if (data[3] == 'c' && data[4] == 'r' && data[5] == 'i' && data[6] == 'p' && data[7] == 't')
if (data[3] == 'c' && data[4] == 'r' && data[5] == 'i' && data[6] == 'p' && data[7] == 't')
return noscriptTag.localName().impl();
return noscriptTag.localName().impl();
break;
}
break;
}
break;
case 'o':
if (data[1] == 'p' && data[2] == 't' && data[3] == 'g' && data[4] == 'r' && data[5] == 'o' && data[6] == 'u' && data[7] == 'p')
return optgroupTag.localName().impl();
break;
case 'p':
if (data[1] == 'r' && data[2] == 'o' && data[3] == 'g' && data[4] == 'r' && data[5]