local execute = (function ()
return function (self, terminal_nodes)
  local max_state = self.max_state
  local max_terminal_symbol = self.max_terminal_symbol
  local actions = self.actions
  local gotos = self.gotos
  local heads = self.heads
  local sizes = self.sizes
  local reduce_to_semantic_action = self.reduce_to_semantic_action
  local reduce_to_attribute_actions = self.reduce_to_attribute_actions
  local stack = { 1 } -- start state
  local nodes = {}

  for i = 1, #terminal_nodes do
    local node = terminal_nodes[i]
    local symbol = node[0]
    while true do
      local n1 = #stack
      local n2 = #nodes
      local state = stack[n1]

      local action
      if symbol <= max_terminal_symbol then
        action = actions[state][symbol]
      else
        action = gotos[state][symbol - max_terminal_symbol]
      end

      if action then
        if action <= max_state then -- shift
          stack[n1 + 1] = action
          nodes[n2 + 1] = node
          break
        else
          local head = heads[action]
          if head then -- reduce
            local n = sizes[action]
            for j = n1 - n + 1, n1 do
              stack[j] = nil
            end

            local reduced_nodes = {}
            for j = n2 - n + 1, n2 do
              reduced_nodes[#reduced_nodes + 1] = nodes[j]
              nodes[j] = nil
            end

            local node
            local semantic_action = reduce_to_semantic_action[action]
            if semantic_action then
              local code = semantic_action[1]
              if code == 1 then -- collapse node
                local index = semantic_action[2]
                local indices = semantic_action[3]
                if index > 0 then
                  node = reduced_nodes[index]
                else
                  node = { [0] = -index }
                end
                for j = 1, #indices do
                  local index = indices[j]
                  if index > 0 then
                    node[#node + 1] = reduced_nodes[index]
                  else
                    node[j] = { [0] = -index }
                  end
                end
              elseif code == 2 then -- create node
                local indices = semantic_action[2]
                node = { [0] = head }
                for j = 1, #indices do
                  local index = indices[j]
                  if index > 0 then
                    node[j] = reduced_nodes[index]
                  else
                    node[j] = { [0] = -index }
                  end
                end
              end
            else
              node = { [0] = head }
              for j = 1, n do
                node[j] = reduced_nodes[j]
              end
            end

            local attribute_actions = reduce_to_attribute_actions[action]
            if attribute_actions then
              for i = 1, #attribute_actions do
                local attribute_action = attribute_actions[i]
                local code = attribute_action[1]
                if code == 1 then -- set attribute
                  node[attribute_action[2]] = attribute_action[3]
                elseif code == 2 then -- set child attribute
                  reduced_nodes[attribute_action[2]][attribute_action[3]] = attribute_action[4]
                end
              end
            end

            local n1 = #stack
            local n2 = #nodes
            local state = stack[n1]
            stack[n1 + 1] = gotos[state][head - max_terminal_symbol]
            nodes[n2 + 1] = node
          else -- accept
            stack[n1] = nil
            local accepted_node = nodes[n2]
            nodes[n2] = nil
            return accepted_node
          end
        end
      else
        return nil, "parser error", node.i
      end
    end
  end
end
end)()
local metatable = { __call = execute }
local _ = {}
_[1] = {nil,13,18,19,20,21,22,23,24,25,26,27,28,nil,nil,nil,nil,nil,7,8,11,12,nil,16,17}
_[2] = {72}
_[3] = {73}
_[4] = {[1]=74,[14]=29,[23]=74}
_[5] = {76,13,18,19,20,21,22,23,24,25,26,27,28,76,nil,nil,nil,nil,7,8,11,12,76,16,17}
_[6] = {78,78,78,78,78,78,78,78,78,78,78,78,78,78,32,33,34,35,78,78,78,78,78,78,78}
_[7] = {86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86}
_[8] = {87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87}
_[9] = {88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88}
_[10] = {89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89}
_[11] = {92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92}
_[12] = {93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93}
_[13] = {94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94}
_[14] = {[2]=44,[3]=18,[4]=19,[5]=20,[6]=21,[7]=22,[8]=23,[9]=24,[10]=25,[11]=26,[12]=27,[13]=28,[29]=42,[30]=45,[31]=46,[32]=40}
_[15] = {95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,nil,nil,nil,95,95,95,95,95}
_[16] = {96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,nil,nil,nil,96,96,96,96,96}
_[17] = {97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,nil,nil,nil,97,97,97,97,97}
_[18] = {98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,nil,nil,nil,98,98,98,98,98}
_[19] = {99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,nil,nil,nil,99,99,99,99,99}
_[20] = {100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,nil,nil,nil,100,100,100,100,100}
_[21] = {101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,nil,nil,nil,101,101,101,101,101}
_[22] = {102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,nil,nil,nil,102,102,102,102,102}
_[23] = {103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,nil,nil,nil,103,103,103,103,103}
_[24] = {104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,nil,nil,nil,104,104,104,104,104}
_[25] = {105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,nil,nil,nil,105,105,105,105,105}
_[26] = {[1]=77,[14]=77,[23]=77}
_[27] = {79,79,79,79,79,79,79,79,79,79,79,79,79,79,nil,nil,nil,nil,79,79,79,79,79,79,79}
_[28] = {80,80,80,80,80,80,80,80,80,80,80,80,80,80,nil,nil,nil,nil,80,80,80,80,80,80,80}
_[29] = {81,81,81,81,81,81,81,81,81,81,81,81,81,81,nil,nil,nil,nil,81,81,81,81,81,81,81}
_[30] = {82,82,82,82,82,82,82,82,82,82,82,82,82,82,nil,nil,nil,nil,82,82,82,82,82,82,82}
_[31] = {[26]=51}
_[32] = {[23]=52}
_[33] = {[23]=53}
_[34] = {[33]=54}
_[35] = {[2]=44,[3]=18,[4]=19,[5]=20,[6]=21,[7]=22,[8]=23,[9]=24,[10]=25,[11]=26,[12]=27,[13]=28,[29]=42,[30]=45,[31]=46,[32]=56,[33]=110}
_[36] = {[2]=116,[3]=116,[4]=116,[5]=116,[6]=116,[7]=116,[8]=116,[9]=116,[10]=116,[11]=116,[12]=116,[13]=116,[29]=116,[30]=116,[31]=116,[32]=116,[33]=116}
_[37] = {[2]=117,[3]=117,[4]=117,[5]=117,[6]=117,[7]=117,[8]=117,[9]=117,[10]=117,[11]=117,[12]=117,[13]=117,[29]=117,[30]=117,[31]=117,[32]=117,[33]=117}
_[38] = {[2]=118,[3]=118,[4]=118,[5]=118,[6]=118,[7]=118,[8]=118,[9]=118,[10]=118,[11]=118,[12]=118,[13]=118,[29]=118,[30]=118,[31]=118,[32]=118,[33]=118}
_[39] = {[2]=119,[3]=119,[4]=119,[5]=119,[6]=119,[7]=119,[8]=119,[9]=119,[10]=119,[11]=119,[12]=119,[13]=119,[29]=119,[30]=119,[31]=119,[32]=119,[33]=119}
_[40] = {[2]=120,[3]=120,[4]=120,[5]=120,[6]=120,[7]=120,[8]=120,[9]=120,[10]=120,[11]=120,[12]=120,[13]=120,[29]=120,[30]=120,[31]=120,[32]=120,[33]=120}
_[41] = {[2]=121,[3]=121,[4]=121,[5]=121,[6]=121,[7]=121,[8]=121,[9]=121,[10]=121,[11]=121,[12]=121,[13]=121,[29]=121,[30]=121,[31]=121,[32]=121,[33]=121}
_[42] = {[2]=122,[3]=122,[4]=122,[5]=122,[6]=122,[7]=122,[8]=122,[9]=122,[10]=122,[11]=122,[12]=122,[13]=122,[29]=122,[30]=122,[31]=122,[32]=122,[33]=122}
_[43] = {[2]=123,[3]=123,[4]=123,[5]=123,[6]=123,[7]=123,[8]=123,[9]=123,[10]=123,[11]=123,[12]=123,[13]=123,[29]=123,[30]=123,[31]=123,[32]=123,[33]=123}
_[44] = {[2]=124,[3]=124,[4]=124,[5]=124,[6]=124,[7]=124,[8]=124,[9]=124,[10]=124,[11]=124,[12]=124,[13]=124,[29]=124,[30]=124,[31]=124,[32]=124,[33]=124}
_[45] = {[33]=59}
_[46] = {[1]=75,[23]=75}
_[47] = {[27]=61,[28]=60}
_[48] = {90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90}
_[49] = {91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91}
_[50] = {106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106}
_[51] = {[33]=111}
_[52] = {[2]=44,[3]=18,[4]=19,[5]=20,[6]=21,[7]=22,[8]=23,[9]=24,[10]=25,[11]=26,[12]=27,[13]=28,[29]=42,[30]=45,[31]=46,[32]=40,[33]=116}
_[53] = {[33]=113}
_[54] = {[2]=44,[3]=18,[4]=19,[5]=20,[6]=21,[7]=22,[8]=23,[9]=24,[10]=25,[11]=26,[12]=27,[13]=28,[29]=42,[30]=45,[31]=46,[32]=64,[33]=117}
_[55] = {107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107}
_[56] = {83,83,83,83,83,83,83,83,83,83,83,83,83,83,nil,nil,nil,nil,83,83,83,83,83,83,83}
_[57] = {[26]=66,[28]=65}
_[58] = {[2]=44,[3]=18,[4]=19,[5]=20,[6]=21,[7]=22,[8]=23,[9]=24,[10]=25,[11]=26,[12]=27,[13]=28,[29]=42,[30]=45,[31]=46,[32]=40,[33]=108}
_[59] = {[33]=114}
_[60] = {84,84,84,84,84,84,84,84,84,84,84,84,84,84,nil,nil,nil,nil,84,84,84,84,84,84,84}
_[61] = {[28]=70}
_[62] = {[33]=112}
_[63] = {[33]=109}
_[64] = {85,85,85,85,85,85,85,85,85,85,85,85,85,85,nil,nil,nil,nil,85,85,85,85,85,85,85}
_[65] = {[33]=115}
_[66] = {_[1],_[2],_[3],_[4],_[5],_[6],_[7],_[8],_[9],_[10],_[1],_[1],_[11],_[12],_[13],_[14],_[14],_[15],_[16],_[17],_[18],_[19],_[20],_[21],_[22],_[23],_[24],_[25],_[1],_[26],_[27],_[28],_[29],_[30],_[31],_[32],_[33],_[34],_[35],_[36],_[37],_[38],_[39],_[40],_[41],_[42],_[43],_[44],_[45],_[46],_[47],_[48],_[49],_[50],_[51],_[52],_[53],_[54],_[55],_[56],_[57],_[58],_[59],_[52],_[60],_[61],_[62],_[63],_[58],_[64],_[65]}
_[67] = {nil,2,3,4,5,nil,6,9,14,15,10}
_[68] = {}
_[69] = {nil,nil,nil,30,5,nil,6,9,14,15,10}
_[70] = {[6]=31}
_[71] = {nil,nil,36,4,5,nil,6,9,14,15,10}
_[72] = {nil,nil,37,4,5,nil,6,9,14,15,10}
_[73] = {[9]=47,[10]=48,[13]=38,[15]=39,[16]=41,[17]=43}
_[74] = {[9]=47,[10]=48,[13]=49,[15]=39,[16]=41,[17]=43}
_[75] = {nil,nil,50,4,5,nil,6,9,14,15,10}
_[76] = {[9]=47,[10]=48,[14]=55,[15]=57,[16]=58,[17]=43}
_[77] = {[9]=47,[10]=48,[15]=62,[16]=41,[17]=43}
_[78] = {[9]=47,[10]=48,[14]=63,[15]=57,[16]=58,[17]=43}
_[79] = {[9]=47,[10]=48,[12]=67,[13]=68,[15]=39,[16]=41,[17]=43}
_[80] = {[9]=47,[10]=48,[15]=69,[16]=41,[17]=43}
_[81] = {[9]=47,[10]=48,[12]=71,[13]=68,[15]=39,[16]=41,[17]=43}
_[82] = {_[67],_[68],_[68],_[68],_[69],_[70],_[68],_[68],_[68],_[68],_[71],_[72],_[68],_[68],_[68],_[73],_[74],_[68],_[68],_[68],_[68],_[68],_[68],_[68],_[68],_[68],_[68],_[68],_[75],_[68],_[68],_[68],_[68],_[68],_[68],_[68],_[68],_[68],_[76],_[68],_[68],_[68],_[68],_[68],_[68],_[68],_[68],_[68],_[68],_[68],_[68],_[68],_[68],_[68],_[68],_[77],_[68],_[78],_[68],_[68],_[68],_[79],_[68],_[80],_[68],_[68],_[68],_[68],_[81],_[68],_[68]}
_[83] = {[73]=35,[74]=36,[75]=36,[76]=37,[77]=37,[78]=38,[79]=38,[80]=39,[81]=39,[82]=39,[83]=39,[84]=39,[85]=39,[86]=40,[87]=40,[88]=40,[89]=40,[90]=40,[91]=40,[92]=41,[93]=41,[94]=41,[95]=42,[96]=42,[97]=42,[98]=42,[99]=42,[100]=43,[101]=43,[102]=43,[103]=43,[104]=43,[105]=43,[106]=44,[107]=44,[108]=45,[109]=45,[110]=46,[111]=46,[112]=46,[113]=47,[114]=47,[115]=47,[116]=48,[117]=48,[118]=49,[119]=49,[120]=50,[121]=50,[122]=50,[123]=50,[124]=50}
_[84] = {1,1,_[68]}
_[85] = {[92]=_[84],[93]=_[84],[94]=_[84],[95]=_[84],[96]=_[84],[97]=_[84],[98]=_[84],[99]=_[84],[116]=_[84],[117]=_[84],[118]=_[84],[119]=_[84],[120]=_[84],[121]=_[84],[122]=_[84],[123]=_[84],[124]=_[84]}
_[86] = {[73]=1,[74]=1,[75]=3,[76]=1,[77]=2,[78]=1,[79]=2,[80]=1,[81]=1,[82]=1,[83]=3,[84]=4,[85]=5,[86]=1,[87]=1,[88]=1,[89]=1,[90]=3,[91]=3,[92]=1,[93]=1,[94]=1,[95]=1,[96]=1,[97]=1,[98]=1,[99]=1,[100]=1,[101]=1,[102]=1,[103]=1,[104]=1,[105]=1,[106]=3,[107]=3,[108]=0,[109]=1,[110]=1,[111]=2,[112]=4,[113]=1,[114]=2,[115]=4,[116]=1,[117]=1,[118]=1,[119]=1,[120]=1,[121]=1,[122]=1,[123]=1,[124]=1}
_[87] = {"$","DecimalEscape","ControlEscape","ControlLetter","HexEscapeSequence","RegExpUnicodeEscapeSequence","IdentityEscape","\\d","\\D","\\s","\\S","\\w","\\W","|","*","+","?","{","PatternCharacter",".","(","(?:",")","[","[^","DecimalDigits",",","}","ClassCharacter","\\b","\\-","-","]","Pattern'","Pattern","Disjunction","Alternative","Term","Quantifier","Atom","AtomEscape","CharacterEscape","CharacterClassEscape","CharacterClass","ClassRanges","NonemptyClassRanges","NonemptyClassRangesNoDash","ClassAtom","ClassAtomNoDash","ClassEscape"}
_[88] = {["("]=21,["(?:"]=22,[")"]=23,["*"]=15,["+"]=16,[","]=27,["-"]=32,["."]=20,["?"]=17,Alternative=37,Atom=40,AtomEscape=41,CharacterClass=44,CharacterClassEscape=43,CharacterEscape=42,ClassAtom=48,ClassAtomNoDash=49,ClassCharacter=29,ClassEscape=50,ClassRanges=45,ControlEscape=3,ControlLetter=4,DecimalDigits=26,DecimalEscape=2,Disjunction=36,HexEscapeSequence=5,IdentityEscape=7,NonemptyClassRanges=46,NonemptyClassRangesNoDash=47,Pattern=35,PatternCharacter=19,Quantifier=39,RegExpUnicodeEscapeSequence=6,Term=38,["["]=24,["[^"]=25,["\\-"]=31,["\\D"]=9,["\\S"]=11,["\\W"]=13,["\\b"]=30,["\\d"]=8,["\\s"]=10,["\\w"]=12,["]"]=33,["{"]=18,["|"]=14,["}"]=28}
_[89] = {actions=_[66],gotos=_[82],heads=_[83],max_state=71,max_terminal_symbol=33,reduce_to_attribute_actions=_[68],reduce_to_semantic_action=_[85],sizes=_[86],symbol_names=_[87],symbol_table=_[88]}
local root = setmetatable(_[89], metatable)
return function() return root end
