code: def p_route(self, p):
          
          p[0] = AstRouteDef(self.path, p.lineno(1), p.lexpos(1), p[2], p[3], p[5], *p[4])
          if len(p) > 7:
              p[0].set_doc(p[8])
              if p[9]:
                  keys = set()
                  for attr in p[9]:
                      if attr.name in keys:
                          msg = "Attribute '%s' defined more than once." % attr.name
                          self.errors.append((msg, attr.lineno, attr.path))
                      keys.add(attr.name)
                  p[0].set_attrs(p[9])
docs: route : ROUTE route_name route_version route_io route_deprecation NL \
                          INDENT docsection attrssection DEDENT
                   | ROUTE route_name route_version route_io route_deprecation NL