scale.clef
Interface Predicate

All Superinterfaces:
DeclPredicate, ExprPredicate, StmtPredicate, TypePredicate
All Known Implementing Classes:
Clef2C, Clef2Scribble, ClefCalls, DescendPredicate, Display, ErrorPredicate

public interface Predicate
extends DeclPredicate, TypePredicate, StmtPredicate, ExprPredicate

The predicate for the visit pattern on Clef AST nodes.

$Id: Predicate.java,v 1.36 2005-02-07 21:27:48 burrill Exp $

Copyright 2005 by the Scale Compiler Group,
Department of Computer Science
University of Massachusetts,
Amherst MA. 01003, USA
All Rights Reserved.

A traversal predicate has a method per instantiable subclass of a Clef node. Each method represents an action to be done when visiting a node of that type during a traversal of a program representation. Predicates allow logically related code to be grouped together (in an implementation of the predicate).

See Also:
Node.visit(scale.clef.Predicate), DeclPredicate, TypePredicate, StmtPredicate, ExprPredicate

Method Summary
 void visitNode(Node n)
           
 
Methods inherited from interface scale.clef.DeclPredicate
visitCaseLabelDecl, visitDeclaration, visitEnumElementDecl, visitEquivalenceDecl, visitExceptionDecl, visitFieldDecl, visitFileDecl, visitFormalDecl, visitForwardProcedureDecl, visitLabelDecl, visitProcedureDecl, visitRenamedVariableDecl, visitRoutineDecl, visitTypeDecl, visitTypeName, visitUnknownFormals, visitValueDecl, visitVariableDecl
 
Methods inherited from interface scale.clef.TypePredicate
visitAggregateType, visitAllocArrayType, visitArrayType, visitAtomicType, visitBooleanType, visitBound, visitCharacterType, visitComplexType, visitCompositeType, visitEnumerationType, visitFixedArrayType, visitFloatType, visitFortranCharType, visitIncompleteType, visitIntegerType, visitNumericType, visitPointerType, visitProcedureType, visitRaise, visitRaiseWithObject, visitRaiseWithType, visitRealType, visitRecordType, visitRefType, visitSignedIntegerType, visitType, visitUnionType, visitUnsignedIntegerType, visitVoidType
 
Methods inherited from interface scale.clef.StmtPredicate
visitAltCase, visitArithmeticIfStmt, visitAssignedGotoStmt, visitAssignLabelStmt, visitBlockStmt, visitBreakStmt, visitCaseStmt, visitComputedGotoStmt, visitContinueStmt, visitDeclStmt, visitDoLoopStmt, visitEvalStmt, visitExitStmt, visitForLoopStmt, visitGotoStmt, visitIfStmt, visitIfThenElseStmt, visitLabelStmt, visitLoopStmt, visitMultiBranchStmt, visitNullStmt, visitRepeatUntilLoopStmt, visitRepeatWhileLoopStmt, visitReturnStmt, visitStatement, visitSwitchStmt, visitTestLoopStmt, visitWhileLoopStmt
 
Methods inherited from interface scale.clef.ExprPredicate
visitAbsoluteValueOp, visitAdditionAssignmentOp, visitAdditionOp, visitAddressLiteral, visitAddressOp, visitAggregateOp, visitAggregationElements, visitAllocatePlacementOp, visitAllocateSettingFieldsOp, visitAndConditionalOp, visitAndOp, visitAssignmentOp, visitAssignSimpleOp, visitBitAndAssignmentOp, visitBitAndOp, visitBitComplementOp, visitBitOrAssignmentOp, visitBitOrOp, visitBitShiftAssignmentOp, visitBitShiftOp, visitBitXorAssignmentOp, visitBitXorOp, visitBooleanLiteral, visitCallFunctionOp, visitCallOp, visitCharLiteral, visitComplexLiteral, visitComplexOp, visitCompoundAssignmentOp, visitDefOp, visitDeleteArrayOp, visitDeleteOp, visitDereferenceOp, visitDivisionAssignmentOp, visitDivisionOp, visitDyadicOp, visitEqualityOp, visitExponentiationOp, visitExpression, visitExpressionIfOp, visitFloatArrayLiteral, visitFloatLiteral, visitGreaterEqualOp, visitGreaterOp, visitHeapOp, visitIdAddressOp, visitIdReferenceOp, visitIdValueOp, visitIncrementOp, visitIntArrayLiteral, visitIntLiteral, visitLessEqualOp, visitLessOp, visitLiteral, visitMaximumOp, visitMinimumOp, visitModulusOp, visitMonadicOp, visitMultiplicationAssignmentOp, visitMultiplicationOp, visitNegativeOp, visitNilOp, visitNotEqualOp, visitNotOp, visitOrConditionalOp, visitOrOp, visitParenthesesOp, visitPositiveOp, visitPostDecrementOp, visitPostIncrementOp, visitPreDecrementOp, visitPreIncrementOp, visitRemainderAssignmentOp, visitRemainderOp, visitSelectIndirectOp, visitSelectOp, visitSeriesOp, visitSizeofLiteral, visitStatementOp, visitStringLiteral, visitSubscriptAddressOp, visitSubscriptOp, visitSubscriptValueOp, visitSubstringOp, visitSubtractionAssignmentOp, visitSubtractionOp, visitTernaryOp, visitThisOp, visitTranscendental2Op, visitTranscendentalOp, visitTypeConversionOp, visitVaArgOp, visitVaCopyOp, visitVaEndOp, visitVarArgOp, visitVaStartOp
 

Method Detail

visitNode

void visitNode(Node n)