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}