001/* A visitor for parse trees of the expression language.
002
003 Copyright (c) 1998-2013 The Regents of the University of California
004 All rights reserved.
005 Permission is hereby granted, without written agreement and without
006 license or royalty fees, to use, copy, modify, and distribute this
007 software and its documentation for any purpose, provided that the above
008 copyright notice and the following two paragraphs appear in all copies
009 of this software.
010
011 IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA OR RESEARCH IN MOTION
012 LIMITED BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL,
013 INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS
014 SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA
015 OR RESEARCH IN MOTION LIMITED HAVE BEEN ADVISED OF THE POSSIBILITY OF
016 SUCH DAMAGE.
017
018 THE UNIVERSITY OF CALIFORNIA AND RESEARCH IN MOTION LIMITED
019 SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
020 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
021 PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS"
022 BASIS, AND THE UNIVERSITY OF CALIFORNIA AND RESEARCH IN MOTION
023 LIMITED HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
024 ENHANCEMENTS, OR MODIFICATIONS.
025
026
027 */
028package ptolemy.data.expr;
029
030import ptolemy.kernel.util.IllegalActionException;
031
032///////////////////////////////////////////////////////////////////
033//// ParseTreeVisitor
034
035/**
036 This class implements the visitor pattern for parse trees in the
037 expression language.
038
039 @author Steve Neuendorffer
040 @version $Id$
041 @since Ptolemy II 2.1
042 @Pt.ProposedRating Red (neuendor)
043 @Pt.AcceptedRating Red (cxh)
044 @see ptolemy.data.expr.ASTPtRootNode
045 */
046public interface ParseTreeVisitor {
047    ///////////////////////////////////////////////////////////////////
048    ////                         public methods                    ////
049    public void visitArrayConstructNode(ASTPtArrayConstructNode node)
050            throws IllegalActionException;
051
052    public void visitAssignmentNode(ASTPtAssignmentNode node)
053            throws IllegalActionException;
054
055    public void visitBitwiseNode(ASTPtBitwiseNode node)
056            throws IllegalActionException;
057
058    public void visitFunctionApplicationNode(ASTPtFunctionApplicationNode node)
059            throws IllegalActionException;
060
061    public void visitFunctionDefinitionNode(ASTPtFunctionDefinitionNode node)
062            throws IllegalActionException;
063
064    public void visitFunctionalIfNode(ASTPtFunctionalIfNode node)
065            throws IllegalActionException;
066
067    public void visitLeafNode(ASTPtLeafNode node) throws IllegalActionException;
068
069    public void visitLogicalNode(ASTPtLogicalNode node)
070            throws IllegalActionException;
071
072    public void visitMatrixConstructNode(ASTPtMatrixConstructNode node)
073            throws IllegalActionException;
074
075    public void visitMethodCallNode(ASTPtMethodCallNode node)
076            throws IllegalActionException;
077
078    public void visitPowerNode(ASTPtPowerNode node)
079            throws IllegalActionException;
080
081    public void visitProductNode(ASTPtProductNode node)
082            throws IllegalActionException;
083
084    public void visitRecordConstructNode(ASTPtRecordConstructNode node)
085            throws IllegalActionException;
086
087    public void visitRelationalNode(ASTPtRelationalNode node)
088            throws IllegalActionException;
089
090    public void visitShiftNode(ASTPtShiftNode node)
091            throws IllegalActionException;
092
093    public void visitSumNode(ASTPtSumNode node) throws IllegalActionException;
094
095    public void visitUnaryNode(ASTPtUnaryNode node)
096            throws IllegalActionException;
097
098    public void visitUnionConstructNode(ASTPtUnionConstructNode node)
099            throws IllegalActionException;
100}