// 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 -> Input, classgraphh, ClassGraphh {{ if (is_equal) { Input obj = (Input) history.peek(); Object temp1 = obj.get_classgraphh(); if(temp1==null) { is_equal = false; return; } history.push(temp1); } }} after -> Input, classgraphh, ClassGraphh {{ if (is_equal) history.pop(); }} before -> Input, syntaxenhancement, SyntaxEnhancement {{ if (is_equal) { Input obj = (Input) history.peek(); Object temp2 = obj.get_syntaxenhancement(); if(temp2==null) { is_equal = false; return; } history.push(temp2); } }} after -> Input, syntaxenhancement, SyntaxEnhancement {{ if (is_equal) history.pop(); }} before Input {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> ClassGraphh, classes, Definition_DList {{ if (is_equal) { ClassGraphh obj = (ClassGraphh) history.peek(); Object temp3 = obj.get_classes(); if(temp3==null) { is_equal = false; return; } history.push(temp3); } }} after -> ClassGraphh, classes, Definition_DList {{ if (is_equal) history.pop(); }} before ClassGraphh {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before Definition {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> ClassDef, paramclassname, ParamClassName {{ if (is_equal) { ClassDef obj = (ClassDef) history.peek(); Object temp4 = obj.get_paramclassname(); if(temp4==null) { is_equal = false; return; } history.push(temp4); } }} after -> ClassDef, paramclassname, ParamClassName {{ if (is_equal) history.pop(); }} before -> ClassDef, classparts, ClassParts {{ if (is_equal) { ClassDef obj = (ClassDef) history.peek(); Object temp5 = obj.get_classparts(); if(temp5==null) { is_equal = false; return; } history.push(temp5); } }} 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 -> ParamClassName, classname, ClassName {{ if (is_equal) { ParamClassName obj = (ParamClassName) history.peek(); Object temp6 = obj.get_classname(); if(temp6==null) { is_equal = false; return; } history.push(temp6); } }} after -> ParamClassName, classname, ClassName {{ if (is_equal) history.pop(); }} before -> ParamClassName, parameters, ClassName_Commalist {{ if (is_equal) { ParamClassName obj = (ParamClassName) history.peek(); Object temp7 = obj.get_parameters(); if(temp7==null) { is_equal = false; return; } history.push(temp7); } }} after -> ParamClassName, parameters, ClassName_Commalist {{ if (is_equal) history.pop(); }} before ParamClassName {{ 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, ClassElementWithSyntax_List {{ if (is_equal) { ConstOrAltClass obj = (ConstOrAltClass) history.peek(); Object temp8 = obj.get_parts(); if(temp8==null) { is_equal = false; return; } history.push(temp8); } }} after -> ConstOrAltClass, parts, ClassElementWithSyntax_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 ClassElement {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before ClassElementWithSyntax {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> SandwichedClassElement, classelement_psandwich, ClassElement_PSandwich {{ if (is_equal) { SandwichedClassElement obj = (SandwichedClassElement) history.peek(); Object temp9 = obj.get_classelement_psandwich(); if(temp9==null) { is_equal = false; return; } history.push(temp9); } }} after -> SandwichedClassElement, classelement_psandwich, ClassElement_PSandwich {{ if (is_equal) history.pop(); }} before SandwichedClassElement {{ 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 temp10 = obj.get_partname(); if(temp10==null) { is_equal = false; return; } history.push(temp10); } }} after -> Part, partname, PartName {{ if (is_equal) history.pop(); }} before -> Part, classspec, ClassSpec {{ if (is_equal) { Part obj = (Part) history.peek(); Object temp11 = obj.get_classspec(); if(temp11==null) { is_equal = false; return; } history.push(temp11); } }} 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 temp12 = obj.get_part(); if(temp12==null) { is_equal = false; return; } history.push(temp12); } }} 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, ClassSpec_Barlist {{ if (is_equal) { AlternationClass obj = (AlternationClass) history.peek(); Object temp13 = obj.get_subclasses(); if(temp13==null) { is_equal = false; return; } history.push(temp13); } }} after -> AlternationClass, subclasses, ClassSpec_Barlist {{ 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 -> RepetitionClass, sandwiched, RepeatedPart_Sandwich {{ if (is_equal) { RepetitionClass obj = (RepetitionClass) history.peek(); Object temp14 = obj.get_sandwiched(); if(temp14==null) { is_equal = false; return; } history.push(temp14); } }} 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 temp15 = obj.get_nonempty(); if(temp15==null) { is_equal = false; return; } history.push(temp15); } }} after -> RepeatedPart, nonempty, ClassSpec {{ if (is_equal) history.pop(); }} before -> RepeatedPart, repeated, ClassSpec_Sandwich {{ if (is_equal) { RepeatedPart obj = (RepeatedPart) history.peek(); Object temp16 = obj.get_repeated(); if(temp16==null) { is_equal = false; return; } history.push(temp16); } }} 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 temp17 = obj.get_classname(); if(temp17==null) { is_equal = false; return; } history.push(temp17); } }} after -> ClassSpec, classname, ClassName {{ if (is_equal) history.pop(); }} before -> ClassSpec, actual_parameters, ClassSpec_Commalist {{ if (is_equal) { ClassSpec obj = (ClassSpec) history.peek(); Object temp18 = obj.get_actual_parameters(); if(temp18==null) { is_equal = false; return; } history.push(temp18); } }} after -> ClassSpec, actual_parameters, ClassSpec_Commalist {{ 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 SyntaxToken {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp19 = host.get_string(); Object temp20 = ((SyntaxToken) obj).get_string(); if(temp19 == null && temp20 == null) {} else if(temp19 == null || temp20 == null || !temp19.equals(temp20)) { is_equal = false; return; } }} before PrintCommand {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before PrintIndent {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before PrintUnindent {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before PrintSkip {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before PrintSpace {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before ClassName {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp21 = host.get_ident(); Object temp22 = ((ClassName) obj).get_ident(); if(temp21 == null && temp22 == null) {} else if(temp21 == null || temp22 == null || !temp21.equals(temp22)) { is_equal = false; return; } }} before PartName {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp23 = host.get_name(); Object temp24 = ((PartName) obj).get_name(); if(temp23 == null && temp24 == null) {} else if(temp23 == null || temp24 == null || !temp23.equals(temp24)) { is_equal = false; return; } }} before -> SyntaxEnhancement, enhancement_list, Enhancement_List {{ if (is_equal) { SyntaxEnhancement obj = (SyntaxEnhancement) history.peek(); Object temp25 = obj.get_enhancement_list(); if(temp25==null) { is_equal = false; return; } history.push(temp25); } }} after -> SyntaxEnhancement, enhancement_list, Enhancement_List {{ if (is_equal) history.pop(); }} before SyntaxEnhancement {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Enhancement, where, Where {{ if (is_equal) { Enhancement obj = (Enhancement) history.peek(); Object temp26 = obj.get_where(); if(temp26==null) { is_equal = false; return; } history.push(temp26); } }} after -> Enhancement, where, Where {{ if (is_equal) history.pop(); }} before -> Enhancement, enhancementbody, EnhancementBody {{ if (is_equal) { Enhancement obj = (Enhancement) history.peek(); Object temp27 = obj.get_enhancementbody(); if(temp27==null) { is_equal = false; return; } history.push(temp27); } }} after -> Enhancement, enhancementbody, EnhancementBody {{ if (is_equal) history.pop(); }} before Enhancement {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> EnhancementBody, syntaxtoken, SyntaxToken {{ if (is_equal) { EnhancementBody obj = (EnhancementBody) history.peek(); Object temp28 = obj.get_syntaxtoken(); if(temp28==null) { is_equal = false; return; } history.push(temp28); } }} after -> EnhancementBody, syntaxtoken, SyntaxToken {{ if (is_equal) history.pop(); }} before EnhancementBody {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> PartCoordinate, syntaxclassname, SyntaxClassName {{ if (is_equal) { PartCoordinate obj = (PartCoordinate) history.peek(); Object temp29 = obj.get_syntaxclassname(); if(temp29==null) { is_equal = false; return; } history.push(temp29); } }} after -> PartCoordinate, syntaxclassname, SyntaxClassName {{ if (is_equal) history.pop(); }} before -> PartCoordinate, syntaxpartname, SyntaxPartName {{ if (is_equal) { PartCoordinate obj = (PartCoordinate) history.peek(); Object temp30 = obj.get_syntaxpartname(); if(temp30==null) { is_equal = false; return; } history.push(temp30); } }} after -> PartCoordinate, syntaxpartname, SyntaxPartName {{ if (is_equal) history.pop(); }} before PartCoordinate {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> OptionalPartCoordinate, syntaxclassname, SyntaxClassName {{ if (is_equal) { OptionalPartCoordinate obj = (OptionalPartCoordinate) history.peek(); Object temp31 = obj.get_syntaxclassname(); if(temp31==null) { is_equal = false; return; } history.push(temp31); } }} after -> OptionalPartCoordinate, syntaxclassname, SyntaxClassName {{ if (is_equal) history.pop(); }} before -> OptionalPartCoordinate, syntaxpartname, SyntaxPartName {{ if (is_equal) { OptionalPartCoordinate obj = (OptionalPartCoordinate) history.peek(); Object temp32 = obj.get_syntaxpartname(); if(temp32==null) { is_equal = false; return; } history.push(temp32); } }} after -> OptionalPartCoordinate, syntaxpartname, SyntaxPartName {{ if (is_equal) history.pop(); }} before OptionalPartCoordinate {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> ClassBody, syntaxclassname, SyntaxClassName {{ if (is_equal) { ClassBody obj = (ClassBody) history.peek(); Object temp33 = obj.get_syntaxclassname(); if(temp33==null) { is_equal = false; return; } history.push(temp33); } }} after -> ClassBody, syntaxclassname, SyntaxClassName {{ if (is_equal) history.pop(); }} before ClassBody {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> CollectionCoordinate, syntaxclassname, SyntaxClassName {{ if (is_equal) { CollectionCoordinate obj = (CollectionCoordinate) history.peek(); Object temp34 = obj.get_syntaxclassname(); if(temp34==null) { is_equal = false; return; } history.push(temp34); } }} after -> CollectionCoordinate, syntaxclassname, SyntaxClassName {{ if (is_equal) history.pop(); }} before -> CollectionCoordinate, curlybracket, CurlyBracket {{ if (is_equal) { CollectionCoordinate obj = (CollectionCoordinate) history.peek(); Object temp35 = obj.get_curlybracket(); if(temp35==null) { is_equal = false; return; } history.push(temp35); } }} after -> CollectionCoordinate, curlybracket, CurlyBracket {{ if (is_equal) history.pop(); }} before CollectionCoordinate {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before CurlyBracket {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before Left {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before Right {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before SyntaxClassName {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp36 = host.get_ident(); Object temp37 = ((SyntaxClassName) obj).get_ident(); if(temp36 == null && temp37 == null) {} else if(temp36 == null || temp37 == null || !temp36.equals(temp37)) { is_equal = false; return; } }} before SyntaxPartName {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp38 = host.get_ident(); Object temp39 = ((SyntaxPartName) obj).get_ident(); if(temp38 == null && temp39 == null) {} else if(temp38 == null || temp39 == null || !temp38.equals(temp39)) { is_equal = false; return; } }} before Where {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before Before {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before After {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before ClassGraphVisitor {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before CommandVisitor {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before ClassCommandVisitor {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before CollectionCommandVisitor {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before PartCommandVisitor {{ 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 temp40 = host.get_copy(); Object temp41 = ((CopyVisitor) obj).get_copy(); if(temp40 == null && temp41 == null) {} else if(temp40 == null || temp41 == null || !temp40.equals(temp41)) { 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 -> Definition_DList, first, Nonempty_Definition_DList {{ if (is_equal) { Definition_DList obj = (Definition_DList) history.peek(); Object temp42 = obj.get_first(); if(temp42==null) { is_equal = false; return; } history.push(temp42); } }} after -> Definition_DList, first, Nonempty_Definition_DList {{ if (is_equal) history.pop(); }} before Definition_DList {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> ClassName_Commalist, first, Nonempty_ClassName_Commalist {{ if (is_equal) { ClassName_Commalist obj = (ClassName_Commalist) history.peek(); Object temp43 = obj.get_first(); if(temp43==null) { is_equal = false; return; } history.push(temp43); } }} after -> ClassName_Commalist, first, Nonempty_ClassName_Commalist {{ if (is_equal) history.pop(); }} before ClassName_Commalist {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> ClassElementWithSyntax_List, first, Nonempty_ClassElementWithSyntax_List {{ if (is_equal) { ClassElementWithSyntax_List obj = (ClassElementWithSyntax_List) history.peek(); Object temp44 = obj.get_first(); if(temp44==null) { is_equal = false; return; } history.push(temp44); } }} after -> ClassElementWithSyntax_List, first, Nonempty_ClassElementWithSyntax_List {{ if (is_equal) history.pop(); }} before ClassElementWithSyntax_List {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> ClassElement_PSandwich, s, ClassElement_Sandwich {{ if (is_equal) { ClassElement_PSandwich obj = (ClassElement_PSandwich) history.peek(); Object temp45 = obj.get_s(); if(temp45==null) { is_equal = false; return; } history.push(temp45); } }} after -> ClassElement_PSandwich, s, ClassElement_Sandwich {{ if (is_equal) history.pop(); }} before ClassElement_PSandwich {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> ClassElement_Sandwich, first, Syntax_List {{ if (is_equal) { ClassElement_Sandwich obj = (ClassElement_Sandwich) history.peek(); Object temp46 = obj.get_first(); if(temp46==null) { is_equal = false; return; } history.push(temp46); } }} after -> ClassElement_Sandwich, first, Syntax_List {{ if (is_equal) history.pop(); }} before -> ClassElement_Sandwich, inner, ClassElement {{ if (is_equal) { ClassElement_Sandwich obj = (ClassElement_Sandwich) history.peek(); Object temp47 = obj.get_inner(); if(temp47==null) { is_equal = false; return; } history.push(temp47); } }} after -> ClassElement_Sandwich, inner, ClassElement {{ if (is_equal) history.pop(); }} before -> ClassElement_Sandwich, second, Syntax_List {{ if (is_equal) { ClassElement_Sandwich obj = (ClassElement_Sandwich) history.peek(); Object temp48 = obj.get_second(); if(temp48==null) { is_equal = false; return; } history.push(temp48); } }} after -> ClassElement_Sandwich, second, Syntax_List {{ if (is_equal) history.pop(); }} before ClassElement_Sandwich {{ 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 temp49 = obj.get_first(); if(temp49==null) { is_equal = false; return; } history.push(temp49); } }} 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 temp50 = obj.get_inner(); if(temp50==null) { is_equal = false; return; } history.push(temp50); } }} 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 temp51 = obj.get_second(); if(temp51==null) { is_equal = false; return; } history.push(temp51); } }} 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 -> ClassSpec_Barlist, first, Nonempty_ClassSpec_Barlist {{ if (is_equal) { ClassSpec_Barlist obj = (ClassSpec_Barlist) history.peek(); Object temp52 = obj.get_first(); if(temp52==null) { is_equal = false; return; } history.push(temp52); } }} after -> ClassSpec_Barlist, first, Nonempty_ClassSpec_Barlist {{ if (is_equal) history.pop(); }} before ClassSpec_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 temp53 = obj.get_first(); if(temp53==null) { is_equal = false; return; } history.push(temp53); } }} 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 temp54 = obj.get_inner(); if(temp54==null) { is_equal = false; return; } history.push(temp54); } }} 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 temp55 = obj.get_second(); if(temp55==null) { is_equal = false; return; } history.push(temp55); } }} 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 temp56 = obj.get_first(); if(temp56==null) { is_equal = false; return; } history.push(temp56); } }} 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 temp57 = obj.get_inner(); if(temp57==null) { is_equal = false; return; } history.push(temp57); } }} 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 temp58 = obj.get_second(); if(temp58==null) { is_equal = false; return; } history.push(temp58); } }} 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 temp59 = obj.get_first(); if(temp59==null) { is_equal = false; return; } history.push(temp59); } }} 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 -> ClassSpec_Commalist, first, Nonempty_ClassSpec_Commalist {{ if (is_equal) { ClassSpec_Commalist obj = (ClassSpec_Commalist) history.peek(); Object temp60 = obj.get_first(); if(temp60==null) { is_equal = false; return; } history.push(temp60); } }} after -> ClassSpec_Commalist, first, Nonempty_ClassSpec_Commalist {{ if (is_equal) history.pop(); }} before ClassSpec_Commalist {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Enhancement_List, first, Nonempty_Enhancement_List {{ if (is_equal) { Enhancement_List obj = (Enhancement_List) history.peek(); Object temp61 = obj.get_first(); if(temp61==null) { is_equal = false; return; } history.push(temp61); } }} after -> Enhancement_List, first, Nonempty_Enhancement_List {{ if (is_equal) history.pop(); }} before Enhancement_List {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Nonempty_Definition_DList, it, Definition {{ if (is_equal) { Nonempty_Definition_DList obj = (Nonempty_Definition_DList) history.peek(); Object temp62 = obj.get_it(); if(temp62==null) { is_equal = false; return; } history.push(temp62); } }} after -> Nonempty_Definition_DList, it, Definition {{ if (is_equal) history.pop(); }} before -> Nonempty_Definition_DList, next, Nonempty_Definition_DList {{ if (is_equal) { Nonempty_Definition_DList obj = (Nonempty_Definition_DList) history.peek(); Object temp63 = obj.get_next(); if(temp63==null) { is_equal = false; return; } history.push(temp63); } }} after -> Nonempty_Definition_DList, next, Nonempty_Definition_DList {{ if (is_equal) history.pop(); }} before Nonempty_Definition_DList {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Nonempty_ClassName_Commalist, it, ClassName {{ if (is_equal) { Nonempty_ClassName_Commalist obj = (Nonempty_ClassName_Commalist) history.peek(); Object temp64 = obj.get_it(); if(temp64==null) { is_equal = false; return; } history.push(temp64); } }} after -> Nonempty_ClassName_Commalist, it, ClassName {{ if (is_equal) history.pop(); }} before -> Nonempty_ClassName_Commalist, next, Nonempty_ClassName_Commalist {{ if (is_equal) { Nonempty_ClassName_Commalist obj = (Nonempty_ClassName_Commalist) history.peek(); Object temp65 = obj.get_next(); if(temp65==null) { is_equal = false; return; } history.push(temp65); } }} after -> Nonempty_ClassName_Commalist, next, Nonempty_ClassName_Commalist {{ if (is_equal) history.pop(); }} before Nonempty_ClassName_Commalist {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Nonempty_ClassElementWithSyntax_List, it, ClassElementWithSyntax {{ if (is_equal) { Nonempty_ClassElementWithSyntax_List obj = (Nonempty_ClassElementWithSyntax_List) history.peek(); Object temp66 = obj.get_it(); if(temp66==null) { is_equal = false; return; } history.push(temp66); } }} after -> Nonempty_ClassElementWithSyntax_List, it, ClassElementWithSyntax {{ if (is_equal) history.pop(); }} before -> Nonempty_ClassElementWithSyntax_List, next, Nonempty_ClassElementWithSyntax_List {{ if (is_equal) { Nonempty_ClassElementWithSyntax_List obj = (Nonempty_ClassElementWithSyntax_List) history.peek(); Object temp67 = obj.get_next(); if(temp67==null) { is_equal = false; return; } history.push(temp67); } }} after -> Nonempty_ClassElementWithSyntax_List, next, Nonempty_ClassElementWithSyntax_List {{ if (is_equal) history.pop(); }} before Nonempty_ClassElementWithSyntax_List {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Nonempty_ClassSpec_Barlist, it, ClassSpec {{ if (is_equal) { Nonempty_ClassSpec_Barlist obj = (Nonempty_ClassSpec_Barlist) history.peek(); Object temp68 = obj.get_it(); if(temp68==null) { is_equal = false; return; } history.push(temp68); } }} after -> Nonempty_ClassSpec_Barlist, it, ClassSpec {{ if (is_equal) history.pop(); }} before -> Nonempty_ClassSpec_Barlist, next, Nonempty_ClassSpec_Barlist {{ if (is_equal) { Nonempty_ClassSpec_Barlist obj = (Nonempty_ClassSpec_Barlist) history.peek(); Object temp69 = obj.get_next(); if(temp69==null) { is_equal = false; return; } history.push(temp69); } }} after -> Nonempty_ClassSpec_Barlist, next, Nonempty_ClassSpec_Barlist {{ if (is_equal) history.pop(); }} before Nonempty_ClassSpec_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 temp70 = obj.get_it(); if(temp70==null) { is_equal = false; return; } history.push(temp70); } }} 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 temp71 = obj.get_next(); if(temp71==null) { is_equal = false; return; } history.push(temp71); } }} 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; }} before -> Nonempty_ClassSpec_Commalist, it, ClassSpec {{ if (is_equal) { Nonempty_ClassSpec_Commalist obj = (Nonempty_ClassSpec_Commalist) history.peek(); Object temp72 = obj.get_it(); if(temp72==null) { is_equal = false; return; } history.push(temp72); } }} after -> Nonempty_ClassSpec_Commalist, it, ClassSpec {{ if (is_equal) history.pop(); }} before -> Nonempty_ClassSpec_Commalist, next, Nonempty_ClassSpec_Commalist {{ if (is_equal) { Nonempty_ClassSpec_Commalist obj = (Nonempty_ClassSpec_Commalist) history.peek(); Object temp73 = obj.get_next(); if(temp73==null) { is_equal = false; return; } history.push(temp73); } }} after -> Nonempty_ClassSpec_Commalist, next, Nonempty_ClassSpec_Commalist {{ if (is_equal) history.pop(); }} before Nonempty_ClassSpec_Commalist {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Nonempty_Enhancement_List, it, Enhancement {{ if (is_equal) { Nonempty_Enhancement_List obj = (Nonempty_Enhancement_List) history.peek(); Object temp74 = obj.get_it(); if(temp74==null) { is_equal = false; return; } history.push(temp74); } }} after -> Nonempty_Enhancement_List, it, Enhancement {{ if (is_equal) history.pop(); }} before -> Nonempty_Enhancement_List, next, Nonempty_Enhancement_List {{ if (is_equal) { Nonempty_Enhancement_List obj = (Nonempty_Enhancement_List) history.peek(); Object temp75 = obj.get_next(); if(temp75==null) { is_equal = false; return; } history.push(temp75); } }} after -> Nonempty_Enhancement_List, next, Nonempty_Enhancement_List {{ if (is_equal) history.pop(); }} before Nonempty_Enhancement_List {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} return boolean {{ is_equal }} }