// This file is automatically generated by DemeterJ. EqualVisitor { {{ private java.util.Stack history = new java.util.Stack(); public EqualVisitor(Object obj) { history.push(obj); } }} before -> TraversalDef, tn, TraversalName {{ if (is_equal) { TraversalDef obj = (TraversalDef) history.peek(); Object temp1 = obj.get_tn(); if(temp1==null) { is_equal = false; return; } history.push(temp1); } }} after -> TraversalDef, tn, TraversalName {{ if (is_equal) history.pop(); }} before -> TraversalDef, rhs, Itinerary {{ if (is_equal) { TraversalDef obj = (TraversalDef) history.peek(); Object temp2 = obj.get_rhs(); if(temp2==null) { is_equal = false; return; } history.push(temp2); } }} after -> TraversalDef, rhs, Itinerary {{ if (is_equal) history.pop(); }} before TraversalDef {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before TraversalName {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp3 = host.get_ident(); Object temp4 = ((TraversalName) obj).get_ident(); if(temp3 == null && temp4 == null) {} else if(temp3 == null || temp4 == null || !temp3.equals(temp4)) { is_equal = false; return; } }} before -> Itinerary, first, Nonempty_Itinerary {{ if (is_equal) { Itinerary obj = (Itinerary) history.peek(); Object temp5 = obj.get_first(); if(temp5==null) { is_equal = false; return; } history.push(temp5); } }} after -> Itinerary, first, Nonempty_Itinerary {{ if (is_equal) history.pop(); }} before Itinerary {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before Path {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before Direct {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> NoTag, snode, SNode {{ if (is_equal) { NoTag obj = (NoTag) history.peek(); Object temp6 = obj.get_snode(); if(temp6==null) { is_equal = false; return; } history.push(temp6); } }} after -> NoTag, snode, SNode {{ if (is_equal) history.pop(); }} before -> NoTag, tnode, TNode {{ if (is_equal) { NoTag obj = (NoTag) history.peek(); Object temp7 = obj.get_tnode(); if(temp7==null) { is_equal = false; return; } history.push(temp7); } }} after -> NoTag, tnode, TNode {{ if (is_equal) history.pop(); }} before NoTag {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before Tag {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> SourceTag, snode, SNode {{ if (is_equal) { SourceTag obj = (SourceTag) history.peek(); Object temp8 = obj.get_snode(); if(temp8==null) { is_equal = false; return; } history.push(temp8); } }} after -> SourceTag, snode, SNode {{ if (is_equal) history.pop(); }} before -> SourceTag, tnode, TNode {{ if (is_equal) { SourceTag obj = (SourceTag) history.peek(); Object temp9 = obj.get_tnode(); if(temp9==null) { is_equal = false; return; } history.push(temp9); } }} after -> SourceTag, tnode, TNode {{ if (is_equal) history.pop(); }} before SourceTag {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> TarTag, snode, SNode {{ if (is_equal) { TarTag obj = (TarTag) history.peek(); Object temp10 = obj.get_snode(); if(temp10==null) { is_equal = false; return; } history.push(temp10); } }} after -> TarTag, snode, SNode {{ if (is_equal) history.pop(); }} before -> TarTag, tnode, TNode {{ if (is_equal) { TarTag obj = (TarTag) history.peek(); Object temp11 = obj.get_tnode(); if(temp11==null) { is_equal = false; return; } history.push(temp11); } }} after -> TarTag, tnode, TNode {{ if (is_equal) history.pop(); }} before TarTag {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Bypass, first, Nonempty_Bypass {{ if (is_equal) { Bypass obj = (Bypass) history.peek(); Object temp12 = obj.get_first(); if(temp12==null) { is_equal = false; return; } history.push(temp12); } }} after -> Bypass, first, Nonempty_Bypass {{ if (is_equal) history.pop(); }} before Bypass {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before SNode {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp13 = host.get_ident(); Object temp14 = ((SNode) obj).get_ident(); if(temp13 == null && temp14 == null) {} else if(temp13 == null || temp14 == null || !temp13.equals(temp14)) { is_equal = false; return; } }} before TNode {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp15 = host.get_ident(); Object temp16 = ((TNode) obj).get_ident(); if(temp15 == null && temp16 == null) {} else if(temp15 == null || temp16 == null || !temp15.equals(temp16)) { is_equal = false; return; } }} before Node {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp17 = host.get_ident(); Object temp18 = ((Node) obj).get_ident(); if(temp17 == null && temp18 == null) {} else if(temp17 == null || temp18 == null || !temp17.equals(temp18)) { is_equal = false; return; } }} before -> Main, tdef, TraversalDef {{ if (is_equal) { Main obj = (Main) history.peek(); Object temp19 = obj.get_tdef(); if(temp19==null) { is_equal = false; return; } history.push(temp19); } }} after -> Main, tdef, TraversalDef {{ if (is_equal) history.pop(); }} before Main {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before PrintVisitor {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; is_equal = is_equal && host.get_indent() == ((PrintVisitor) obj).get_indent(); is_equal = is_equal && host.get_needSpace() == ((PrintVisitor) obj).get_needSpace(); }} before CopyVisitor {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp20 = host.get_copy(); Object temp21 = ((CopyVisitor) obj).get_copy(); if(temp20 == null && temp21 == null) {} else if(temp20 == null || temp21 == null || !temp20.equals(temp21)) { is_equal = false; return; } }} before SubgraphVisitor {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; is_equal = is_equal && host.get_is_equal() == ((SubgraphVisitor) obj).get_is_equal(); }} before EqualVisitor {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; is_equal = is_equal && host.get_is_equal() == ((EqualVisitor) obj).get_is_equal(); }} before DisplayVisitor {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; is_equal = is_equal && host.get_indent() == ((DisplayVisitor) obj).get_indent(); }} before TraceVisitor {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; is_equal = is_equal && host.get_indent() == ((TraceVisitor) obj).get_indent(); }} before UniversalVisitor {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Nonempty_Itinerary, it, Path {{ if (is_equal) { Nonempty_Itinerary obj = (Nonempty_Itinerary) history.peek(); Object temp22 = obj.get_it(); if(temp22==null) { is_equal = false; return; } history.push(temp22); } }} after -> Nonempty_Itinerary, it, Path {{ if (is_equal) history.pop(); }} before -> Nonempty_Itinerary, next, Nonempty_Itinerary {{ if (is_equal) { Nonempty_Itinerary obj = (Nonempty_Itinerary) history.peek(); Object temp23 = obj.get_next(); if(temp23==null) { is_equal = false; return; } history.push(temp23); } }} after -> Nonempty_Itinerary, next, Nonempty_Itinerary {{ if (is_equal) history.pop(); }} before Nonempty_Itinerary {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Nonempty_Bypass, it, Node {{ if (is_equal) { Nonempty_Bypass obj = (Nonempty_Bypass) history.peek(); Object temp24 = obj.get_it(); if(temp24==null) { is_equal = false; return; } history.push(temp24); } }} after -> Nonempty_Bypass, it, Node {{ if (is_equal) history.pop(); }} before -> Nonempty_Bypass, next, Nonempty_Bypass {{ if (is_equal) { Nonempty_Bypass obj = (Nonempty_Bypass) history.peek(); Object temp25 = obj.get_next(); if(temp25==null) { is_equal = false; return; } history.push(temp25); } }} after -> Nonempty_Bypass, next, Nonempty_Bypass {{ if (is_equal) history.pop(); }} before Nonempty_Bypass {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} return boolean {{ is_equal }} }