code: public void setParent( IParseTree l )
    {
      if( l != null && !l.contains( this ) && getLength() > 0 )
      {
        throw new IllegalArgumentException( "Attempted set the parent location, but the parent location's area is not a superset of this location's area." );
      }
      if( _pe != null )
      {
        ParsedElement parentElement = (ParsedElement)_pe.getParent();
        if( parentElement != null )
        {
          ParseTree oldParent = parentElement.getLocation();
          if( oldParent != null )
          {
            oldParent._children.remove( this );
          }
        }
        _pe.setParent( l == null ? null : ((ParseTree)l)._pe );
      }
    }
docs: Sets the parent location. Note the parent location must cover a superset of the
  specified location's area.
  
  @param l The parent location.