// This file is automatically generated by DemeterJ. SubgraphVisitor { {{ private java.util.Stack history = new java.util.Stack(); public SubgraphVisitor(Object obj) { history.push(obj); } }} before -> Binder, clauses, Clause_List {{ if (is_equal) { Binder obj = (Binder) history.peek(); Object temp1 = obj.get_clauses(); if(temp1==null) { is_equal = false; return; } history.push(temp1); } }} after -> Binder, clauses, Clause_List {{ if (is_equal) history.pop(); }} before Binder {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Clause, head, Atom {{ if (is_equal) { Clause obj = (Clause) history.peek(); Object temp2 = obj.get_head(); if(temp2==null) { is_equal = false; return; } history.push(temp2); } }} after -> Clause, head, Atom {{ if (is_equal) history.pop(); }} before -> Clause, body, Atom_CList {{ if (is_equal) { Clause obj = (Clause) history.peek(); Object temp3 = obj.get_body(); if(temp3==null) { is_equal = false; return; } history.push(temp3); } }} after -> Clause, body, Atom_CList {{ if (is_equal) history.pop(); }} before Clause {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Atom, context, Term {{ if (is_equal) { Atom obj = (Atom) history.peek(); Object temp4 = obj.get_context(); if(temp4==null) { is_equal = false; return; } history.push(temp4); } }} after -> Atom, context, Term {{ if (is_equal) history.pop(); }} before -> Atom, pred, Constant {{ if (is_equal) { Atom obj = (Atom) history.peek(); Object temp5 = obj.get_pred(); if(temp5==null) { is_equal = false; return; } history.push(temp5); } }} after -> Atom, pred, Constant {{ if (is_equal) history.pop(); }} before -> Atom, args, Term_PCList {{ if (is_equal) { Atom obj = (Atom) history.peek(); Object temp6 = obj.get_args(); if(temp6==null) { is_equal = false; return; } history.push(temp6); } }} after -> Atom, args, Term_PCList {{ if (is_equal) history.pop(); }} before Atom {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before Term {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before Constant {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before IdentConstant {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp7 = host.get_ident(); Object temp8 = ((IdentConstant) obj).get_ident(); if(temp7 == null && temp8 == null) {} else if(temp7 == null || temp8 == null || !temp7.equals(temp8)) { is_equal = false; return; } }} before StringConstant {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp9 = host.get_string(); Object temp10 = ((StringConstant) obj).get_string(); if(temp9 == null && temp10 == null) {} else if(temp9 == null || temp10 == null || !temp9.equals(temp10)) { is_equal = false; return; } }} before Variable {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before VariableName {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp11 = host.get_ident(); Object temp12 = ((VariableName) obj).get_ident(); if(temp11 == null && temp12 == null) {} else if(temp11 == null || temp12 == null || !temp11.equals(temp12)) { is_equal = false; return; } }} before UIdent {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp13 = host.get_ident(); Object temp14 = ((UIdent) obj).get_ident(); if(temp13 == null && temp14 == null) {} else if(temp13 == null || temp14 == null || !temp13.equals(temp14)) { is_equal = false; return; } }} before Main {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp15 = host.get_s(); Object temp16 = ((Main) obj).get_s(); if(temp15 == null && temp16 == null) {} else if(temp15 == null || temp16 == null || !temp15.equals(temp16)) { is_equal = false; 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 temp17 = host.get_copy(); Object temp18 = ((CopyVisitor) obj).get_copy(); if(temp17 == null && temp18 == null) {} else if(temp17 == null || temp18 == null || !temp17.equals(temp18)) { 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 -> Clause_List, first, Nonempty_Clause_List {{ if (is_equal) { Clause_List obj = (Clause_List) history.peek(); Object temp19 = obj.get_first(); if(temp19==null) { is_equal = false; return; } history.push(temp19); } }} after -> Clause_List, first, Nonempty_Clause_List {{ if (is_equal) history.pop(); }} before Clause_List {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Atom_CList, first, Nonempty_Atom_CList {{ if (is_equal) { Atom_CList obj = (Atom_CList) history.peek(); Object temp20 = obj.get_first(); if(temp20==null) { is_equal = false; return; } history.push(temp20); } }} after -> Atom_CList, first, Nonempty_Atom_CList {{ if (is_equal) history.pop(); }} before Atom_CList {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Term_PCList, first, Nonempty_Term_PCList {{ if (is_equal) { Term_PCList obj = (Term_PCList) history.peek(); Object temp21 = obj.get_first(); if(temp21==null) { is_equal = false; return; } history.push(temp21); } }} after -> Term_PCList, first, Nonempty_Term_PCList {{ if (is_equal) history.pop(); }} before Term_PCList {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Nonempty_Clause_List, it, Clause {{ if (is_equal) { Nonempty_Clause_List obj = (Nonempty_Clause_List) history.peek(); Object temp22 = obj.get_it(); if(temp22==null) { is_equal = false; return; } history.push(temp22); } }} after -> Nonempty_Clause_List, it, Clause {{ if (is_equal) history.pop(); }} before -> Nonempty_Clause_List, next, Nonempty_Clause_List {{ if (is_equal) { Nonempty_Clause_List obj = (Nonempty_Clause_List) history.peek(); Object temp23 = obj.get_next(); if(temp23==null) { is_equal = false; return; } history.push(temp23); } }} after -> Nonempty_Clause_List, next, Nonempty_Clause_List {{ if (is_equal) history.pop(); }} before Nonempty_Clause_List {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Nonempty_Atom_CList, it, Atom {{ if (is_equal) { Nonempty_Atom_CList obj = (Nonempty_Atom_CList) history.peek(); Object temp24 = obj.get_it(); if(temp24==null) { is_equal = false; return; } history.push(temp24); } }} after -> Nonempty_Atom_CList, it, Atom {{ if (is_equal) history.pop(); }} before -> Nonempty_Atom_CList, next, Nonempty_Atom_CList {{ if (is_equal) { Nonempty_Atom_CList obj = (Nonempty_Atom_CList) history.peek(); Object temp25 = obj.get_next(); if(temp25==null) { is_equal = false; return; } history.push(temp25); } }} after -> Nonempty_Atom_CList, next, Nonempty_Atom_CList {{ if (is_equal) history.pop(); }} before Nonempty_Atom_CList {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Nonempty_Term_PCList, it, Term {{ if (is_equal) { Nonempty_Term_PCList obj = (Nonempty_Term_PCList) history.peek(); Object temp26 = obj.get_it(); if(temp26==null) { is_equal = false; return; } history.push(temp26); } }} after -> Nonempty_Term_PCList, it, Term {{ if (is_equal) history.pop(); }} before -> Nonempty_Term_PCList, next, Nonempty_Term_PCList {{ if (is_equal) { Nonempty_Term_PCList obj = (Nonempty_Term_PCList) history.peek(); Object temp27 = obj.get_next(); if(temp27==null) { is_equal = false; return; } history.push(temp27); } }} after -> Nonempty_Term_PCList, next, Nonempty_Term_PCList {{ if (is_equal) history.pop(); }} before Nonempty_Term_PCList {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} return boolean {{ is_equal }} }