scale.clef2scribble
Class Clef2Scribble

java.lang.Object
  extended by scale.clef.ErrorPredicate
      extended by scale.clef2scribble.Clef2Scribble
All Implemented Interfaces:
DeclPredicate, ExprPredicate, Predicate, StmtPredicate, TypePredicate

public class Clef2Scribble
extends ErrorPredicate

This class builds a Scribble graph (CFG) out of a Clef tree (AST).

$Id: Clef2Scribble.java,v 1.374 2007-10-04 19:58:09 burrill Exp $

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

This class builds a Scribble graph out of a Clef graph.

The functionality of building the Scribble graph has been separated from the actual Scribble class to keep each class small.

Methods that convert Clef statements return a range of Scribble statements (or basic blocks) that are equivalent to the Clef statement. Methods that convert Clef expressions return a range of Score statements as well, but also an indication of which variable holds the final value of that expression.


Field Summary
static boolean hasDummyAliases
          True if there may be aliases between address arguments to subroutines.
static boolean noBuiltins
          Set true if certain standard C library functions should not be inlined.
 
Constructor Summary
Clef2Scribble(RoutineDecl rd, SourceLanguage lang, CallGraph cg)
          Construct a Scribble graph for a single routine.
 
Method Summary
static int equVariables()
          Return the number of equivalence variables declared.
static int formalVariables()
          Return the number of formal variables declared.
static int globalVariables()
          Return the number of global variables declared.
static int newCFGNodes()
          Return the current number of dead nodes removed.
static int redundantTests()
          Return the current number of redundant tests removed.
static int regVariables()
          Return the number of regular variables declared.
static int tempVariables()
          Return the number of temporary variables declared.
static int variables()
          Return the number of variables declared.
 void visitAbsoluteValueOp(AbsoluteValueOp no)
           
 void visitAdditionAssignmentOp(AdditionAssignmentOp deo)
           
 void visitAdditionOp(AdditionOp deo)
           
 void visitAddressLiteral(AddressLiteral al)
           
 void visitAddressOp(AddressOp aa)
           
 void visitAggregationElements(AggregationElements ag)
           
 void visitAndConditionalOp(AndConditionalOp cs)
          Converts an expression of the form (a && b) to the series of CFG nodes.
 void visitAndOp(AndOp deo)
           
 void visitArithmeticIfStmt(ArithmeticIfStmt s)
           
 void visitAssignSimpleOp(AssignSimpleOp p)
           
 void visitBitAndAssignmentOp(BitAndAssignmentOp deo)
           
 void visitBitAndOp(BitAndOp deo)
           
 void visitBitComplementOp(BitComplementOp deo)
           
 void visitBitOrAssignmentOp(BitOrAssignmentOp deo)
           
 void visitBitOrOp(BitOrOp deo)
           
 void visitBitShiftAssignmentOp(BitShiftAssignmentOp deo)
           
 void visitBitShiftOp(BitShiftOp deo)
           
 void visitBitXorAssignmentOp(BitXorAssignmentOp deo)
           
 void visitBitXorOp(BitXorOp deo)
           
 void visitBlockStmt(BlockStmt cs)
           
 void visitBooleanLiteral(BooleanLiteral ce)
           
 void visitBreakStmt(BreakStmt cs)
           
 void visitCallFunctionOp(CallFunctionOp co)
           
 void visitCharLiteral(CharLiteral ce)
           
 void visitComplexLiteral(ComplexLiteral ce)
           
 void visitComplexOp(ComplexOp op)
           
 void visitComputedGotoStmt(ComputedGotoStmt s)
           
 void visitContinueStmt(ContinueStmt cs)
           
 void visitDeclStmt(DeclStmt cs)
           
 void visitDefOp(DefOp p)
           
 void visitDereferenceOp(DereferenceOp dr)
           
 void visitDivisionAssignmentOp(DivisionAssignmentOp deo)
           
 void visitDivisionOp(DivisionOp deo)
           
 void visitDoLoopStmt(DoLoopStmt cs)
           
 void visitEqualityOp(EqualityOp deo)
           
 void visitEvalStmt(EvalStmt cs)
           
 void visitExitStmt(ExitStmt cs)
           
 void visitExponentiationOp(ExponentiationOp deo)
           
 void visitExpressionIfOp(ExpressionIfOp cs)
           
 void visitFloatArrayLiteral(FloatArrayLiteral fal)
           
 void visitFloatLiteral(FloatLiteral ce)
           
 void visitForLoopStmt(ForLoopStmt cs)
           
 void visitGotoStmt(GotoStmt cs)
           
 void visitGreaterEqualOp(GreaterEqualOp deo)
           
 void visitGreaterOp(GreaterOp deo)
           
 void visitIdAddressOp(IdAddressOp ce)
           
 void visitIdValueOp(IdValueOp ce)
           
 void visitIfThenElseStmt(IfThenElseStmt cs)
           
 void visitIntArrayLiteral(IntArrayLiteral fal)
           
 void visitIntLiteral(IntLiteral ce)
           
 void visitLabelStmt(LabelStmt cs)
           
 void visitLessEqualOp(LessEqualOp deo)
           
 void visitLessOp(LessOp deo)
           
 void visitLiteral(Literal li)
           
 void visitMaximumOp(MaximumOp deo)
          Converts an expression of the form max(a,b) to the series of CFG nodes.
 void visitMinimumOp(MinimumOp deo)
          Converts an expression of the form min(a,b) to the series of CFG nodes.
 void visitMultiplicationAssignmentOp(MultiplicationAssignmentOp deo)
           
 void visitMultiplicationOp(MultiplicationOp deo)
           
 void visitNegativeOp(NegativeOp no)
           
 void visitNilOp(NilOp deo)
           
 void visitNotEqualOp(NotEqualOp deo)
           
 void visitNotOp(NotOp deo)
           
 void visitNullStmt(NullStmt cs)
           
 void visitOrConditionalOp(OrConditionalOp cs)
          Converts an expression of the form (a || b) to the series of CFG nodes.
 void visitOrOp(OrOp deo)
           
 void visitParenthesesOp(ParenthesesOp p)
           
 void visitPositiveOp(PositiveOp p)
           
 void visitPostDecrementOp(PostDecrementOp io)
           
 void visitPostIncrementOp(PostIncrementOp io)
           
 void visitPreDecrementOp(PreDecrementOp io)
           
 void visitPreIncrementOp(PreIncrementOp io)
           
 void visitProcedureDecl(ProcedureDecl n)
           
 void visitRemainderAssignmentOp(RemainderAssignmentOp deo)
           
 void visitRemainderOp(RemainderOp deo)
           
 void visitRepeatUntilLoopStmt(RepeatUntilLoopStmt cs)
           
 void visitRepeatWhileLoopStmt(RepeatWhileLoopStmt cs)
           
 void visitReturnStmt(ReturnStmt cs)
          Create a scribble return statement.
 void visitSelectIndirectOp(SelectIndirectOp s)
           
 void visitSelectOp(SelectOp s)
           
 void visitSeriesOp(SeriesOp op)
           
 void visitSizeofLiteral(SizeofLiteral ce)
           
 void visitStatementOp(StatementOp so)
           
 void visitStringLiteral(StringLiteral sl)
           
 void visitSubscriptAddressOp(SubscriptAddressOp sub)
           
 void visitSubscriptValueOp(SubscriptValueOp sub)
           
 void visitSubtractionAssignmentOp(SubtractionAssignmentOp deo)
           
 void visitSubtractionOp(SubtractionOp deo)
           
 void visitSwitchStmt(SwitchStmt s)
           
 void visitTranscendental2Op(Transcendental2Op no)
           
 void visitTranscendentalOp(TranscendentalOp no)
           
 void visitTypeConversionOp(TypeConversionOp op)
           
 void visitVaArgOp(VaArgOp va)
           
 void visitVaCopyOp(VaCopyOp p)
           
 void visitVaEndOp(VaEndOp va)
           
 void visitVaStartOp(VaStartOp va)
           
 void visitWhileLoopStmt(WhileLoopStmt cs)
           
 
Methods inherited from class scale.clef.ErrorPredicate
visitAggregateOp, visitAggregateType, visitAllocArrayType, visitAllocatePlacementOp, visitAllocateSettingFieldsOp, visitAltCase, visitArrayType, visitAssignedGotoStmt, visitAssignLabelStmt, visitAssignmentOp, visitAtomicType, visitBooleanType, visitBound, visitCallOp, visitCaseLabelDecl, visitCaseStmt, visitCharacterType, visitComplexType, visitCompositeType, visitCompoundAssignmentOp, visitDeclaration, visitDeleteArrayOp, visitDeleteOp, visitDyadicOp, visitEnumElementDecl, visitEnumerationType, visitEquivalenceDecl, visitExceptionDecl, visitExpression, visitFieldDecl, visitFileDecl, visitFixedArrayType, visitFloatType, visitFormalDecl, visitFortranCharType, visitForwardProcedureDecl, visitHeapOp, visitIdReferenceOp, visitIfStmt, visitIncompleteType, visitIncrementOp, visitIntegerType, visitLabelDecl, visitLoopStmt, visitModulusOp, visitMonadicOp, visitMultiBranchStmt, visitNode, visitNumericType, visitPointerType, visitProcedureType, visitRaise, visitRaiseWithObject, visitRaiseWithType, visitRealType, visitRecordType, visitRefType, visitRenamedVariableDecl, visitRoutineDecl, visitSignedIntegerType, visitStatement, visitSubscriptOp, visitSubstringOp, visitTernaryOp, visitTestLoopStmt, visitThisOp, visitType, visitTypeDecl, visitTypeName, visitUnionType, visitUnknownFormals, visitUnsignedIntegerType, visitValueDecl, visitVarArgOp, visitVariableDecl, visitVoidType
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

noBuiltins

public static boolean noBuiltins
Set true if certain standard C library functions should not be inlined.


hasDummyAliases

public static boolean hasDummyAliases
True if there may be aliases between address arguments to subroutines.

Constructor Detail

Clef2Scribble

public Clef2Scribble(RoutineDecl rd,
                     SourceLanguage lang,
                     CallGraph cg)
Construct a Scribble graph for a single routine. We maintain a pointer some of the clef information as well. Specifically, the symbol and type tables and the source language that generated the Clef tree.

Parameters:
rd - the node in the call graph that represents the
lang - specifies the source language
Method Detail

variables

public static int variables()
Return the number of variables declared.


regVariables

public static int regVariables()
Return the number of regular variables declared.


equVariables

public static int equVariables()
Return the number of equivalence variables declared.


formalVariables

public static int formalVariables()
Return the number of formal variables declared.


globalVariables

public static int globalVariables()
Return the number of global variables declared.


tempVariables

public static int tempVariables()
Return the number of temporary variables declared.


newCFGNodes

public static int newCFGNodes()
Return the current number of dead nodes removed.


redundantTests

public static int redundantTests()
Return the current number of redundant tests removed.


visitProcedureDecl

public void visitProcedureDecl(ProcedureDecl n)
Specified by:
visitProcedureDecl in interface DeclPredicate
Overrides:
visitProcedureDecl in class ErrorPredicate

visitBlockStmt

public void visitBlockStmt(BlockStmt cs)
Specified by:
visitBlockStmt in interface StmtPredicate
Overrides:
visitBlockStmt in class ErrorPredicate

visitIfThenElseStmt

public void visitIfThenElseStmt(IfThenElseStmt cs)
Specified by:
visitIfThenElseStmt in interface StmtPredicate
Overrides:
visitIfThenElseStmt in class ErrorPredicate

visitArithmeticIfStmt

public void visitArithmeticIfStmt(ArithmeticIfStmt s)
Specified by:
visitArithmeticIfStmt in interface StmtPredicate
Overrides:
visitArithmeticIfStmt in class ErrorPredicate

visitComputedGotoStmt

public void visitComputedGotoStmt(ComputedGotoStmt s)
Specified by:
visitComputedGotoStmt in interface StmtPredicate
Overrides:
visitComputedGotoStmt in class ErrorPredicate

visitSwitchStmt

public void visitSwitchStmt(SwitchStmt s)
Specified by:
visitSwitchStmt in interface StmtPredicate
Overrides:
visitSwitchStmt in class ErrorPredicate

visitWhileLoopStmt

public void visitWhileLoopStmt(WhileLoopStmt cs)
Specified by:
visitWhileLoopStmt in interface StmtPredicate
Overrides:
visitWhileLoopStmt in class ErrorPredicate

visitRepeatWhileLoopStmt

public void visitRepeatWhileLoopStmt(RepeatWhileLoopStmt cs)
Specified by:
visitRepeatWhileLoopStmt in interface StmtPredicate
Overrides:
visitRepeatWhileLoopStmt in class ErrorPredicate

visitRepeatUntilLoopStmt

public void visitRepeatUntilLoopStmt(RepeatUntilLoopStmt cs)
Specified by:
visitRepeatUntilLoopStmt in interface StmtPredicate
Overrides:
visitRepeatUntilLoopStmt in class ErrorPredicate

visitDoLoopStmt

public void visitDoLoopStmt(DoLoopStmt cs)
Specified by:
visitDoLoopStmt in interface StmtPredicate
Overrides:
visitDoLoopStmt in class ErrorPredicate

visitForLoopStmt

public void visitForLoopStmt(ForLoopStmt cs)
Specified by:
visitForLoopStmt in interface StmtPredicate
Overrides:
visitForLoopStmt in class ErrorPredicate

visitBreakStmt

public void visitBreakStmt(BreakStmt cs)
Specified by:
visitBreakStmt in interface StmtPredicate
Overrides:
visitBreakStmt in class ErrorPredicate

visitContinueStmt

public void visitContinueStmt(ContinueStmt cs)
Specified by:
visitContinueStmt in interface StmtPredicate
Overrides:
visitContinueStmt in class ErrorPredicate

visitGotoStmt

public void visitGotoStmt(GotoStmt cs)
Specified by:
visitGotoStmt in interface StmtPredicate
Overrides:
visitGotoStmt in class ErrorPredicate

visitReturnStmt

public void visitReturnStmt(ReturnStmt cs)
Create a scribble return statement. Note that we copy the return expression into a special variable in order to make later analysis easier (e.g., alias analysis).

Specified by:
visitReturnStmt in interface StmtPredicate
Overrides:
visitReturnStmt in class ErrorPredicate

visitExitStmt

public void visitExitStmt(ExitStmt cs)
Specified by:
visitExitStmt in interface StmtPredicate
Overrides:
visitExitStmt in class ErrorPredicate

visitEvalStmt

public void visitEvalStmt(EvalStmt cs)
Specified by:
visitEvalStmt in interface StmtPredicate
Overrides:
visitEvalStmt in class ErrorPredicate

visitDeclStmt

public void visitDeclStmt(DeclStmt cs)
Specified by:
visitDeclStmt in interface StmtPredicate
Overrides:
visitDeclStmt in class ErrorPredicate

visitNullStmt

public void visitNullStmt(NullStmt cs)
Specified by:
visitNullStmt in interface StmtPredicate
Overrides:
visitNullStmt in class ErrorPredicate

visitLabelStmt

public void visitLabelStmt(LabelStmt cs)
Specified by:
visitLabelStmt in interface StmtPredicate
Overrides:
visitLabelStmt in class ErrorPredicate

visitLiteral

public void visitLiteral(Literal li)
Specified by:
visitLiteral in interface ExprPredicate
Overrides:
visitLiteral in class ErrorPredicate

visitAddressLiteral

public void visitAddressLiteral(AddressLiteral al)
Specified by:
visitAddressLiteral in interface ExprPredicate
Overrides:
visitAddressLiteral in class ErrorPredicate

visitIntLiteral

public void visitIntLiteral(IntLiteral ce)
Specified by:
visitIntLiteral in interface ExprPredicate
Overrides:
visitIntLiteral in class ErrorPredicate

visitFloatLiteral

public void visitFloatLiteral(FloatLiteral ce)
Specified by:
visitFloatLiteral in interface ExprPredicate
Overrides:
visitFloatLiteral in class ErrorPredicate

visitComplexLiteral

public void visitComplexLiteral(ComplexLiteral ce)
Specified by:
visitComplexLiteral in interface ExprPredicate
Overrides:
visitComplexLiteral in class ErrorPredicate

visitSizeofLiteral

public void visitSizeofLiteral(SizeofLiteral ce)
Specified by:
visitSizeofLiteral in interface ExprPredicate
Overrides:
visitSizeofLiteral in class ErrorPredicate

visitStringLiteral

public void visitStringLiteral(StringLiteral sl)
Specified by:
visitStringLiteral in interface ExprPredicate
Overrides:
visitStringLiteral in class ErrorPredicate

visitFloatArrayLiteral

public void visitFloatArrayLiteral(FloatArrayLiteral fal)
Specified by:
visitFloatArrayLiteral in interface ExprPredicate
Overrides:
visitFloatArrayLiteral in class ErrorPredicate

visitIntArrayLiteral

public void visitIntArrayLiteral(IntArrayLiteral fal)
Specified by:
visitIntArrayLiteral in interface ExprPredicate
Overrides:
visitIntArrayLiteral in class ErrorPredicate

visitAggregationElements

public void visitAggregationElements(AggregationElements ag)
Specified by:
visitAggregationElements in interface ExprPredicate
Overrides:
visitAggregationElements in class ErrorPredicate

visitBooleanLiteral

public void visitBooleanLiteral(BooleanLiteral ce)
Specified by:
visitBooleanLiteral in interface ExprPredicate
Overrides:
visitBooleanLiteral in class ErrorPredicate

visitCharLiteral

public void visitCharLiteral(CharLiteral ce)
Specified by:
visitCharLiteral in interface ExprPredicate
Overrides:
visitCharLiteral in class ErrorPredicate

visitVaArgOp

public void visitVaArgOp(VaArgOp va)
Specified by:
visitVaArgOp in interface ExprPredicate
Overrides:
visitVaArgOp in class ErrorPredicate

visitVaCopyOp

public void visitVaCopyOp(VaCopyOp p)
Specified by:
visitVaCopyOp in interface ExprPredicate
Overrides:
visitVaCopyOp in class ErrorPredicate

visitVaEndOp

public void visitVaEndOp(VaEndOp va)
Specified by:
visitVaEndOp in interface ExprPredicate
Overrides:
visitVaEndOp in class ErrorPredicate

visitVaStartOp

public void visitVaStartOp(VaStartOp va)
Specified by:
visitVaStartOp in interface ExprPredicate
Overrides:
visitVaStartOp in class ErrorPredicate

visitIdAddressOp

public void visitIdAddressOp(IdAddressOp ce)
Specified by:
visitIdAddressOp in interface ExprPredicate
Overrides:
visitIdAddressOp in class ErrorPredicate

visitIdValueOp

public void visitIdValueOp(IdValueOp ce)
Specified by:
visitIdValueOp in interface ExprPredicate
Overrides:
visitIdValueOp in class ErrorPredicate

visitStatementOp

public void visitStatementOp(StatementOp so)
Specified by:
visitStatementOp in interface ExprPredicate
Overrides:
visitStatementOp in class ErrorPredicate

visitSeriesOp

public void visitSeriesOp(SeriesOp op)
Specified by:
visitSeriesOp in interface ExprPredicate
Overrides:
visitSeriesOp in class ErrorPredicate

visitParenthesesOp

public void visitParenthesesOp(ParenthesesOp p)
Specified by:
visitParenthesesOp in interface ExprPredicate
Overrides:
visitParenthesesOp in class ErrorPredicate

visitAssignSimpleOp

public void visitAssignSimpleOp(AssignSimpleOp p)
Specified by:
visitAssignSimpleOp in interface ExprPredicate
Overrides:
visitAssignSimpleOp in class ErrorPredicate

visitDefOp

public void visitDefOp(DefOp p)
Specified by:
visitDefOp in interface ExprPredicate
Overrides:
visitDefOp in class ErrorPredicate

visitPositiveOp

public void visitPositiveOp(PositiveOp p)
Specified by:
visitPositiveOp in interface ExprPredicate
Overrides:
visitPositiveOp in class ErrorPredicate

visitNegativeOp

public void visitNegativeOp(NegativeOp no)
Specified by:
visitNegativeOp in interface ExprPredicate
Overrides:
visitNegativeOp in class ErrorPredicate

visitTranscendentalOp

public void visitTranscendentalOp(TranscendentalOp no)
Specified by:
visitTranscendentalOp in interface ExprPredicate
Overrides:
visitTranscendentalOp in class ErrorPredicate

visitTranscendental2Op

public void visitTranscendental2Op(Transcendental2Op no)
Specified by:
visitTranscendental2Op in interface ExprPredicate
Overrides:
visitTranscendental2Op in class ErrorPredicate

visitAbsoluteValueOp

public void visitAbsoluteValueOp(AbsoluteValueOp no)
Specified by:
visitAbsoluteValueOp in interface ExprPredicate
Overrides:
visitAbsoluteValueOp in class ErrorPredicate

visitMinimumOp

public void visitMinimumOp(MinimumOp deo)
Converts an expression of the form min(a,b) to the series of CFG nodes. Converted to
   check = a < b
   if (check) then t = a else t = b
   t
 
where t is the result value.

Specified by:
visitMinimumOp in interface ExprPredicate
Overrides:
visitMinimumOp in class ErrorPredicate

visitMaximumOp

public void visitMaximumOp(MaximumOp deo)
Converts an expression of the form max(a,b) to the series of CFG nodes. Converted to
   check = a > b
   if (check) then t = a else t = b
   t
 
where t is the result value.

Specified by:
visitMaximumOp in interface ExprPredicate
Overrides:
visitMaximumOp in class ErrorPredicate

visitAdditionOp

public void visitAdditionOp(AdditionOp deo)
Specified by:
visitAdditionOp in interface ExprPredicate
Overrides:
visitAdditionOp in class ErrorPredicate

visitSubtractionOp

public void visitSubtractionOp(SubtractionOp deo)
Specified by:
visitSubtractionOp in interface ExprPredicate
Overrides:
visitSubtractionOp in class ErrorPredicate

visitMultiplicationOp

public void visitMultiplicationOp(MultiplicationOp deo)
Specified by:
visitMultiplicationOp in interface ExprPredicate
Overrides:
visitMultiplicationOp in class ErrorPredicate

visitDivisionOp

public void visitDivisionOp(DivisionOp deo)
Specified by:
visitDivisionOp in interface ExprPredicate
Overrides:
visitDivisionOp in class ErrorPredicate

visitRemainderOp

public void visitRemainderOp(RemainderOp deo)
Specified by:
visitRemainderOp in interface ExprPredicate
Overrides:
visitRemainderOp in class ErrorPredicate

visitExponentiationOp

public void visitExponentiationOp(ExponentiationOp deo)
Specified by:
visitExponentiationOp in interface ExprPredicate
Overrides:
visitExponentiationOp in class ErrorPredicate

visitPreDecrementOp

public void visitPreDecrementOp(PreDecrementOp io)
Specified by:
visitPreDecrementOp in interface ExprPredicate
Overrides:
visitPreDecrementOp in class ErrorPredicate

visitPreIncrementOp

public void visitPreIncrementOp(PreIncrementOp io)
Specified by:
visitPreIncrementOp in interface ExprPredicate
Overrides:
visitPreIncrementOp in class ErrorPredicate

visitPostDecrementOp

public void visitPostDecrementOp(PostDecrementOp io)
Specified by:
visitPostDecrementOp in interface ExprPredicate
Overrides:
visitPostDecrementOp in class ErrorPredicate

visitPostIncrementOp

public void visitPostIncrementOp(PostIncrementOp io)
Specified by:
visitPostIncrementOp in interface ExprPredicate
Overrides:
visitPostIncrementOp in class ErrorPredicate

visitEqualityOp

public void visitEqualityOp(EqualityOp deo)
Specified by:
visitEqualityOp in interface ExprPredicate
Overrides:
visitEqualityOp in class ErrorPredicate

visitGreaterEqualOp

public void visitGreaterEqualOp(GreaterEqualOp deo)
Specified by:
visitGreaterEqualOp in interface ExprPredicate
Overrides:
visitGreaterEqualOp in class ErrorPredicate

visitGreaterOp

public void visitGreaterOp(GreaterOp deo)
Specified by:
visitGreaterOp in interface ExprPredicate
Overrides:
visitGreaterOp in class ErrorPredicate

visitLessOp

public void visitLessOp(LessOp deo)
Specified by:
visitLessOp in interface ExprPredicate
Overrides:
visitLessOp in class ErrorPredicate

visitLessEqualOp

public void visitLessEqualOp(LessEqualOp deo)
Specified by:
visitLessEqualOp in interface ExprPredicate
Overrides:
visitLessEqualOp in class ErrorPredicate

visitNotEqualOp

public void visitNotEqualOp(NotEqualOp deo)
Specified by:
visitNotEqualOp in interface ExprPredicate
Overrides:
visitNotEqualOp in class ErrorPredicate

visitBitComplementOp

public void visitBitComplementOp(BitComplementOp deo)
Specified by:
visitBitComplementOp in interface ExprPredicate
Overrides:
visitBitComplementOp in class ErrorPredicate

visitBitAndOp

public void visitBitAndOp(BitAndOp deo)
Specified by:
visitBitAndOp in interface ExprPredicate
Overrides:
visitBitAndOp in class ErrorPredicate

visitBitXorOp

public void visitBitXorOp(BitXorOp deo)
Specified by:
visitBitXorOp in interface ExprPredicate
Overrides:
visitBitXorOp in class ErrorPredicate

visitBitOrOp

public void visitBitOrOp(BitOrOp deo)
Specified by:
visitBitOrOp in interface ExprPredicate
Overrides:
visitBitOrOp in class ErrorPredicate

visitBitShiftOp

public void visitBitShiftOp(BitShiftOp deo)
Specified by:
visitBitShiftOp in interface ExprPredicate
Overrides:
visitBitShiftOp in class ErrorPredicate

visitMultiplicationAssignmentOp

public void visitMultiplicationAssignmentOp(MultiplicationAssignmentOp deo)
Specified by:
visitMultiplicationAssignmentOp in interface ExprPredicate
Overrides:
visitMultiplicationAssignmentOp in class ErrorPredicate

visitDivisionAssignmentOp

public void visitDivisionAssignmentOp(DivisionAssignmentOp deo)
Specified by:
visitDivisionAssignmentOp in interface ExprPredicate
Overrides:
visitDivisionAssignmentOp in class ErrorPredicate

visitRemainderAssignmentOp

public void visitRemainderAssignmentOp(RemainderAssignmentOp deo)
Specified by:
visitRemainderAssignmentOp in interface ExprPredicate
Overrides:
visitRemainderAssignmentOp in class ErrorPredicate

visitAdditionAssignmentOp

public void visitAdditionAssignmentOp(AdditionAssignmentOp deo)
Specified by:
visitAdditionAssignmentOp in interface ExprPredicate
Overrides:
visitAdditionAssignmentOp in class ErrorPredicate

visitSubtractionAssignmentOp

public void visitSubtractionAssignmentOp(SubtractionAssignmentOp deo)
Specified by:
visitSubtractionAssignmentOp in interface ExprPredicate
Overrides:
visitSubtractionAssignmentOp in class ErrorPredicate

visitBitShiftAssignmentOp

public void visitBitShiftAssignmentOp(BitShiftAssignmentOp deo)
Specified by:
visitBitShiftAssignmentOp in interface ExprPredicate
Overrides:
visitBitShiftAssignmentOp in class ErrorPredicate

visitBitAndAssignmentOp

public void visitBitAndAssignmentOp(BitAndAssignmentOp deo)
Specified by:
visitBitAndAssignmentOp in interface ExprPredicate
Overrides:
visitBitAndAssignmentOp in class ErrorPredicate

visitBitXorAssignmentOp

public void visitBitXorAssignmentOp(BitXorAssignmentOp deo)
Specified by:
visitBitXorAssignmentOp in interface ExprPredicate
Overrides:
visitBitXorAssignmentOp in class ErrorPredicate

visitBitOrAssignmentOp

public void visitBitOrAssignmentOp(BitOrAssignmentOp deo)
Specified by:
visitBitOrAssignmentOp in interface ExprPredicate
Overrides:
visitBitOrAssignmentOp in class ErrorPredicate

visitNotOp

public void visitNotOp(NotOp deo)
Specified by:
visitNotOp in interface ExprPredicate
Overrides:
visitNotOp in class ErrorPredicate

visitAndOp

public void visitAndOp(AndOp deo)
Specified by:
visitAndOp in interface ExprPredicate
Overrides:
visitAndOp in class ErrorPredicate

visitOrOp

public void visitOrOp(OrOp deo)
Specified by:
visitOrOp in interface ExprPredicate
Overrides:
visitOrOp in class ErrorPredicate

visitAndConditionalOp

public void visitAndConditionalOp(AndConditionalOp cs)
Converts an expression of the form (a && b) to the series of CFG nodes. Converted to
   t = 0
   if (a) then if (b) then t = 1
   t
 
where t is the result value.

Specified by:
visitAndConditionalOp in interface ExprPredicate
Overrides:
visitAndConditionalOp in class ErrorPredicate

visitOrConditionalOp

public void visitOrConditionalOp(OrConditionalOp cs)
Converts an expression of the form (a || b) to the series of CFG nodes. Converted to
   t = 0
   if (a) then t = 1
   else if (b) then t = 1
   t
 
where t is the result value.

Specified by:
visitOrConditionalOp in interface ExprPredicate
Overrides:
visitOrConditionalOp in class ErrorPredicate

visitExpressionIfOp

public void visitExpressionIfOp(ExpressionIfOp cs)
Specified by:
visitExpressionIfOp in interface ExprPredicate
Overrides:
visitExpressionIfOp in class ErrorPredicate

visitAddressOp

public void visitAddressOp(AddressOp aa)
Specified by:
visitAddressOp in interface ExprPredicate
Overrides:
visitAddressOp in class ErrorPredicate

visitDereferenceOp

public void visitDereferenceOp(DereferenceOp dr)
Specified by:
visitDereferenceOp in interface ExprPredicate
Overrides:
visitDereferenceOp in class ErrorPredicate

visitNilOp

public void visitNilOp(NilOp deo)
Specified by:
visitNilOp in interface ExprPredicate
Overrides:
visitNilOp in class ErrorPredicate

visitSelectOp

public void visitSelectOp(SelectOp s)
Specified by:
visitSelectOp in interface ExprPredicate
Overrides:
visitSelectOp in class ErrorPredicate

visitSelectIndirectOp

public void visitSelectIndirectOp(SelectIndirectOp s)
Specified by:
visitSelectIndirectOp in interface ExprPredicate
Overrides:
visitSelectIndirectOp in class ErrorPredicate

visitSubscriptValueOp

public void visitSubscriptValueOp(SubscriptValueOp sub)
Specified by:
visitSubscriptValueOp in interface ExprPredicate
Overrides:
visitSubscriptValueOp in class ErrorPredicate

visitSubscriptAddressOp

public void visitSubscriptAddressOp(SubscriptAddressOp sub)
Specified by:
visitSubscriptAddressOp in interface ExprPredicate
Overrides:
visitSubscriptAddressOp in class ErrorPredicate

visitCallFunctionOp

public void visitCallFunctionOp(CallFunctionOp co)
Specified by:
visitCallFunctionOp in interface ExprPredicate
Overrides:
visitCallFunctionOp in class ErrorPredicate

visitTypeConversionOp

public void visitTypeConversionOp(TypeConversionOp op)
Specified by:
visitTypeConversionOp in interface ExprPredicate
Overrides:
visitTypeConversionOp in class ErrorPredicate

visitComplexOp

public void visitComplexOp(ComplexOp op)
Specified by:
visitComplexOp in interface ExprPredicate
Overrides:
visitComplexOp in class ErrorPredicate