gov.llnl.babel.symbols
Class UnaryExpression

java.lang.Object
  extended by gov.llnl.babel.symbols.AssertionExpression
      extended by gov.llnl.babel.symbols.UnaryExpression

public class UnaryExpression
extends AssertionExpression


Field Summary
static int COMPLEMENT
           
static int IS
           
static int MINUS
           
static int NOOP
           
static int NOT
           
static int PLUS
           
 
Fields inherited from class gov.llnl.babel.symbols.AssertionExpression
d_context, ERROR_SEMANTIC_VALIDATION
 
Constructor Summary
UnaryExpression(int op, AssertionExpression expr, Context context)
          Construct a new object.
 
Method Summary
 java.lang.Object accept(ExprVisitor ev, java.lang.Object data)
          Implement the "visitor pattern".
 java.lang.String cExpression(java.lang.String epvVar, int[] startInd)
          Return the C version of the expression.
 java.util.ArrayList getArrayIterMacros(java.lang.String epvVar, int[] startInd)
          Return the list of array iteration macro messages, if any.
 AssertionExpression getExpression()
          Return the expression.
 int getNumArrayIterMacrosByType(char type)
          Returns the number of macros supported by this assertion of the specified type.
 int getOp()
          Return the unary operator.
 java.lang.String getOpSymbol()
          Return the symbol associated with the operator.
 boolean hasMethodCall()
          Return TRUE if the expression has at least one method call; otherwise, return FALSE.
 boolean hasPure()
          Return TRUE if the expression is PURE clause; otherwise, return FALSE.
 boolean hasReservedMethod(int type)
          Return TRUE if the expression is, or has, the specified reserved method call; otherwise, return FALSE.
 boolean hasResult()
          Return TRUE if the expression contains RESULT; otherwise, return FALSE.
 boolean hasUnreservedMethod(boolean any)
          Return TRUE if the method is any unreserved method (when any is TRUE) or it is an unreserved method with a throws clause (if any is FALSE); otherwise, return FALSE.
 boolean requiresExtendableContext()
          Return TRUE if extendable context is required to validate the expression; otherwise, return FALSE.
 boolean requiresMethodContext()
          Return TRUE if method context is required to validate the expression; otherwise, return FALSE.
 java.lang.String toString()
          Return the stringified version of the expression (in SIDL form).
protected  void validateSemantics(Extendable ext, Method m)
          Validate the expression semantics, if necessary, within the context of the extendable and optional method.
 
Methods inherited from class gov.llnl.babel.symbols.AssertionExpression
getExceptionPrefix, getExceptionPrefix, getReturnType, getReturnTypeName, getReturnTypeValue, hasParens, isValid, leftAssociative, returnIsArray, returnIsBoolean, returnIsCharacter, returnIsDComplex, returnIsDouble, returnIsFComplex, returnIsFloat, returnIsInteger, returnIsLong, returnIsNumericArray, returnIsOpaque, returnIsString, setParens, setReturnToBoolean, setReturnToCharacter, setReturnToDComplex, setReturnToDouble, setReturnToFComplex, setReturnToFloat, setReturnToInteger, setReturnToLong, setReturnToOpaque, setReturnToString, setReturnType, setReturnType, validateExpression
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

NOOP

public static final int NOOP
See Also:
Constant Field Values

COMPLEMENT

public static final int COMPLEMENT
See Also:
Constant Field Values

IS

public static final int IS
See Also:
Constant Field Values

MINUS

public static final int MINUS
See Also:
Constant Field Values

NOT

public static final int NOT
See Also:
Constant Field Values

PLUS

public static final int PLUS
See Also:
Constant Field Values
Constructor Detail

UnaryExpression

public UnaryExpression(int op,
                       AssertionExpression expr,
                       Context context)
                throws AssertionException
Construct a new object.

Parameters:
op - The operator associated with this unary expression.
expr - The expression being paired with the operator.
Throws:
AssertionException - The exception raised if the operator does not fall within the range of supported operators OR if the expression is null.
Method Detail

getOp

public int getOp()
Return the unary operator.


getOpSymbol

public java.lang.String getOpSymbol()
Return the symbol associated with the operator. It is assumed the operator is valid thanks to the check in the constructor.


getExpression

public AssertionExpression getExpression()
Return the expression.


hasPure

public boolean hasPure()
Return TRUE if the expression is PURE clause; otherwise, return FALSE.

Specified by:
hasPure in class AssertionExpression

hasResult

public boolean hasResult()
Return TRUE if the expression contains RESULT; otherwise, return FALSE.

Specified by:
hasResult in class AssertionExpression

hasMethodCall

public boolean hasMethodCall()
Return TRUE if the expression has at least one method call; otherwise, return FALSE. Clearly this expression isn't a method call BUT the expression may be or contain one.

Specified by:
hasMethodCall in class AssertionExpression

hasReservedMethod

public boolean hasReservedMethod(int type)
Return TRUE if the expression is, or has, the specified reserved method call; otherwise, return FALSE.

Specified by:
hasReservedMethod in class AssertionExpression

hasUnreservedMethod

public boolean hasUnreservedMethod(boolean any)
Return TRUE if the method is any unreserved method (when any is TRUE) or it is an unreserved method with a throws clause (if any is FALSE); otherwise, return FALSE.

Specified by:
hasUnreservedMethod in class AssertionExpression

requiresExtendableContext

public boolean requiresExtendableContext()
Return TRUE if extendable context is required to validate the expression; otherwise, return FALSE.

Specified by:
requiresExtendableContext in class AssertionExpression

requiresMethodContext

public boolean requiresMethodContext()
Return TRUE if method context is required to validate the expression; otherwise, return FALSE.

Specified by:
requiresMethodContext in class AssertionExpression

validateSemantics

protected void validateSemantics(Extendable ext,
                                 Method m)
                          throws AssertionException
Validate the expression semantics, if necessary, within the context of the extendable and optional method.

Specified by:
validateSemantics in class AssertionExpression
Parameters:
ext - The interface or class that owns this expression.
m - The method that owns this expression.
Throws:
AssertionException - The exception that can be raised during validation.

getArrayIterMacros

public java.util.ArrayList getArrayIterMacros(java.lang.String epvVar,
                                              int[] startInd)
Return the list of array iteration macro messages, if any. Each message is a string where the first character indicates the return type associated with the iteration. The remaining characters will be the actual macro invocation.

Specified by:
getArrayIterMacros in class AssertionExpression

getNumArrayIterMacrosByType

public int getNumArrayIterMacrosByType(char type)
Returns the number of macros supported by this assertion of the specified type. Valid types are given in MethodCall.java.

Specified by:
getNumArrayIterMacrosByType in class AssertionExpression

cExpression

public java.lang.String cExpression(java.lang.String epvVar,
                                    int[] startInd)
Return the C version of the expression.

Specified by:
cExpression in class AssertionExpression

toString

public java.lang.String toString()
Return the stringified version of the expression (in SIDL form).

Specified by:
toString in class AssertionExpression

accept

public java.lang.Object accept(ExprVisitor ev,
                               java.lang.Object data)
Description copied from class: AssertionExpression
Implement the "visitor pattern".

Specified by:
accept in class AssertionExpression