engine
Interface Result

All Known Implementing Classes:
DataHolder

public abstract interface Result

Performs some useful conversions between DataHolders of various types. Is implemented by all DataHolders this is used to allow conversion between all types of data obtained as results of expression evaluation *NOTE* none of the operations that return a Result does not gurantees the integrity of the operands ( and often the returned Result is one of them). So, *do not* use them after one of these ! Use getxxx to make a copy when necessary.


Method Summary
 Result add(Result r)
           
 void bAnd(Result r)
           
 void bAndR()
           
 void bNAnd(Result r)
           
 void bNAndR()
           
 void bNOr(Result r)
           
 void bNOrR()
           
 void bNot()
           
 void bNXor(Result r)
           
 void bNXOrR()
           
 void bOr(Result r)
           
 void bOrR()
           
 void bXor(Result r)
           
 void bXOrR()
           
 Result cEq(Result r)
          case equality
 Result cNEq(Result r)
          case nonequality
 Result div(Result r)
           
 Result duplicate()
          works pretty much like clone
 Result ge(Result r)
          greater than
 BitVector getBits()
           
 int getBool()
           
 BitVector getInt()
           
 long getLong()
          Returns the long value closest to this Result
 Real getReal()
           
 int getType()
          Returns the type of this result.
 Result gt(Result r)
          greather than
 boolean isDefined()
          Checks whether this reult is defined (unambiguous (x, z)).
 boolean isTrue()
          Checks whether this Result is true.
 Result le(Result r)
          lower or equal than
 int length()
           
 Result lEq(Result r)
           
 Result lNEq(Result r)
           
 void lNot()
           
 Result lt(Result r)
          lower than
 Result mod(Result r)
           
 Result mul(Result r)
           
 void neg()
           
 void shl(Result r)
           
 void shr(Result r)
           
 Result sub(Result r)
           
 java.lang.String toString(int base)
          Returns the String representation in the specified base.
 

Method Detail

getReal

public Real getReal()
Returns:
a new Real object based on this DataHolder

getBits

public BitVector getBits()
Returns:
a new BitVector object containing the binary representation of this DataHolder

getInt

public BitVector getInt()
Returns:
a new BitVector object representing an int based on this DataHolder

getBool

public int getBool()
Returns:
an int value representing some boolean (0, 1, X or Z) based on the actual value of this Result

getLong

public long getLong()
Returns the long value closest to this Result

duplicate

public Result duplicate()
works pretty much like clone

shl

public void shl(Result r)
         throws InterpretTimeException

shr

public void shr(Result r)
         throws InterpretTimeException

neg

public void neg()

bAndR

public void bAndR()
           throws InterpretTimeException

bOrR

public void bOrR()
          throws InterpretTimeException

bXOrR

public void bXOrR()
           throws InterpretTimeException

bNAndR

public void bNAndR()
            throws InterpretTimeException

bNOrR

public void bNOrR()
           throws InterpretTimeException

bNXOrR

public void bNXOrR()
            throws InterpretTimeException

bNot

public void bNot()
          throws InterpretTimeException

lNot

public void lNot()

lEq

public Result lEq(Result r)

lNEq

public Result lNEq(Result r)

bOr

public void bOr(Result r)
         throws InterpretTimeException

bNOr

public void bNOr(Result r)
          throws InterpretTimeException

bAnd

public void bAnd(Result r)
          throws InterpretTimeException

bNAnd

public void bNAnd(Result r)
           throws InterpretTimeException

bXor

public void bXor(Result r)
          throws InterpretTimeException

bNXor

public void bNXor(Result r)
           throws InterpretTimeException

cEq

public Result cEq(Result r)
           throws InterpretTimeException
case equality

cNEq

public Result cNEq(Result r)
            throws InterpretTimeException
case nonequality

lt

public Result lt(Result r)
lower than

gt

public Result gt(Result r)
greather than

le

public Result le(Result r)
lower or equal than

ge

public Result ge(Result r)
greater than

add

public Result add(Result r)

sub

public Result sub(Result r)

mul

public Result mul(Result r)

div

public Result div(Result r)

mod

public Result mod(Result r)
           throws InterpretTimeException

isDefined

public boolean isDefined()
Checks whether this reult is defined (unambiguous (x, z)).
Returns:
true if this result is unambiguous( no X's or Z's)

isTrue

public boolean isTrue()
Checks whether this Result is true.
Returns:
true if this result is true ( i.e. has a nonnull and well defined value (no X's or Z's))

toString

public java.lang.String toString(int base)
Returns the String representation in the specified base.

getType

public int getType()
Returns the type of this result.
See Also:
Symbol

length

public int length()
Returns:
the length (in bits) of the Result.