001/* 002 * Copyright (c) 2012-2017 Institut National des Sciences Appliquées de Lyon (INSA-Lyon) 003 * 004 * All rights reserved. This program and the accompanying materials 005 * are made available under the terms of the Eclipse Public License v1.0 006 * which accompanies this distribution, and is available at 007 * http://www.eclipse.org/legal/epl-v10.html 008 */ 009 010package org.eclipse.golo.compiler.ir; 011 012public interface GoloIrVisitor { 013 014 void visitModule(GoloModule module); 015 016 void visitModuleImport(ModuleImport moduleImport); 017 018 void visitStruct(Struct struct); 019 020 void visitUnion(Union union); 021 022 void visitUnionValue(UnionValue value); 023 024 void visitAugmentation(Augmentation augment); 025 026 void visitNamedAugmentation(NamedAugmentation augment); 027 028 void visitFunction(GoloFunction function); 029 030 void visitDecorator(Decorator decorator); 031 032 void visitBlock(Block block); 033 034 void visitConstantStatement(ConstantStatement constantStatement); 035 036 void visitReturnStatement(ReturnStatement returnStatement); 037 038 void visitFunctionInvocation(FunctionInvocation functionInvocation); 039 040 void visitAssignmentStatement(AssignmentStatement assignmentStatement); 041 042 void visitDestructuringAssignment(DestructuringAssignment assignmentStatement); 043 044 void visitReferenceLookup(ReferenceLookup referenceLookup); 045 046 void visitConditionalBranching(ConditionalBranching conditionalBranching); 047 048 void visitBinaryOperation(BinaryOperation binaryOperation); 049 050 void visitUnaryOperation(UnaryOperation unaryOperation); 051 052 void visitLoopStatement(LoopStatement loopStatement); 053 054 void visitForEachLoopStatement(ForEachLoopStatement foreachStatement); 055 056 void visitCaseStatement(CaseStatement caseStatement); 057 058 void visitMatchExpression(MatchExpression matchExpression); 059 060 void visitWhenClause(WhenClause<?> whenClause); 061 062 void visitMethodInvocation(MethodInvocation methodInvocation); 063 064 void visitThrowStatement(ThrowStatement throwStatement); 065 066 void visitTryCatchFinally(TryCatchFinally tryCatchFinally); 067 068 void visitClosureReference(ClosureReference closureReference); 069 070 void visitLoopBreakFlowStatement(LoopBreakFlowStatement loopBreakFlowStatement); 071 072 void visitCollectionLiteral(CollectionLiteral collectionLiteral); 073 074 void visitCollectionComprehension(CollectionComprehension collectionComprehension); 075 076 void visitNamedArgument(NamedArgument namedArgument); 077 078 void visitLocalReference(LocalReference localRef); 079 080 void visitMember(Member member); 081}