// 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 Main {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> ClassGraph, classes, ClassDef_DList {{ if (is_equal) { ClassGraph obj = (ClassGraph) history.peek(); Object temp1 = obj.get_classes(); if(temp1==null) { is_equal = false; return; } history.push(temp1); } }} after -> ClassGraph, classes, ClassDef_DList {{ if (is_equal) history.pop(); }} before ClassGraph {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> ClassDef, classname, ClassName {{ if (is_equal) { ClassDef obj = (ClassDef) history.peek(); Object temp2 = obj.get_classname(); if(temp2==null) { is_equal = false; return; } history.push(temp2); } }} after -> ClassDef, classname, ClassName {{ if (is_equal) history.pop(); }} before -> ClassDef, classparts, ClassParts {{ if (is_equal) { ClassDef obj = (ClassDef) history.peek(); Object temp3 = obj.get_classparts(); if(temp3==null) { is_equal = false; return; } history.push(temp3); } }} after -> ClassDef, classparts, ClassParts {{ if (is_equal) history.pop(); }} before ClassDef {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before ClassParts {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> ConstOrAltClass, parts, PartOrSyntax_List {{ if (is_equal) { ConstOrAltClass obj = (ConstOrAltClass) history.peek(); Object temp4 = obj.get_parts(); if(temp4==null) { is_equal = false; return; } history.push(temp4); } }} after -> ConstOrAltClass, parts, PartOrSyntax_List {{ if (is_equal) history.pop(); }} before ConstOrAltClass {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before PartOrSyntax {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Part, partname, PartName {{ if (is_equal) { Part obj = (Part) history.peek(); Object temp5 = obj.get_partname(); if(temp5==null) { is_equal = false; return; } history.push(temp5); } }} after -> Part, partname, PartName {{ if (is_equal) history.pop(); }} before -> Part, classspec, ClassSpec {{ if (is_equal) { Part obj = (Part) history.peek(); Object temp6 = obj.get_classspec(); if(temp6==null) { is_equal = false; return; } history.push(temp6); } }} after -> Part, classspec, ClassSpec {{ if (is_equal) history.pop(); }} before Part {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> OptionalPart, part, Part_Sandwich {{ if (is_equal) { OptionalPart obj = (OptionalPart) history.peek(); Object temp7 = obj.get_part(); if(temp7==null) { is_equal = false; return; } history.push(temp7); } }} after -> OptionalPart, part, Part_Sandwich {{ if (is_equal) history.pop(); }} before OptionalPart {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before ConstructionClass {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> AlternationClass, subclasses, Subclass_Barlist {{ if (is_equal) { AlternationClass obj = (AlternationClass) history.peek(); Object temp8 = obj.get_subclasses(); if(temp8==null) { is_equal = false; return; } history.push(temp8); } }} after -> AlternationClass, subclasses, Subclass_Barlist {{ if (is_equal) history.pop(); }} before -> AlternationClass, common, Common {{ if (is_equal) { AlternationClass obj = (AlternationClass) history.peek(); Object temp9 = obj.get_common(); if(temp9==null) { is_equal = false; return; } history.push(temp9); } }} after -> AlternationClass, common, Common {{ if (is_equal) history.pop(); }} before AlternationClass {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Subclass, classspec, ClassSpec {{ if (is_equal) { Subclass obj = (Subclass) history.peek(); Object temp10 = obj.get_classspec(); if(temp10==null) { is_equal = false; return; } history.push(temp10); } }} after -> Subclass, classspec, ClassSpec {{ if (is_equal) history.pop(); }} before Subclass {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before Common {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> RepetitionClass, sandwiched, RepeatedPart_Sandwich {{ if (is_equal) { RepetitionClass obj = (RepetitionClass) history.peek(); Object temp11 = obj.get_sandwiched(); if(temp11==null) { is_equal = false; return; } history.push(temp11); } }} after -> RepetitionClass, sandwiched, RepeatedPart_Sandwich {{ if (is_equal) history.pop(); }} before RepetitionClass {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> RepeatedPart, nonempty, ClassSpec {{ if (is_equal) { RepeatedPart obj = (RepeatedPart) history.peek(); Object temp12 = obj.get_nonempty(); if(temp12==null) { is_equal = false; return; } history.push(temp12); } }} after -> RepeatedPart, nonempty, ClassSpec {{ if (is_equal) history.pop(); }} before -> RepeatedPart, repeated, ClassSpec_Sandwich {{ if (is_equal) { RepeatedPart obj = (RepeatedPart) history.peek(); Object temp13 = obj.get_repeated(); if(temp13==null) { is_equal = false; return; } history.push(temp13); } }} after -> RepeatedPart, repeated, ClassSpec_Sandwich {{ if (is_equal) history.pop(); }} before RepeatedPart {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> ClassSpec, classname, ClassName {{ if (is_equal) { ClassSpec obj = (ClassSpec) history.peek(); Object temp14 = obj.get_classname(); if(temp14==null) { is_equal = false; return; } history.push(temp14); } }} after -> ClassSpec, classname, ClassName {{ if (is_equal) history.pop(); }} before ClassSpec {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before Syntax {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before PlainSyntax {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp15 = host.get_string(); Object temp16 = ((PlainSyntax) obj).get_string(); if(temp15 == null && temp16 == null) {} else if(temp15 == null || temp16 == null || !temp15.equals(temp16)) { is_equal = false; return; } }} before DirName {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp17 = host.get_name(); Object temp18 = ((DirName) obj).get_name(); if(temp17 == null && temp18 == null) {} else if(temp17 == null || temp18 == null || !temp17.equals(temp18)) { is_equal = false; return; } }} before ClassName {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp19 = host.get_name(); Object temp20 = ((ClassName) obj).get_name(); if(temp19 == null && temp20 == null) {} else if(temp19 == null || temp20 == null || !temp19.equals(temp20)) { is_equal = false; return; } }} before PartName {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp21 = host.get_name(); Object temp22 = ((PartName) obj).get_name(); if(temp21 == null && temp22 == null) {} else if(temp21 == null || temp22 == null || !temp21.equals(temp22)) { is_equal = false; return; } }} before TraversalName {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp23 = host.get_name(); Object temp24 = ((TraversalName) obj).get_name(); if(temp23 == null && temp24 == null) {} else if(temp23 == null || temp24 == null || !temp23.equals(temp24)) { is_equal = false; return; } }} before VisitorName {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp25 = host.get_name(); Object temp26 = ((VisitorName) obj).get_name(); if(temp25 == null && temp26 == null) {} else if(temp25 == null || temp26 == null || !temp25.equals(temp26)) { is_equal = false; return; } }} before MethodName {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp27 = host.get_name(); Object temp28 = ((MethodName) obj).get_name(); if(temp27 == null && temp28 == null) {} else if(temp27 == null || temp28 == null || !temp27.equals(temp28)) { is_equal = false; return; } }} before JavaCode {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp29 = host.get_code(); Object temp30 = ((JavaCode) obj).get_code(); if(temp29 == null && temp30 == null) {} else if(temp29 == null || temp30 == null || !temp29.equals(temp30)) { 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 temp31 = host.get_copy(); Object temp32 = ((CopyVisitor) obj).get_copy(); if(temp31 == null && temp32 == null) {} else if(temp31 == null || temp32 == null || !temp31.equals(temp32)) { 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 -> ClassDef_DList, first, Nonempty_ClassDef_DList {{ if (is_equal) { ClassDef_DList obj = (ClassDef_DList) history.peek(); Object temp33 = obj.get_first(); if(temp33==null) { is_equal = false; return; } history.push(temp33); } }} after -> ClassDef_DList, first, Nonempty_ClassDef_DList {{ if (is_equal) history.pop(); }} before ClassDef_DList {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> PartOrSyntax_List, first, Nonempty_PartOrSyntax_List {{ if (is_equal) { PartOrSyntax_List obj = (PartOrSyntax_List) history.peek(); Object temp34 = obj.get_first(); if(temp34==null) { is_equal = false; return; } history.push(temp34); } }} after -> PartOrSyntax_List, first, Nonempty_PartOrSyntax_List {{ if (is_equal) history.pop(); }} before PartOrSyntax_List {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Part_Sandwich, first, Syntax_List {{ if (is_equal) { Part_Sandwich obj = (Part_Sandwich) history.peek(); Object temp35 = obj.get_first(); if(temp35==null) { is_equal = false; return; } history.push(temp35); } }} after -> Part_Sandwich, first, Syntax_List {{ if (is_equal) history.pop(); }} before -> Part_Sandwich, inner, Part {{ if (is_equal) { Part_Sandwich obj = (Part_Sandwich) history.peek(); Object temp36 = obj.get_inner(); if(temp36==null) { is_equal = false; return; } history.push(temp36); } }} after -> Part_Sandwich, inner, Part {{ if (is_equal) history.pop(); }} before -> Part_Sandwich, second, Syntax_List {{ if (is_equal) { Part_Sandwich obj = (Part_Sandwich) history.peek(); Object temp37 = obj.get_second(); if(temp37==null) { is_equal = false; return; } history.push(temp37); } }} after -> Part_Sandwich, second, Syntax_List {{ if (is_equal) history.pop(); }} before Part_Sandwich {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Subclass_Barlist, first, Nonempty_Subclass_Barlist {{ if (is_equal) { Subclass_Barlist obj = (Subclass_Barlist) history.peek(); Object temp38 = obj.get_first(); if(temp38==null) { is_equal = false; return; } history.push(temp38); } }} after -> Subclass_Barlist, first, Nonempty_Subclass_Barlist {{ if (is_equal) history.pop(); }} before Subclass_Barlist {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> RepeatedPart_Sandwich, first, Syntax_List {{ if (is_equal) { RepeatedPart_Sandwich obj = (RepeatedPart_Sandwich) history.peek(); Object temp39 = obj.get_first(); if(temp39==null) { is_equal = false; return; } history.push(temp39); } }} after -> RepeatedPart_Sandwich, first, Syntax_List {{ if (is_equal) history.pop(); }} before -> RepeatedPart_Sandwich, inner, RepeatedPart {{ if (is_equal) { RepeatedPart_Sandwich obj = (RepeatedPart_Sandwich) history.peek(); Object temp40 = obj.get_inner(); if(temp40==null) { is_equal = false; return; } history.push(temp40); } }} after -> RepeatedPart_Sandwich, inner, RepeatedPart {{ if (is_equal) history.pop(); }} before -> RepeatedPart_Sandwich, second, Syntax_List {{ if (is_equal) { RepeatedPart_Sandwich obj = (RepeatedPart_Sandwich) history.peek(); Object temp41 = obj.get_second(); if(temp41==null) { is_equal = false; return; } history.push(temp41); } }} after -> RepeatedPart_Sandwich, second, Syntax_List {{ if (is_equal) history.pop(); }} before RepeatedPart_Sandwich {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> ClassSpec_Sandwich, first, Syntax_List {{ if (is_equal) { ClassSpec_Sandwich obj = (ClassSpec_Sandwich) history.peek(); Object temp42 = obj.get_first(); if(temp42==null) { is_equal = false; return; } history.push(temp42); } }} after -> ClassSpec_Sandwich, first, Syntax_List {{ if (is_equal) history.pop(); }} before -> ClassSpec_Sandwich, inner, ClassSpec {{ if (is_equal) { ClassSpec_Sandwich obj = (ClassSpec_Sandwich) history.peek(); Object temp43 = obj.get_inner(); if(temp43==null) { is_equal = false; return; } history.push(temp43); } }} after -> ClassSpec_Sandwich, inner, ClassSpec {{ if (is_equal) history.pop(); }} before -> ClassSpec_Sandwich, second, Syntax_List {{ if (is_equal) { ClassSpec_Sandwich obj = (ClassSpec_Sandwich) history.peek(); Object temp44 = obj.get_second(); if(temp44==null) { is_equal = false; return; } history.push(temp44); } }} after -> ClassSpec_Sandwich, second, Syntax_List {{ if (is_equal) history.pop(); }} before ClassSpec_Sandwich {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Syntax_List, first, Nonempty_Syntax_List {{ if (is_equal) { Syntax_List obj = (Syntax_List) history.peek(); Object temp45 = obj.get_first(); if(temp45==null) { is_equal = false; return; } history.push(temp45); } }} after -> Syntax_List, first, Nonempty_Syntax_List {{ if (is_equal) history.pop(); }} before Syntax_List {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Nonempty_ClassDef_DList, it, ClassDef {{ if (is_equal) { Nonempty_ClassDef_DList obj = (Nonempty_ClassDef_DList) history.peek(); Object temp46 = obj.get_it(); if(temp46==null) { is_equal = false; return; } history.push(temp46); } }} after -> Nonempty_ClassDef_DList, it, ClassDef {{ if (is_equal) history.pop(); }} before -> Nonempty_ClassDef_DList, next, Nonempty_ClassDef_DList {{ if (is_equal) { Nonempty_ClassDef_DList obj = (Nonempty_ClassDef_DList) history.peek(); Object temp47 = obj.get_next(); if(temp47==null) { is_equal = false; return; } history.push(temp47); } }} after -> Nonempty_ClassDef_DList, next, Nonempty_ClassDef_DList {{ if (is_equal) history.pop(); }} before Nonempty_ClassDef_DList {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Nonempty_PartOrSyntax_List, it, PartOrSyntax {{ if (is_equal) { Nonempty_PartOrSyntax_List obj = (Nonempty_PartOrSyntax_List) history.peek(); Object temp48 = obj.get_it(); if(temp48==null) { is_equal = false; return; } history.push(temp48); } }} after -> Nonempty_PartOrSyntax_List, it, PartOrSyntax {{ if (is_equal) history.pop(); }} before -> Nonempty_PartOrSyntax_List, next, Nonempty_PartOrSyntax_List {{ if (is_equal) { Nonempty_PartOrSyntax_List obj = (Nonempty_PartOrSyntax_List) history.peek(); Object temp49 = obj.get_next(); if(temp49==null) { is_equal = false; return; } history.push(temp49); } }} after -> Nonempty_PartOrSyntax_List, next, Nonempty_PartOrSyntax_List {{ if (is_equal) history.pop(); }} before Nonempty_PartOrSyntax_List {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Nonempty_Subclass_Barlist, it, Subclass {{ if (is_equal) { Nonempty_Subclass_Barlist obj = (Nonempty_Subclass_Barlist) history.peek(); Object temp50 = obj.get_it(); if(temp50==null) { is_equal = false; return; } history.push(temp50); } }} after -> Nonempty_Subclass_Barlist, it, Subclass {{ if (is_equal) history.pop(); }} before -> Nonempty_Subclass_Barlist, next, Nonempty_Subclass_Barlist {{ if (is_equal) { Nonempty_Subclass_Barlist obj = (Nonempty_Subclass_Barlist) history.peek(); Object temp51 = obj.get_next(); if(temp51==null) { is_equal = false; return; } history.push(temp51); } }} after -> Nonempty_Subclass_Barlist, next, Nonempty_Subclass_Barlist {{ if (is_equal) history.pop(); }} before Nonempty_Subclass_Barlist {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Nonempty_Syntax_List, it, Syntax {{ if (is_equal) { Nonempty_Syntax_List obj = (Nonempty_Syntax_List) history.peek(); Object temp52 = obj.get_it(); if(temp52==null) { is_equal = false; return; } history.push(temp52); } }} after -> Nonempty_Syntax_List, it, Syntax {{ if (is_equal) history.pop(); }} before -> Nonempty_Syntax_List, next, Nonempty_Syntax_List {{ if (is_equal) { Nonempty_Syntax_List obj = (Nonempty_Syntax_List) history.peek(); Object temp53 = obj.get_next(); if(temp53==null) { is_equal = false; return; } history.push(temp53); } }} after -> Nonempty_Syntax_List, next, Nonempty_Syntax_List {{ if (is_equal) history.pop(); }} before Nonempty_Syntax_List {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} return boolean {{ is_equal }} }