<gh_stars>1-10
# Generated by the Waxeye Parser Generator - version 0.8.1
# www.waxeye.org

from waxeye import Edge, State, FA, WaxeyeParser

class Parser (WaxeyeParser):
    start = 0
    eof_check = True
    automata = [FA("record", [State([Edge(10, 1, False)], False),
            State([Edge(29, 2, False)], False),
            State([Edge(47, 3, False)], False),
            State([Edge(3, 4, False)], False),
            State([Edge(9, 5, False)], False),
            State([Edge(47, 6, False)], False),
            State([Edge(24, 7, False)], False),
            State([Edge(2, 8, False)], False),
            State([Edge(47, 9, False)], True),
            State([], True)], FA.LEFT),
        FA("component", [State([Edge(47, 1, False)], False),
            State([Edge(24, 2, False)], False),
            State([], True)], FA.LEFT),
        FA("componentsR", [State([Edge(1, 1, False)], False),
            State([Edge(1, 1, False)], True)], FA.LEFT),
        FA("optionsOpt", [State([Edge(4, 1, False)], True),
            State([], True)], FA.LEFT),
        FA("optionsR", [State([Edge(34, 1, False)], False),
            State([Edge(5, 2, False)], False),
            State([Edge(35, 3, False)], False),
            State([Edge(47, 4, False)], False),
            State([], True)], FA.LEFT),
        FA("optionsList", [State([Edge(6, 1, False)], False),
            State([Edge(14, 2, False)], False),
            State([], True)], FA.LEFT),
        FA("optionR", [State([Edge(30, 1, False)], False),
            State([Edge(36, 2, False)], False),
            State([Edge(12, 3, False)], False),
            State([], True)], FA.LEFT),
        FA("uriSchema", [State([Edge(46, 1, False)], False),
            State([Edge(16, 2, False)], False),
            State([], True)], FA.LEFT),
        FA("genericURI", [State([Edge(7, 1, False)], False),
            State([Edge(39, 2, False)], False),
            State([Edge(28, 3, False)], False),
            State([], True)], FA.LEFT),
        FA("uriR", [State([Edge(22, 1, False),
                Edge(8, 1, False)], False),
            State([], True)], FA.LEFT),
        FA("commenterROpt", [State([Edge(18, 1, False)], True),
            State([], True)], FA.LEFT),
        FA("optionValueSegment", [State([Edge(46, 1, False),
                Edge(33, 1, False),
                Edge(41, 1, False),
                Edge(30, 1, False),
                Edge(31, 1, False),
                Edge(29, 1, False),
                Edge(38, 1, False),
                Edge(39, 1, False)], False),
            State([], True)], FA.LEFT),
        FA("optionValue", [State([Edge(11, 1, False)], False),
            State([Edge(11, 1, False)], True)], FA.LEFT),
        FA("tickEnclosedString", [State([Edge(19, 1, False),
                Edge(20, 1, False)], False),
            State([], True)], FA.LEFT),
        FA("rest_options_with_delF", [State([Edge(15, 0, False)], True)], FA.LEFT),
        FA("rest_option_with_delF", [State([Edge(40, 1, False)], False),
            State([Edge(6, 2, False)], False),
            State([], True)], FA.LEFT),
        FA("rest_words_with_delF", [State([Edge(17, 0, False)], True)], FA.LEFT),
        FA("rest_word_with_delF", [State([Edge(38, 1, False)], False),
            State([Edge(46, 2, False)], False),
            State([], True)], FA.LEFT),
        FA("commenterR", [State([Edge(37, 1, False)], False),
            State([Edge(47, 2, False)], True),
            State([], True)], FA.LEFT),
        FA("singleTickEnclosedString", [State([Edge(42, 1, False)], False),
            State([Edge(26, 2, False)], False),
            State([Edge(42, 3, False)], False),
            State([], True)], FA.LEFT),
        FA("doubleTickEnclosedString", [State([Edge(43, 1, False)], False),
            State([Edge(26, 2, False)], False),
            State([Edge(43, 3, False)], False),
            State([], True)], FA.LEFT),
        FA("enclosedString", [State([Edge(34, 1, False)], False),
            State([Edge(13, 2, False)], False),
            State([Edge(35, 3, False)], False),
            State([], True)], FA.LEFT),
        FA("cdromURI", [State([Edge(31, 1, False)], False),
            State([Edge(39, 2, False)], False),
            State([Edge(21, 3, False)], False),
            State([Edge(28, 4, False)], False),
            State([], True)], FA.LEFT),
        FA("wordWithDashSegment", [State([Edge(46, 1, False),
                Edge(41, 1, False)], False),
            State([], True)], FA.LEFT),
        FA("wordWithDash", [State([Edge(23, 1, False)], False),
            State([Edge(23, 1, False)], True)], FA.LEFT),
        FA("nonSquareBracketStringSegment", [State([Edge(45, 1, False),
                Edge(11, 1, False),
                Edge(36, 1, False)], False),
            State([], True)], FA.LEFT),
        FA("nonSquareBracketString", [State([Edge(25, 1, False)], False),
            State([Edge(25, 1, False)], True)], FA.LEFT),
        FA("nonSpaceStringSegment", [State([Edge(25, 1, False),
                Edge(35, 1, False)], False),
            State([], True)], FA.LEFT),
        FA("nonSpaceString", [State([Edge(27, 1, False)], False),
            State([Edge(27, 1, False)], True)], FA.LEFT),
        FA("typeR", [State([Edge(["D", "d"], 1, False)], False),
            State([Edge(["E", "e"], 2, False)], False),
            State([Edge(["B", "b"], 3, False)], False),
            State([Edge(["-"], 4, False)], True),
            State([Edge(["S", "s"], 5, False)], False),
            State([Edge(["R", "r"], 6, False)], False),
            State([Edge(["C", "c"], 7, False)], False),
            State([], True)], FA.LEFT),
        FA("optionName", [State([Edge(["A", "a"], 1, False),
                Edge(["L", "l"], 5, False),
                Edge(["T", "t"], 8, False),
                Edge(["P", "p"], 13, False),
                Edge(["B", "b"], 18, False),
                Edge(["V", "v"], 24, False),
                Edge(["A", "a"], 38, False),
                Edge(["T", "t"], 74, False),
                Edge(["S", "s"], 80, False),
                Edge(["C", "c"], 88, False),
                Edge(["V", "v"], 104, False),
                Edge(["C", "c"], 118, False),
                Edge(["I", "i"], 127, False),
                Edge(["D", "d"], 140, False)], False),
            State([Edge(["R", "r"], 2, False)], False),
            State([Edge(["C", "c"], 3, False)], False),
            State([Edge(["H", "h"], 4, False)], False),
            State([], True),
            State([Edge(["A", "a"], 6, False)], False),
            State([Edge(["N", "n"], 7, False)], False),
            State([Edge(["G", "g"], 4, False)], False),
            State([Edge(["A", "a"], 9, False)], False),
            State([Edge(["R", "r"], 10, False)], False),
            State([Edge(["G", "g"], 11, False)], False),
            State([Edge(["E", "e"], 12, False)], False),
            State([Edge(["T", "t"], 4, False)], False),
            State([Edge(["D", "d"], 14, False)], False),
            State([Edge(["I", "i"], 15, False)], False),
            State([Edge(["F", "f"], 16, False)], False),
            State([Edge(["F", "f"], 17, False)], False),
            State([Edge(["S", "s"], 4, False)], False),
            State([Edge(["Y", "y"], 19, False)], False),
            State([Edge(["-"], 20, False)], False),
            State([Edge(["H", "h"], 21, False)], False),
            State([Edge(["A", "a"], 22, False)], False),
            State([Edge(["S", "s"], 23, False)], False),
            State([Edge(["H", "h"], 4, False)], False),
            State([Edge(["A", "a"], 25, False)], False),
            State([Edge(["L", "l"], 26, False)], False),
            State([Edge(["I", "i"], 27, False)], False),
            State([Edge(["D", "d"], 28, False)], False),
            State([Edge(["-"], 29, False)], False),
            State([Edge(["U", "u"], 30, False)], False),
            State([Edge(["N", "n"], 31, False)], False),
            State([Edge(["T", "t"], 32, False)], False),
            State([Edge(["I", "i"], 33, False)], False),
            State([Edge(["L", "l"], 34, False)], False),
            State([Edge(["-"], 35, False)], False),
            State([Edge(["M", "m"], 36, False)], False),
            State([Edge(["A", "a"], 37, False)], False),
            State([Edge(["X", "x"], 4, False)], False),
            State([Edge(["L", "l"], 39, False)], False),
            State([Edge(["L", "l"], 40, False)], False),
            State([Edge(["O", "o"], 41, False)], False),
            State([Edge(["W", "w"], 42, False)], False),
            State([Edge(["-"], 43, False)], False),
            State([Edge(["D", "d"], 44, False),
                Edge(["W", "w"], 64, False),
                Edge(["I", "i"], 67, False)], False),
            State([Edge(["O", "o"], 45, False)], False),
            State([Edge(["W", "w"], 46, False)], False),
            State([Edge(["N", "n"], 47, False)], False),
            State([Edge(["G", "g"], 48, False)], False),
            State([Edge(["R", "r"], 49, False)], False),
            State([Edge(["A", "a"], 50, False)], False),
            State([Edge(["D", "d"], 51, False)], False),
            State([Edge(["E", "e"], 52, False)], False),
            State([Edge(["-"], 53, False)], False),
            State([Edge(["T", "t"], 54, False)], False),
            State([Edge(["O", "o"], 55, False)], False),
            State([Edge(["-"], 56, False)], False),
            State([Edge(["I", "i"], 57, False)], False),
            State([Edge(["N", "n"], 58, False)], False),
            State([Edge(["S", "s"], 59, False)], False),
            State([Edge(["E", "e"], 60, False)], False),
            State([Edge(["C", "c"], 61, False)], False),
            State([Edge(["U", "u"], 62, False)], False),
            State([Edge(["R", "r"], 63, False)], False),
            State([Edge(["E", "e"], 4, False)], False),
            State([Edge(["E", "e"], 65, False)], False),
            State([Edge(["A", "a"], 66, False)], False),
            State([Edge(["K", "k"], 4, False)], False),
            State([Edge(["N", "n"], 68, False)], False),
            State([Edge(["S", "s"], 69, False)], False),
            State([Edge(["E", "e"], 70, False)], False),
            State([Edge(["C", "c"], 71, False)], False),
            State([Edge(["U", "u"], 72, False)], False),
            State([Edge(["R", "r"], 73, False)], False),
            State([Edge(["E", "e"], 4, False)], False),
            State([Edge(["R", "r"], 75, False)], False),
            State([Edge(["U", "u"], 76, False)], False),
            State([Edge(["S", "s"], 77, False)], False),
            State([Edge(["T", "t"], 78, False)], False),
            State([Edge(["E", "e"], 79, False)], False),
            State([Edge(["D", "d"], 4, False)], False),
            State([Edge(["I", "i"], 81, False)], False),
            State([Edge(["G", "g"], 82, False)], False),
            State([Edge(["N", "n"], 83, False)], False),
            State([Edge(["E", "e"], 84, False)], False),
            State([Edge(["D", "d"], 85, False)], False),
            State([Edge(["-"], 86, False)], False),
            State([Edge(["B", "b"], 87, False)], False),
            State([Edge(["Y", "y"], 4, False)], False),
            State([Edge(["H", "h"], 89, False)], False),
            State([Edge(["E", "e"], 90, False)], False),
            State([Edge(["C", "c"], 91, False)], False),
            State([Edge(["K", "k"], 92, False)], False),
            State([Edge(["-"], 93, False)], False),
            State([Edge(["V", "v"], 94, False)], False),
            State([Edge(["A", "a"], 95, False)], False),
            State([Edge(["L", "l"], 96, False)], False),
            State([Edge(["I", "i"], 97, False)], False),
            State([Edge(["D", "d"], 98, False)], False),
            State([Edge(["-"], 99, False)], False),
            State([Edge(["U", "u"], 100, False)], False),
            State([Edge(["N", "n"], 101, False)], False),
            State([Edge(["T", "t"], 102, False)], False),
            State([Edge(["I", "i"], 103, False)], False),
            State([Edge(["L", "l"], 4, False)], False),
            State([Edge(["A", "a"], 105, False)], False),
            State([Edge(["L", "l"], 106, False)], False),
            State([Edge(["I", "i"], 107, False)], False),
            State([Edge(["D", "d"], 108, False)], False),
            State([Edge(["-"], 109, False)], False),
            State([Edge(["U", "u"], 110, False)], False),
            State([Edge(["N", "n"], 111, False)], False),
            State([Edge(["T", "t"], 112, False)], False),
            State([Edge(["I", "i"], 113, False)], False),
            State([Edge(["L", "l"], 114, False)], False),
            State([Edge(["-"], 115, False)], False),
            State([Edge(["M", "m"], 116, False)], False),
            State([Edge(["I", "i"], 117, False)], False),
            State([Edge(["N", "n"], 4, False)], False),
            State([Edge(["H", "h"], 119, False)], False),
            State([Edge(["E", "e"], 120, False)], False),
            State([Edge(["C", "c"], 121, False)], False),
            State([Edge(["K", "k"], 122, False)], False),
            State([Edge(["-"], 123, False)], False),
            State([Edge(["D", "d"], 124, False)], False),
            State([Edge(["A", "a"], 125, False)], False),
            State([Edge(["T", "t"], 126, False)], False),
            State([Edge(["E", "e"], 4, False)], False),
            State([Edge(["N", "n"], 128, False)], False),
            State([Edge(["R", "r"], 129, False)], False),
            State([Edge(["E", "e"], 130, False)], False),
            State([Edge(["L", "l"], 131, False)], False),
            State([Edge(["E", "e"], 132, False)], False),
            State([Edge(["A", "a"], 133, False)], False),
            State([Edge(["S", "s"], 134, False)], False),
            State([Edge(["E", "e"], 135, False)], False),
            State([Edge(["-"], 136, False)], False),
            State([Edge(["P", "p"], 137, False)], False),
            State([Edge(["A", "a"], 138, False)], False),
            State([Edge(["T", "t"], 139, False)], False),
            State([Edge(["H", "h"], 4, False)], False),
            State([Edge(["A", "a"], 141, False)], False),
            State([Edge(["T", "t"], 142, False)], False),
            State([Edge(["E", "e"], 143, False)], False),
            State([Edge(["-"], 144, False)], False),
            State([Edge(["M", "m"], 145, False)], False),
            State([Edge(["A", "a"], 146, False)], False),
            State([Edge(["X", "x"], 147, False)], False),
            State([Edge(["-"], 148, False)], False),
            State([Edge(["F", "f"], 149, False)], False),
            State([Edge(["U", "u"], 150, False)], False),
            State([Edge(["T", "t"], 151, False)], False),
            State([Edge(["U", "u"], 152, False)], False),
            State([Edge(["R", "r"], 153, False)], False),
            State([Edge(["E", "e"], 4, False)], False)], FA.LEFT),
        FA("cdromSchema", [State([Edge(["C", "c"], 1, False)], False),
            State([Edge(["D", "d"], 2, False)], False),
            State([Edge(["R", "r"], 3, False)], False),
            State([Edge(["O", "o"], 4, False)], False),
            State([Edge(["M", "m"], 5, False)], False),
            State([Edge([":"], 6, False)], False),
            State([], True)], FA.LEFT),
        FA("wS", [State([Edge([(9, 13), " "], 1, False)], False),
            State([], True)], FA.LEFT),
        FA("punctuationAllowedInOptionValue", [State([Edge([(46, 47)], 1, False)], False),
            State([], True)], FA.LEFT),
        FA("optionsStart", [State([Edge("[", 1, False)], False),
            State([], True)], FA.LEFT),
        FA("optionsEnd", [State([Edge("]", 1, False)], False),
            State([], True)], FA.LEFT),
        FA("optionNameValueSeparator", [State([Edge("=", 1, False)], False),
            State([], True)], FA.LEFT),
        FA("commentMarker", [State([Edge("#", 1, False)], False),
            State([], True)], FA.LEFT),
        FA("plus", [State([Edge("+", 1, False)], False),
            State([], True)], FA.LEFT),
        FA("colon", [State([Edge(":", 1, False)], False),
            State([], True)], FA.LEFT),
        FA("optionsSeparator", [State([Edge(",", 1, False)], False),
            State([], True)], FA.LEFT),
        FA("dash", [State([Edge("-", 1, False)], False),
            State([], True)], FA.LEFT),
        FA("singleTick", [State([Edge("\'", 1, False)], False),
            State([], True)], FA.LEFT),
        FA("doubleTick", [State([Edge("\"", 1, False)], False),
            State([], True)], FA.LEFT),
        FA("wordChar", [State([Edge([(48, 57), (65, 90), "_", (97, 122)], 1, False)], False),
            State([], True)], FA.LEFT),
        FA("nonWhitespaceNonOptionValueNonSquareRightBracketNonEq", [State([Edge(48, 1, False)], False),
            State([], True)], FA.LEFT),
        FA("word", [State([Edge(44, 1, False)], False),
            State([Edge(44, 1, False)], True)], FA.LEFT),
        FA("wSS", [State([Edge(32, 1, False)], False),
            State([Edge(32, 1, False)], True)], FA.LEFT),
        FA("", [State([Edge([(9, 13), " ", (34, 35), "\'", (43, 58), "=", (65, 93), "_", (97, 122)], 1, False)], False),
            State([], True)], FA.NEG)]

    def __init__(self):
        WaxeyeParser.__init__(self, Parser.start, Parser.eof_check, Parser.automata)

