code: def p_NewOrClone(p):
      '''
      NewOrClone : NEW NsContentName LPARENT ArgList RPARENT
                 | NEW STATIC LPARENT ArgList RPARENT
                 | NEW Varible
                 | CLONE Varible
                 | NEW STRING
                 | CLONE STRING
      '''
      if len(p) > 3:
          p[0] = NewOrClone(p[1], p[2], p[4], None)
      else:
          p[0] = NewOrClone(p[1], None, None, p[2]f p_NewOrClone(p):
      '''
      NewOrClone : NEW NsContentName LPARENT ArgList RPARENT
                 | NEW STATIC LPARENT ArgList RPARENT
                 | NEW Varible
                 | CLONE Varible
                 | NEW STRING
                 | CLONE STRING
      '''
      if len(p) > 3:
          p[0] = NewOrClone(p[1], p[2], p[4], None)
      else:
          p[0] = NewOrClone(p[1], None, None, p[2])
docs: NewOrClone : NEW NsContentName LPARENT ArgList RPARENT
                 | NEW STATIC LPARENT ArgList RPARENT
                 | NEW Varible
                 | CLONE Varible
                 | NEW STRING
                 | CLONE STRING