public override bool Equals(object obj)
        {
            OutEdgeParsedPatternNode tmp = obj as OutEdgeParsedPatternNode;

            if (tmp == null)
            {
                return(false);
            }
            else
            {
                return(base.Equals(obj));
            }
        }
        /// <summary>
        /// Tries to jump to a variable node inside edge or to the next vertex.
        /// </summary>
        public void Visit(OutEdgeNode node)
        {
            this.readingVertex = false;

            ParsedPatternNode em = new OutEdgeParsedPatternNode();

            currentPattern.AddParsedPatternNode(em);

            if (node.matchVariable != null)
            {
                node.matchVariable.Accept(this);
            }
            if (node.next == null)
            {
                throw new ArgumentException($"{this.GetType()}, missing end vertex from edge.");
            }
            else
            {
                node.next.Accept(this);
            }
        }