docs: def _combine_rest_push(self):
          """Combining Rest and Push States"""
          new = []
          change = 0
          # DEBUG
          # logging.debug('Combining Rest and Push')
          i = 0
          examinetypes = self.quickresponse_types[3]
          for state in examinetypes:
              if state.type == 3:
                  for nextstate_id in state.trans.keys():
                      found = 0
                      # if nextstate_id != state.id:
                      if nextstate_id in self.quickresponse:
                          examines = self.quickresponse[nextstate_id]
                          for examine in examines:
                              if examine.id == nextstate_id and examine.type == 1:
                                  temp = PDAState()
                                  temp.type = 1
                                  temp.sym = examine.sym
                                  temp.id = state.id
                                  for nextnextstate_id in examine.trans:
                                      # if nextnextstate_id != examine.id :
  
                                      for x_char in state.trans[nextstate_id]:
                                          for z_char in examine.trans[
                                                  nextnextstate_id]:
                                              if nextnextstate_id not in temp.trans:
                                                  temp.trans[
                                                      nextnextstate_id] = []
                                              if x_char != 0 and z_char != 0:
                                                  temp.trans[
                                                      nextnextstate_id].append(x_char + z_char)
                                                  # DEBUGprint 'transition is now
                                                  # '+x_char +' + '+ z_char
                                              elif x_char != 0 and z_char == 0:
                                                  temp.trans[
                                                      nextnextstate_id].append(x_char)
                                                  # DEBUGprint 'transition is now
                                                  # '+x_char
                                              elif x_char == 0 and z_char != 0:
                                                  temp.trans[
                                                      nextnextstate_id].append(z_char)
                                                  # DEBUGprint 'transition is now
                                                  # '+z_char
                                              elif x_char == 0 and z_char == 0:
                                                  temp.trans[
                                                      nextnextstate_id].append(0)
                                                  # DEBUGprint 'transition is now
                                                  # empty'
                                              else:
                                                  pass
                                  found = 1
                                  new.append(temp)
  
                      if found == 1:
                          # print 'Lets combine one with id '+`state.id`+'(rest)
                          # and one with id '+`nextstate_id`+'(push)'
                          change = 1
                          # del(state.trans[nextstate_id])
              i = i + 1
          if change == 0:
              return []
          else:
              return new