// 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 Main {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp1 = host.get_s(); Object temp2 = ((Main) obj).get_s(); if(temp1 == null && temp2 == null) {} else if(temp1 == null || temp2 == null || !temp1.equals(temp2)) { is_equal = false; return; } }} before -> SPL, block, Block {{ if (is_equal) { SPL obj = (SPL) history.peek(); Object temp3 = obj.get_block(); if(temp3==null) { is_equal = false; return; } history.push(temp3); } }} after -> SPL, block, Block {{ if (is_equal) history.pop(); }} before SPL {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Block, declaration_list, Declaration_List {{ if (is_equal) { Block obj = (Block) history.peek(); Object temp4 = obj.get_declaration_list(); if(temp4==null) { is_equal = false; return; } history.push(temp4); } }} after -> Block, declaration_list, Declaration_List {{ if (is_equal) history.pop(); }} before -> Block, statement_nlist, Statement_NList {{ if (is_equal) { Block obj = (Block) history.peek(); Object temp5 = obj.get_statement_nlist(); if(temp5==null) { is_equal = false; return; } history.push(temp5); } }} after -> Block, statement_nlist, Statement_NList {{ if (is_equal) history.pop(); }} before Block {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Declaration, type, Type {{ if (is_equal) { Declaration obj = (Declaration) history.peek(); Object temp6 = obj.get_type(); if(temp6==null) { is_equal = false; return; } history.push(temp6); } }} after -> Declaration, type, Type {{ if (is_equal) history.pop(); }} before -> Declaration, variable, Variable {{ if (is_equal) { Declaration obj = (Declaration) history.peek(); Object temp7 = obj.get_variable(); if(temp7==null) { is_equal = false; return; } history.push(temp7); } }} after -> Declaration, variable, Variable {{ if (is_equal) history.pop(); }} before -> Declaration, exp, Exp {{ if (is_equal) { Declaration obj = (Declaration) history.peek(); Object temp8 = obj.get_exp(); if(temp8==null) { is_equal = false; return; } history.push(temp8); } }} after -> Declaration, exp, Exp {{ if (is_equal) history.pop(); }} before Declaration {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before Type {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before Bool {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before Inte {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before Variable {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp9 = host.get_ident(); Object temp10 = ((Variable) obj).get_ident(); if(temp9 == null && temp10 == null) {} else if(temp9 == null || temp10 == null || !temp9.equals(temp10)) { is_equal = false; return; } }} before Exp {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before Simple {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before Numbe {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; is_equal = is_equal && host.get_val() == ((Numbe) obj).get_val(); }} before -> Compound, arg1, Exp {{ if (is_equal) { Compound obj = (Compound) history.peek(); Object temp11 = obj.get_arg1(); if(temp11==null) { is_equal = false; return; } history.push(temp11); } }} after -> Compound, arg1, Exp {{ if (is_equal) history.pop(); }} before -> Compound, op, Op {{ if (is_equal) { Compound obj = (Compound) history.peek(); Object temp12 = obj.get_op(); if(temp12==null) { is_equal = false; return; } history.push(temp12); } }} after -> Compound, op, Op {{ if (is_equal) history.pop(); }} before -> Compound, arg2, Exp {{ if (is_equal) { Compound obj = (Compound) history.peek(); Object temp13 = obj.get_arg2(); if(temp13==null) { is_equal = false; return; } history.push(temp13); } }} after -> Compound, arg2, Exp {{ if (is_equal) history.pop(); }} before Compound {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before Op {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before Plus {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before GT {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before Statement {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Assignment, variable, Variable {{ if (is_equal) { Assignment obj = (Assignment) history.peek(); Object temp14 = obj.get_variable(); if(temp14==null) { is_equal = false; return; } history.push(temp14); } }} after -> Assignment, variable, Variable {{ if (is_equal) history.pop(); }} before -> Assignment, exp, Exp {{ if (is_equal) { Assignment obj = (Assignment) history.peek(); Object temp15 = obj.get_exp(); if(temp15==null) { is_equal = false; return; } history.push(temp15); } }} after -> Assignment, exp, Exp {{ if (is_equal) history.pop(); }} before Assignment {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> IfStat, exp, Exp {{ if (is_equal) { IfStat obj = (IfStat) history.peek(); Object temp16 = obj.get_exp(); if(temp16==null) { is_equal = false; return; } history.push(temp16); } }} after -> IfStat, exp, Exp {{ if (is_equal) history.pop(); }} before -> IfStat, thePart, Block {{ if (is_equal) { IfStat obj = (IfStat) history.peek(); Object temp17 = obj.get_thePart(); if(temp17==null) { is_equal = false; return; } history.push(temp17); } }} after -> IfStat, thePart, Block {{ if (is_equal) history.pop(); }} before -> IfStat, elsePart, Block {{ if (is_equal) { IfStat obj = (IfStat) history.peek(); Object temp18 = obj.get_elsePart(); if(temp18==null) { is_equal = false; return; } history.push(temp18); } }} after -> IfStat, elsePart, Block {{ if (is_equal) history.pop(); }} before IfStat {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> WhileStat, exp, Exp {{ if (is_equal) { WhileStat obj = (WhileStat) history.peek(); Object temp19 = obj.get_exp(); if(temp19==null) { is_equal = false; return; } history.push(temp19); } }} after -> WhileStat, exp, Exp {{ if (is_equal) history.pop(); }} before -> WhileStat, block, Block {{ if (is_equal) { WhileStat obj = (WhileStat) history.peek(); Object temp20 = obj.get_block(); if(temp20==null) { is_equal = false; return; } history.push(temp20); } }} after -> WhileStat, block, Block {{ if (is_equal) history.pop(); }} before WhileStat {{ 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 temp21 = host.get_copy(); Object temp22 = ((CopyVisitor) obj).get_copy(); if(temp21 == null && temp22 == null) {} else if(temp21 == null || temp22 == null || !temp21.equals(temp22)) { 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 -> Declaration_List, first, Nonempty_Declaration_List {{ if (is_equal) { Declaration_List obj = (Declaration_List) history.peek(); Object temp23 = obj.get_first(); if(temp23==null) { is_equal = false; return; } history.push(temp23); } }} after -> Declaration_List, first, Nonempty_Declaration_List {{ if (is_equal) history.pop(); }} before Declaration_List {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Statement_NList, first, Nonempty_Statement_NList {{ if (is_equal) { Statement_NList obj = (Statement_NList) history.peek(); Object temp24 = obj.get_first(); if(temp24==null) { is_equal = false; return; } history.push(temp24); } }} after -> Statement_NList, first, Nonempty_Statement_NList {{ if (is_equal) history.pop(); }} before Statement_NList {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Nonempty_Declaration_List, it, Declaration {{ if (is_equal) { Nonempty_Declaration_List obj = (Nonempty_Declaration_List) history.peek(); Object temp25 = obj.get_it(); if(temp25==null) { is_equal = false; return; } history.push(temp25); } }} after -> Nonempty_Declaration_List, it, Declaration {{ if (is_equal) history.pop(); }} before -> Nonempty_Declaration_List, next, Nonempty_Declaration_List {{ if (is_equal) { Nonempty_Declaration_List obj = (Nonempty_Declaration_List) history.peek(); Object temp26 = obj.get_next(); if(temp26==null) { is_equal = false; return; } history.push(temp26); } }} after -> Nonempty_Declaration_List, next, Nonempty_Declaration_List {{ if (is_equal) history.pop(); }} before Nonempty_Declaration_List {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Nonempty_Statement_NList, it, Statement {{ if (is_equal) { Nonempty_Statement_NList obj = (Nonempty_Statement_NList) history.peek(); Object temp27 = obj.get_it(); if(temp27==null) { is_equal = false; return; } history.push(temp27); } }} after -> Nonempty_Statement_NList, it, Statement {{ if (is_equal) history.pop(); }} before -> Nonempty_Statement_NList, next, Nonempty_Statement_NList {{ if (is_equal) { Nonempty_Statement_NList obj = (Nonempty_Statement_NList) history.peek(); Object temp28 = obj.get_next(); if(temp28==null) { is_equal = false; return; } history.push(temp28); } }} after -> Nonempty_Statement_NList, next, Nonempty_Statement_NList {{ if (is_equal) history.pop(); }} before Nonempty_Statement_NList {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} return boolean {{ is_equal }} }