// Code generated by re2go 4.0.2, DO NOT EDIT. package re2go // Original pattern: (?i)article|body|content|entry|hentry|h-entry|main|page|pagination|post|text|blog|story func IsPositiveClass(input string) bool { var cursor, marker int input += string(rune(0)) // add terminating null limit := len(input) - 1 // limit points at the terminating null _ = marker for { { var yych byte yych = input[cursor] switch yych { case 'A': fallthrough case 'a': goto yy3 case 'B': fallthrough case 'b': goto yy4 case 'C': fallthrough case 'c': goto yy5 case 'E': fallthrough case 'e': goto yy6 case 'H': fallthrough case 'h': goto yy7 case 'M': fallthrough case 'm': goto yy8 case 'P': fallthrough case 'p': goto yy9 case 'S': fallthrough case 's': goto yy10 case 'T': fallthrough case 't': goto yy11 default: if limit <= cursor { goto yy44 } goto yy1 } yy1: cursor++ yy2: { continue } yy3: cursor++ marker = cursor yych = input[cursor] switch yych { case 'R': fallthrough case 'r': goto yy12 default: goto yy2 } yy4: cursor++ marker = cursor yych = input[cursor] switch yych { case 'L': fallthrough case 'l': goto yy14 case 'O': fallthrough case 'o': goto yy15 default: goto yy2 } yy5: cursor++ marker = cursor yych = input[cursor] switch yych { case 'O': fallthrough case 'o': goto yy16 default: goto yy2 } yy6: cursor++ marker = cursor yych = input[cursor] switch yych { case 'N': fallthrough case 'n': goto yy17 default: goto yy2 } yy7: cursor++ marker = cursor yych = input[cursor] switch yych { case '-': goto yy18 case 'E': fallthrough case 'e': goto yy19 default: goto yy2 } yy8: cursor++ marker = cursor yych = input[cursor] switch yych { case 'A': fallthrough case 'a': goto yy20 default: goto yy2 } yy9: cursor++ marker = cursor yych = input[cursor] switch yych { case 'A': fallthrough case 'a': goto yy21 case 'O': fallthrough case 'o': goto yy22 default: goto yy2 } yy10: cursor++ marker = cursor yych = input[cursor] switch yych { case 'T': fallthrough case 't': goto yy23 default: goto yy2 } yy11: cursor++ marker = cursor yych = input[cursor] switch yych { case 'E': fallthrough case 'e': goto yy24 default: goto yy2 } yy12: cursor++ yych = input[cursor] switch yych { case 'T': fallthrough case 't': goto yy25 default: goto yy13 } yy13: cursor = marker goto yy2 yy14: cursor++ yych = input[cursor] switch yych { case 'O': fallthrough case 'o': goto yy26 default: goto yy13 } yy15: cursor++ yych = input[cursor] switch yych { case 'D': fallthrough case 'd': goto yy27 default: goto yy13 } yy16: cursor++ yych = input[cursor] switch yych { case 'N': fallthrough case 'n': goto yy28 default: goto yy13 } yy17: cursor++ yych = input[cursor] switch yych { case 'T': fallthrough case 't': goto yy29 default: goto yy13 } yy18: cursor++ yych = input[cursor] switch yych { case 'E': fallthrough case 'e': goto yy19 default: goto yy13 } yy19: cursor++ yych = input[cursor] switch yych { case 'N': fallthrough case 'n': goto yy17 default: goto yy13 } yy20: cursor++ yych = input[cursor] switch yych { case 'I': fallthrough case 'i': goto yy30 default: goto yy13 } yy21: cursor++ yych = input[cursor] switch yych { case 'G': fallthrough case 'g': goto yy31 default: goto yy13 } yy22: cursor++ yych = input[cursor] switch yych { case 'S': fallthrough case 's': goto yy32 default: goto yy13 } yy23: cursor++ yych = input[cursor] switch yych { case 'O': fallthrough case 'o': goto yy29 default: goto yy13 } yy24: cursor++ yych = input[cursor] switch yych { case 'X': fallthrough case 'x': goto yy32 default: goto yy13 } yy25: cursor++ yych = input[cursor] switch yych { case 'I': fallthrough case 'i': goto yy33 default: goto yy13 } yy26: cursor++ yych = input[cursor] switch yych { case 'G': fallthrough case 'g': goto yy34 default: goto yy13 } yy27: cursor++ yych = input[cursor] switch yych { case 'Y': fallthrough case 'y': goto yy34 default: goto yy13 } yy28: cursor++ yych = input[cursor] switch yych { case 'T': fallthrough case 't': goto yy35 default: goto yy13 } yy29: cursor++ yych = input[cursor] switch yych { case 'R': fallthrough case 'r': goto yy27 default: goto yy13 } yy30: cursor++ yych = input[cursor] switch yych { case 'N': fallthrough case 'n': goto yy34 default: goto yy13 } yy31: cursor++ yych = input[cursor] switch yych { case 'E': fallthrough case 'e': goto yy34 case 'I': fallthrough case 'i': goto yy36 default: goto yy13 } yy32: cursor++ yych = input[cursor] switch yych { case 'T': fallthrough case 't': goto yy34 default: goto yy13 } yy33: cursor++ yych = input[cursor] switch yych { case 'C': fallthrough case 'c': goto yy37 default: goto yy13 } yy34: cursor++ { return true } yy35: cursor++ yych = input[cursor] switch yych { case 'E': fallthrough case 'e': goto yy38 default: goto yy13 } yy36: cursor++ yych = input[cursor] switch yych { case 'N': fallthrough case 'n': goto yy39 default: goto yy13 } yy37: cursor++ yych = input[cursor] switch yych { case 'L': fallthrough case 'l': goto yy40 default: goto yy13 } yy38: cursor++ yych = input[cursor] switch yych { case 'N': fallthrough case 'n': goto yy32 default: goto yy13 } yy39: cursor++ yych = input[cursor] switch yych { case 'A': fallthrough case 'a': goto yy41 default: goto yy13 } yy40: cursor++ yych = input[cursor] switch yych { case 'E': fallthrough case 'e': goto yy34 default: goto yy13 } yy41: cursor++ yych = input[cursor] switch yych { case 'T': fallthrough case 't': goto yy42 default: goto yy13 } yy42: cursor++ yych = input[cursor] switch yych { case 'I': fallthrough case 'i': goto yy43 default: goto yy13 } yy43: cursor++ yych = input[cursor] switch yych { case 'O': fallthrough case 'o': goto yy30 default: goto yy13 } yy44: { return false } } } } // For IsNegativeClass, its original pattern is like this: // (?i)-ad-|hidden|^hid$| hid$| hid |^hid |banner|combx|comment|com-|contact|foot|footer|footnote|gdpr|masthead|media|meta|outbrain|promo|related|scroll|share|shoutbox|sidebar|skyscraper|sponsor|shopping|tags|tool|widget // // Unfortunately, re2go doesn't handle anchor like ^ and $ internally, so for convenience // I'll split that pattern into two: // - `^hid$| hid$| hid |^hid ` // - `-ad-|hidden|banner|combx|comment|com-|contact|foot|footer|footnote|gdpr|masthead|media|meta|outbrain|promo|related|scroll|share|shoutbox|sidebar|skyscraper|sponsor|shopping|tags|tool|widget` func IsNegativeClass(input string) bool { return isNegativeClass1(input) || isNegativeClass2(input) } // This one handle: `^hid$| hid$| hid |^hid ` func isNegativeClass1(input string) bool { var cursor, marker int input += string(rune(0)) // add terminating null limit := len(input) - 1 // limit points at the terminating null _ = marker // Variable for capturing parentheses (twice the number of groups). const YYMAXNMATCH = 3 yypmatch := make([]int, YYMAXNMATCH*2) var yynmatch int _ = yynmatch // Autogenerated tag variables used by the lexer to track tag values. var yyt1 int _ = yyt1 var yyt2 int _ = yyt2 var yyt3 int _ = yyt3 var yyt4 int _ = yyt4 var yyt5 int _ = yyt5 for { { var yych byte yyaccept := 0 yych = input[cursor] switch yych { case 0x00: fallthrough case 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, '\t': fallthrough case '\v', '\f', '\r', 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G': fallthrough case 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g': fallthrough case 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', 0x7F: if limit <= cursor { goto yy71 } yyt1 = cursor goto yy46 case 'H': fallthrough case 'h': yyt1 = cursor yyt2 = -1 yyt5 = -1 goto yy49 case 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF: yyt1 = cursor goto yy50 case 0xE0: yyt1 = cursor goto yy51 case 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF: yyt1 = cursor goto yy52 case 0xF0: yyt1 = cursor goto yy53 case 0xF1, 0xF2, 0xF3: yyt1 = cursor goto yy54 case 0xF4: yyt1 = cursor goto yy55 default: goto yy48 } yy46: yyaccept = 0 cursor++ marker = cursor yych = input[cursor] switch yych { case 'H': fallthrough case 'h': yyt5 = cursor goto yy56 default: goto yy47 } yy47: { continue } yy48: cursor++ goto yy47 yy49: yyaccept = 0 cursor++ marker = cursor yych = input[cursor] switch yych { case 'H': fallthrough case 'h': yyt5 = cursor goto yy56 case 'I': fallthrough case 'i': goto yy58 default: goto yy47 } yy50: yyaccept = 0 cursor++ marker = cursor yych = input[cursor] switch yych { case 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF: goto yy59 default: goto yy47 } yy51: yyaccept = 0 cursor++ marker = cursor yych = input[cursor] switch yych { case 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF: goto yy60 default: goto yy47 } yy52: yyaccept = 0 cursor++ marker = cursor yych = input[cursor] switch yych { case 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF: goto yy60 default: goto yy47 } yy53: yyaccept = 0 cursor++ marker = cursor yych = input[cursor] switch yych { case 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF: goto yy61 default: goto yy47 } yy54: yyaccept = 0 cursor++ marker = cursor yych = input[cursor] switch yych { case 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF: goto yy61 default: goto yy47 } yy55: yyaccept = 0 cursor++ marker = cursor yych = input[cursor] switch yych { case 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F: goto yy61 default: goto yy47 } yy56: cursor++ yych = input[cursor] switch yych { case 'I': fallthrough case 'i': yyt2 = yyt1 goto yy58 default: goto yy57 } yy57: cursor = marker if yyaccept == 0 { goto yy47 } else { yyt3 = -1 yyt4 = -1 goto yy63 } yy58: cursor++ yych = input[cursor] switch yych { case 'D': fallthrough case 'd': goto yy62 default: goto yy57 } yy59: cursor++ yych = input[cursor] switch yych { case 'H': fallthrough case 'h': yyt5 = cursor goto yy56 default: goto yy57 } yy60: cursor++ yych = input[cursor] switch yych { case 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF: goto yy59 default: goto yy57 } yy61: cursor++ yych = input[cursor] switch yych { case 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF: goto yy60 default: goto yy57 } yy62: yyaccept = 1 cursor++ marker = cursor yych = input[cursor] switch yych { case 0x00: fallthrough case 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, '\t': fallthrough case '\v', '\f', '\r', 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', 0x7F: if limit <= cursor { yyt3 = -1 yyt4 = -1 goto yy63 } yyt3 = cursor goto yy64 case 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF: yyt3 = cursor goto yy65 case 0xE0: yyt3 = cursor goto yy66 case 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF: yyt3 = cursor goto yy67 case 0xF0: yyt3 = cursor goto yy68 case 0xF1, 0xF2, 0xF3: yyt3 = cursor goto yy69 case 0xF4: yyt3 = cursor goto yy70 default: yyt3 = -1 yyt4 = -1 goto yy63 } yy63: yynmatch = 3 yypmatch[0] = yyt1 yypmatch[2] = yyt2 yypmatch[3] = yyt5 yypmatch[4] = yyt3 yypmatch[5] = yyt4 yypmatch[1] = cursor { // Extract submatch first var sub1, sub2 string start, end := yypmatch[0], yypmatch[1] if yypmatch[2] != -1 { sub1 = input[yypmatch[2]:yypmatch[3]] } if yypmatch[4] != -1 { sub2 = input[yypmatch[4]:yypmatch[5]] } case1 := start == 0 && end == limit && sub1 == "" && sub2 == "" // '^hid$' case2 := end == limit && sub1 == " " && sub2 == "" // ' hid$' case3 := start == 0 && sub1 == "" && sub2 == " " // '^hid ' case4 := sub1 == " " && sub2 == " " // ' hid ' if case1 || case2 || case3 || case4 { return true } continue } yy64: cursor++ yyt4 = cursor goto yy63 yy65: cursor++ yych = input[cursor] switch yych { case 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF: goto yy64 default: goto yy57 } yy66: cursor++ yych = input[cursor] switch yych { case 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF: goto yy65 default: goto yy57 } yy67: cursor++ yych = input[cursor] switch yych { case 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF: goto yy65 default: goto yy57 } yy68: cursor++ yych = input[cursor] switch yych { case 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF: goto yy67 default: goto yy57 } yy69: cursor++ yych = input[cursor] switch yych { case 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF: goto yy67 default: goto yy57 } yy70: cursor++ yych = input[cursor] switch yych { case 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F: goto yy67 default: goto yy57 } yy71: { return false } } } } // This one handle: `-ad-|hidden|banner|combx|comment|com-|contact|foot|footer|footnote|gdpr|masthead|media|meta|outbrain|promo|related|scroll|share|shoutbox|sidebar|skyscraper|sponsor|shopping|tags|tool|widget` func isNegativeClass2(input string) bool { var cursor, marker int input += string(rune(0)) // add terminating null limit := len(input) - 1 // limit points at the terminating null _ = marker for { { var yych byte yyaccept := 0 yych = input[cursor] switch yych { case '-': goto yy75 case 'B': fallthrough case 'b': goto yy76 case 'C': fallthrough case 'c': goto yy77 case 'F': fallthrough case 'f': goto yy78 case 'G': fallthrough case 'g': goto yy79 case 'H': fallthrough case 'h': goto yy80 case 'M': fallthrough case 'm': goto yy81 case 'O': fallthrough case 'o': goto yy82 case 'P': fallthrough case 'p': goto yy83 case 'R': fallthrough case 'r': goto yy84 case 'S': fallthrough case 's': goto yy85 case 'T': fallthrough case 't': goto yy86 case 'W': fallthrough case 'w': goto yy87 default: if limit <= cursor { goto yy172 } goto yy73 } yy73: cursor++ yy74: { continue } yy75: yyaccept = 0 cursor++ marker = cursor yych = input[cursor] switch yych { case 'A': fallthrough case 'a': goto yy88 default: goto yy74 } yy76: yyaccept = 0 cursor++ marker = cursor yych = input[cursor] switch yych { case 'A': fallthrough case 'a': goto yy90 default: goto yy74 } yy77: yyaccept = 0 cursor++ marker = cursor yych = input[cursor] switch yych { case 'O': fallthrough case 'o': goto yy91 default: goto yy74 } yy78: yyaccept = 0 cursor++ marker = cursor yych = input[cursor] switch yych { case 'O': fallthrough case 'o': goto yy92 default: goto yy74 } yy79: yyaccept = 0 cursor++ marker = cursor yych = input[cursor] switch yych { case 'D': fallthrough case 'd': goto yy93 default: goto yy74 } yy80: yyaccept = 0 cursor++ marker = cursor yych = input[cursor] switch yych { case 'I': fallthrough case 'i': goto yy94 default: goto yy74 } yy81: yyaccept = 0 cursor++ marker = cursor yych = input[cursor] switch yych { case 'A': fallthrough case 'a': goto yy95 case 'E': fallthrough case 'e': goto yy96 default: goto yy74 } yy82: yyaccept = 0 cursor++ marker = cursor yych = input[cursor] switch yych { case 'U': fallthrough case 'u': goto yy97 default: goto yy74 } yy83: yyaccept = 0 cursor++ marker = cursor yych = input[cursor] switch yych { case 'R': fallthrough case 'r': goto yy98 default: goto yy74 } yy84: yyaccept = 0 cursor++ marker = cursor yych = input[cursor] switch yych { case 'E': fallthrough case 'e': goto yy99 default: goto yy74 } yy85: yyaccept = 0 cursor++ marker = cursor yych = input[cursor] switch yych { case 'C': fallthrough case 'c': goto yy100 case 'H': fallthrough case 'h': goto yy101 case 'I': fallthrough case 'i': goto yy102 case 'K': fallthrough case 'k': goto yy103 case 'P': fallthrough case 'p': goto yy104 default: goto yy74 } yy86: yyaccept = 0 cursor++ marker = cursor yych = input[cursor] switch yych { case 'A': fallthrough case 'a': goto yy105 case 'O': fallthrough case 'o': goto yy106 default: goto yy74 } yy87: yyaccept = 0 cursor++ marker = cursor yych = input[cursor] switch yych { case 'I': fallthrough case 'i': goto yy107 default: goto yy74 } yy88: cursor++ yych = input[cursor] switch yych { case 'D': fallthrough case 'd': goto yy108 default: goto yy89 } yy89: cursor = marker if yyaccept == 0 { goto yy74 } else { goto yy131 } yy90: cursor++ yych = input[cursor] switch yych { case 'N': fallthrough case 'n': goto yy109 default: goto yy89 } yy91: cursor++ yych = input[cursor] switch yych { case 'M': fallthrough case 'm': goto yy110 case 'N': fallthrough case 'n': goto yy111 default: goto yy89 } yy92: cursor++ yych = input[cursor] switch yych { case 'O': fallthrough case 'o': goto yy112 default: goto yy89 } yy93: cursor++ yych = input[cursor] switch yych { case 'P': fallthrough case 'p': goto yy113 default: goto yy89 } yy94: cursor++ yych = input[cursor] switch yych { case 'D': fallthrough case 'd': goto yy114 default: goto yy89 } yy95: cursor++ yych = input[cursor] switch yych { case 'S': fallthrough case 's': goto yy115 default: goto yy89 } yy96: cursor++ yych = input[cursor] switch yych { case 'D': fallthrough case 'd': goto yy116 case 'T': fallthrough case 't': goto yy117 default: goto yy89 } yy97: cursor++ yych = input[cursor] switch yych { case 'T': fallthrough case 't': goto yy118 default: goto yy89 } yy98: cursor++ yych = input[cursor] switch yych { case 'O': fallthrough case 'o': goto yy119 default: goto yy89 } yy99: cursor++ yych = input[cursor] switch yych { case 'L': fallthrough case 'l': goto yy120 default: goto yy89 } yy100: cursor++ yych = input[cursor] switch yych { case 'R': fallthrough case 'r': goto yy121 default: goto yy89 } yy101: cursor++ yych = input[cursor] switch yych { case 'A': fallthrough case 'a': goto yy122 case 'O': fallthrough case 'o': goto yy123 default: goto yy89 } yy102: cursor++ yych = input[cursor] switch yych { case 'D': fallthrough case 'd': goto yy124 default: goto yy89 } yy103: cursor++ yych = input[cursor] switch yych { case 'Y': fallthrough case 'y': goto yy125 default: goto yy89 } yy104: cursor++ yych = input[cursor] switch yych { case 'O': fallthrough case 'o': goto yy126 default: goto yy89 } yy105: cursor++ yych = input[cursor] switch yych { case 'G': fallthrough case 'g': goto yy127 default: goto yy89 } yy106: cursor++ yych = input[cursor] switch yych { case 'O': fallthrough case 'o': goto yy128 default: goto yy89 } yy107: cursor++ yych = input[cursor] switch yych { case 'D': fallthrough case 'd': goto yy129 default: goto yy89 } yy108: cursor++ yych = input[cursor] switch yych { case '-': goto yy130 default: goto yy89 } yy109: cursor++ yych = input[cursor] switch yych { case 'N': fallthrough case 'n': goto yy132 default: goto yy89 } yy110: cursor++ yych = input[cursor] switch yych { case '-': goto yy130 case 'B': fallthrough case 'b': goto yy133 case 'M': fallthrough case 'm': goto yy134 default: goto yy89 } yy111: cursor++ yych = input[cursor] switch yych { case 'T': fallthrough case 't': goto yy135 default: goto yy89 } yy112: cursor++ yych = input[cursor] switch yych { case 'T': fallthrough case 't': goto yy136 default: goto yy89 } yy113: cursor++ yych = input[cursor] switch yych { case 'R': fallthrough case 'r': goto yy130 default: goto yy89 } yy114: cursor++ yych = input[cursor] switch yych { case 'D': fallthrough case 'd': goto yy137 default: goto yy89 } yy115: cursor++ yych = input[cursor] switch yych { case 'T': fallthrough case 't': goto yy138 default: goto yy89 } yy116: cursor++ yych = input[cursor] switch yych { case 'I': fallthrough case 'i': goto yy117 default: goto yy89 } yy117: cursor++ yych = input[cursor] switch yych { case 'A': fallthrough case 'a': goto yy130 default: goto yy89 } yy118: cursor++ yych = input[cursor] switch yych { case 'B': fallthrough case 'b': goto yy139 default: goto yy89 } yy119: cursor++ yych = input[cursor] switch yych { case 'M': fallthrough case 'm': goto yy140 default: goto yy89 } yy120: cursor++ yych = input[cursor] switch yych { case 'A': fallthrough case 'a': goto yy141 default: goto yy89 } yy121: cursor++ yych = input[cursor] switch yych { case 'O': fallthrough case 'o': goto yy142 default: goto yy89 } yy122: cursor++ yych = input[cursor] switch yych { case 'R': fallthrough case 'r': goto yy143 default: goto yy89 } yy123: cursor++ yych = input[cursor] switch yych { case 'P': fallthrough case 'p': goto yy144 case 'U': fallthrough case 'u': goto yy145 default: goto yy89 } yy124: cursor++ yych = input[cursor] switch yych { case 'E': fallthrough case 'e': goto yy146 default: goto yy89 } yy125: cursor++ yych = input[cursor] switch yych { case 'S': fallthrough case 's': goto yy147 default: goto yy89 } yy126: cursor++ yych = input[cursor] switch yych { case 'N': fallthrough case 'n': goto yy148 default: goto yy89 } yy127: cursor++ yych = input[cursor] switch yych { case 'S': fallthrough case 's': goto yy130 default: goto yy89 } yy128: cursor++ yych = input[cursor] switch yych { case 'L': fallthrough case 'l': goto yy130 default: goto yy89 } yy129: cursor++ yych = input[cursor] switch yych { case 'G': fallthrough case 'g': goto yy149 default: goto yy89 } yy130: cursor++ yy131: { return true } yy132: cursor++ yych = input[cursor] switch yych { case 'E': fallthrough case 'e': goto yy113 default: goto yy89 } yy133: cursor++ yych = input[cursor] switch yych { case 'X': fallthrough case 'x': goto yy130 default: goto yy89 } yy134: cursor++ yych = input[cursor] switch yych { case 'E': fallthrough case 'e': goto yy150 default: goto yy89 } yy135: cursor++ yych = input[cursor] switch yych { case 'A': fallthrough case 'a': goto yy151 default: goto yy89 } yy136: yyaccept = 1 cursor++ marker = cursor yych = input[cursor] switch yych { case 'E': fallthrough case 'e': goto yy113 case 'N': fallthrough case 'n': goto yy152 default: goto yy131 } yy137: cursor++ yych = input[cursor] switch yych { case 'E': fallthrough case 'e': goto yy153 default: goto yy89 } yy138: cursor++ yych = input[cursor] switch yych { case 'H': fallthrough case 'h': goto yy154 default: goto yy89 } yy139: cursor++ yych = input[cursor] switch yych { case 'R': fallthrough case 'r': goto yy155 default: goto yy89 } yy140: cursor++ yych = input[cursor] switch yych { case 'O': fallthrough case 'o': goto yy130 default: goto yy89 } yy141: cursor++ yych = input[cursor] switch yych { case 'T': fallthrough case 't': goto yy156 default: goto yy89 } yy142: cursor++ yych = input[cursor] switch yych { case 'L': fallthrough case 'l': goto yy128 default: goto yy89 } yy143: cursor++ yych = input[cursor] switch yych { case 'E': fallthrough case 'e': goto yy130 default: goto yy89 } yy144: cursor++ yych = input[cursor] switch yych { case 'P': fallthrough case 'p': goto yy157 default: goto yy89 } yy145: cursor++ yych = input[cursor] switch yych { case 'T': fallthrough case 't': goto yy158 default: goto yy89 } yy146: cursor++ yych = input[cursor] switch yych { case 'B': fallthrough case 'b': goto yy159 default: goto yy89 } yy147: cursor++ yych = input[cursor] switch yych { case 'C': fallthrough case 'c': goto yy160 default: goto yy89 } yy148: cursor++ yych = input[cursor] switch yych { case 'S': fallthrough case 's': goto yy161 default: goto yy89 } yy149: cursor++ yych = input[cursor] switch yych { case 'E': fallthrough case 'e': goto yy162 default: goto yy89 } yy150: cursor++ yych = input[cursor] switch yych { case 'N': fallthrough case 'n': goto yy162 default: goto yy89 } yy151: cursor++ yych = input[cursor] switch yych { case 'C': fallthrough case 'c': goto yy162 default: goto yy89 } yy152: cursor++ yych = input[cursor] switch yych { case 'O': fallthrough case 'o': goto yy163 default: goto yy89 } yy153: cursor++ yych = input[cursor] switch yych { case 'N': fallthrough case 'n': goto yy130 default: goto yy89 } yy154: cursor++ yych = input[cursor] switch yych { case 'E': fallthrough case 'e': goto yy164 default: goto yy89 } yy155: cursor++ yych = input[cursor] switch yych { case 'A': fallthrough case 'a': goto yy165 default: goto yy89 } yy156: cursor++ yych = input[cursor] switch yych { case 'E': fallthrough case 'e': goto yy166 default: goto yy89 } yy157: cursor++ yych = input[cursor] switch yych { case 'I': fallthrough case 'i': goto yy167 default: goto yy89 } yy158: cursor++ yych = input[cursor] switch yych { case 'B': fallthrough case 'b': goto yy168 default: goto yy89 } yy159: cursor++ yych = input[cursor] switch yych { case 'A': fallthrough case 'a': goto yy113 default: goto yy89 } yy160: cursor++ yych = input[cursor] switch yych { case 'R': fallthrough case 'r': goto yy169 default: goto yy89 } yy161: cursor++ yych = input[cursor] switch yych { case 'O': fallthrough case 'o': goto yy113 default: goto yy89 } yy162: cursor++ yych = input[cursor] switch yych { case 'T': fallthrough case 't': goto yy130 default: goto yy89 } yy163: cursor++ yych = input[cursor] switch yych { case 'T': fallthrough case 't': goto yy143 default: goto yy89 } yy164: cursor++ yych = input[cursor] switch yych { case 'A': fallthrough case 'a': goto yy166 default: goto yy89 } yy165: cursor++ yych = input[cursor] switch yych { case 'I': fallthrough case 'i': goto yy153 default: goto yy89 } yy166: cursor++ yych = input[cursor] switch yych { case 'D': fallthrough case 'd': goto yy130 default: goto yy89 } yy167: cursor++ yych = input[cursor] switch yych { case 'N': fallthrough case 'n': goto yy170 default: goto yy89 } yy168: cursor++ yych = input[cursor] switch yych { case 'O': fallthrough case 'o': goto yy133 default: goto yy89 } yy169: cursor++ yych = input[cursor] switch yych { case 'A': fallthrough case 'a': goto yy171 default: goto yy89 } yy170: cursor++ yych = input[cursor] switch yych { case 'G': fallthrough case 'g': goto yy130 default: goto yy89 } yy171: cursor++ yych = input[cursor] switch yych { case 'P': fallthrough case 'p': goto yy132 default: goto yy89 } yy172: { return false } } } }