public abstract static class Visitors.DispatchIrVisitor extends java.lang.Object implements GoloIrVisitor, java.util.function.BiFunction<java.lang.Object,GoloElement<?>,java.lang.Object>
The visitor will apply a given function to elements in the IR tree, accumulating returned values.
Three kinds of functions are valid:
null.
 protected abstract FunctionReference dispatchFunction(GoloElement<?> elt)
public java.lang.Object accumulator()
public Visitors.DispatchIrVisitor accumulator(java.lang.Object acc)
public java.lang.Object apply(java.lang.Object acc, GoloElement<?> elt)
Initialize the accumulator with the given value, visit the given element, and returns the final value of the accumulator.
apply in interface java.util.function.BiFunction<java.lang.Object,GoloElement<?>,java.lang.Object>acc - the initial value for the accumulatorelt - the IR element to visitpublic void visitModule(GoloModule elt)
visitModule in interface GoloIrVisitorpublic void visitModuleImport(ModuleImport elt)
visitModuleImport in interface GoloIrVisitorpublic void visitStruct(Struct elt)
visitStruct in interface GoloIrVisitorpublic void visitUnion(Union elt)
visitUnion in interface GoloIrVisitorpublic void visitUnionValue(UnionValue elt)
visitUnionValue in interface GoloIrVisitorpublic void visitAugmentation(Augmentation elt)
visitAugmentation in interface GoloIrVisitorpublic void visitNamedAugmentation(NamedAugmentation elt)
visitNamedAugmentation in interface GoloIrVisitorpublic void visitFunction(GoloFunction elt)
visitFunction in interface GoloIrVisitorpublic void visitDecorator(Decorator elt)
visitDecorator in interface GoloIrVisitorpublic void visitBlock(Block elt)
visitBlock in interface GoloIrVisitorpublic void visitConstantStatement(ConstantStatement elt)
visitConstantStatement in interface GoloIrVisitorpublic void visitReturnStatement(ReturnStatement elt)
visitReturnStatement in interface GoloIrVisitorpublic void visitFunctionInvocation(FunctionInvocation elt)
visitFunctionInvocation in interface GoloIrVisitorpublic void visitMethodInvocation(MethodInvocation elt)
visitMethodInvocation in interface GoloIrVisitorpublic void visitAssignmentStatement(AssignmentStatement elt)
visitAssignmentStatement in interface GoloIrVisitorpublic void visitDestructuringAssignment(DestructuringAssignment elt)
visitDestructuringAssignment in interface GoloIrVisitorpublic void visitReferenceLookup(ReferenceLookup elt)
visitReferenceLookup in interface GoloIrVisitorpublic void visitConditionalBranching(ConditionalBranching elt)
visitConditionalBranching in interface GoloIrVisitorpublic void visitBinaryOperation(BinaryOperation elt)
visitBinaryOperation in interface GoloIrVisitorpublic void visitUnaryOperation(UnaryOperation elt)
visitUnaryOperation in interface GoloIrVisitorpublic void visitLoopStatement(LoopStatement elt)
visitLoopStatement in interface GoloIrVisitorpublic void visitForEachLoopStatement(ForEachLoopStatement elt)
visitForEachLoopStatement in interface GoloIrVisitorpublic void visitCaseStatement(CaseStatement elt)
visitCaseStatement in interface GoloIrVisitorpublic void visitMatchExpression(MatchExpression elt)
visitMatchExpression in interface GoloIrVisitorpublic void visitWhenClause(WhenClause<?> elt)
visitWhenClause in interface GoloIrVisitorpublic void visitThrowStatement(ThrowStatement elt)
visitThrowStatement in interface GoloIrVisitorpublic void visitTryCatchFinally(TryCatchFinally elt)
visitTryCatchFinally in interface GoloIrVisitorpublic void visitClosureReference(ClosureReference elt)
visitClosureReference in interface GoloIrVisitorpublic void visitLoopBreakFlowStatement(LoopBreakFlowStatement elt)
visitLoopBreakFlowStatement in interface GoloIrVisitorpublic void visitCollectionLiteral(CollectionLiteral elt)
visitCollectionLiteral in interface GoloIrVisitorpublic void visitCollectionComprehension(CollectionComprehension elt)
visitCollectionComprehension in interface GoloIrVisitorpublic void visitNamedArgument(NamedArgument elt)
visitNamedArgument in interface GoloIrVisitorpublic void visitLocalReference(LocalReference elt)
visitLocalReference in interface GoloIrVisitorpublic void visitMember(Member elt)
visitMember in interface GoloIrVisitorpublic void visitNoop(Noop elt)
visitNoop in interface GoloIrVisitorpublic void visitToplevelElements(ToplevelElements elt)
visitToplevelElements in interface GoloIrVisitor