/*
 * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Distribution License v. 1.0, which is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

package org.glassfish.pfl.dynamic.codegen.impl;

import org.glassfish.pfl.dynamic.codegen.spi.Type ;
import org.glassfish.pfl.dynamic.codegen.impl.ExpressionInternal ;
import org.glassfish.pfl.dynamic.codegen.spi.Signature ;
import org.glassfish.pfl.dynamic.codegen.spi.Variable ;

Author:Ken Cavanaugh
/** * * @author Ken Cavanaugh */
public interface Visitor { void visitClassGenerator( ClassGeneratorImpl arg ) ; void visitMethodGenerator( MethodGenerator arg ) ; void visitNode( Node arg ) ; void visitFieldGenerator( FieldGenerator arg ) ; void visitStatement( Statement arg ) ; void visitThrowStatement( ThrowStatement arg ) ; void visitAssignmentStatement( AssignmentStatement arg ) ; void visitDefinitionStatement( DefinitionStatement arg ) ; void visitBlockStatement( BlockStatement arg ) ; void visitCaseBranch( CaseBranch arg ) ; void visitIfStatement( IfStatement arg ) ; void visitBreakStatement( BreakStatement arg ) ; void visitReturnStatement( ReturnStatement arg ) ; void visitSwitchStatement( SwitchStatement arg ) ; void visitTryStatement( TryStatement arg ) ; void visitWhileStatement( WhileStatement arg ) ; void visitExpression( ExpressionInternal arg ) ; void visitVariable( Variable arg ) ; void visitConstantExpression( ExpressionFactory.ConstantExpression arg ) ; void visitVoidExpression( ExpressionFactory.VoidExpression arg ) ; void visitThisExpression( ExpressionFactory.ThisExpression arg ) ; void visitUnaryOperatorExpression( ExpressionFactory.UnaryOperatorExpression arg ) ; void visitBinaryOperatorExpression( ExpressionFactory.BinaryOperatorExpression arg ) ; void visitCastExpression( ExpressionFactory.CastExpression arg ) ; void visitInstofExpression( ExpressionFactory.InstofExpression arg ) ; void visitStaticCallExpression( ExpressionFactory.StaticCallExpression arg ) ; void visitNonStaticCallExpression( ExpressionFactory.NonStaticCallExpression arg ) ; void visitNewObjExpression( ExpressionFactory.NewObjExpression arg ) ; void visitNewArrExpression( ExpressionFactory.NewArrExpression arg ) ; void visitSuperCallExpression( ExpressionFactory.SuperCallExpression arg ) ; void visitSuperObjExpression( ExpressionFactory.SuperObjExpression arg ) ; void visitThisObjExpression( ExpressionFactory.ThisObjExpression arg ) ; void visitNonStaticFieldAccessExpression( ExpressionFactory.NonStaticFieldAccessExpression arg ) ; void visitStaticFieldAccessExpression( ExpressionFactory.StaticFieldAccessExpression arg ) ; void visitArrayIndexExpression( ExpressionFactory.ArrayIndexExpression arg ) ; void visitArrayLengthExpression( ExpressionFactory.ArrayLengthExpression arg ) ; void visitIfExpression( ExpressionFactory.IfExpression arg ) ; }