|
JML | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectorg.jmlspecs.jmlrac.qexpr.Translator
An abstract class for translating JML quantified expressions into Java source code.
| Field Summary | |
protected RacContext |
context
current translation context |
protected static TokenReference |
NO_REF
|
protected JmlSpecQuantifiedExpression |
quantiExp
taget quantified expression to translate |
protected String |
resultVar
variable name to have the value of quantified expression in the translated code |
protected TransExpression |
transExp
|
protected VarGenerator |
varGen
variable generator for generating unique local variables |
| Fields inherited from interface org.jmlspecs.jmlrac.RacConstants |
MN_CHECK_HC, MN_CHECK_INV, MN_CHECK_POST, MN_CHECK_PRE, MN_CHECK_XPOST, MN_EVAL_OLD, MN_GHOST, MN_INIT, MN_INTERNAL, MN_MODEL, MN_MODEL_PUBLIC, MN_RESTORE_FROM, MN_SAVE_TO, MN_SPEC, MN_SPEC_PUBLIC, TN_JMLCHECKABLE, TN_JMLSURROGATE, TN_JMLUNIT_TEST_POSTFIX, TN_JMLUNIT_TESTDATA_POSTFIX, TN_JMLVALUE, TN_SURROGATE, VN_ASSERTION, VN_CATCH_VAR, VN_CLASS_INIT, VN_CONSTRUCTED, VN_DELEGEE, VN_ERROR_SET, VN_EXCEPTION, VN_FREE_VAR, VN_INIT, VN_OLD_VAR, VN_POST_VAR, VN_PRE_VAR, VN_PRECOND, VN_RAC_COMPILED, VN_RAC_LEVEL, VN_RESULT, VN_STACK_VAR, VN_XRESULT |
| Fields inherited from interface org.multijava.mjc.Constants |
ACC_PURE, AMID_JAVA_MATH, AMID_MAX, AMID_SAFE_MATH, CMP_VERSION, JAV_ASSERTION_ERROR, JAV_CLASS, JAV_CLASSLOADER, JAV_CLASSNOTFOUND_EXCEPTION, JAV_CLONE, JAV_CLONEABLE, JAV_CONSTRUCTOR, JAV_ERROR, JAV_EXCEPTION, JAV_INIT, JAV_LENGTH, JAV_NAME_SEPARATOR, JAV_NOCLASSDEFFOUND_ERROR, JAV_OBJECT, JAV_OUTER_THIS, JAV_RMJ_RUNTIME_EXCEPTION, JAV_RUNTIME, JAV_RUNTIME_EXCEPTION, JAV_SERIALIZABLE, JAV_STATIC_INIT, JAV_STRING, JAV_STRINGBUFFER, JAV_SUPER, JAV_THIS, JAV_THROWABLE, MJ_ANCHOR, OPE_BAND, OPE_BNOT, OPE_BOR, OPE_BSR, OPE_BXOR, OPE_EQ, OPE_GE, OPE_GT, OPE_LAND, OPE_LE, OPE_LNOT, OPE_LOR, OPE_LT, OPE_MINUS, OPE_NE, OPE_PERCENT, OPE_PLUS, OPE_POSTDEC, OPE_POSTINC, OPE_PREDEC, OPE_PREINC, OPE_SIMPLE, OPE_SL, OPE_SLASH, OPE_SR, OPE_STAR, TID_ARRAY, TID_BOOLEAN, TID_BYTE, TID_CHAR, TID_CLASS, TID_DOUBLE, TID_FLOAT, TID_INT, TID_LONG, TID_MAX, TID_SHORT, TID_VOID, UNIV_ARRAY_TMP, UNIV_TMP |
| Constructor Summary | |
protected |
Translator(VarGenerator varGen,
RacContext ctx,
JmlSpecQuantifiedExpression expr,
String resultVar,
TransExpression transExp)
Construct a TransQuantifiedExpression object. |
| Method Summary | |
abstract RacNode |
generateLoop(RacNode body)
Returns a loop code that evaluates the given body with the quantified variable bound to each possible value of the range. |
protected RacNode |
transExpression(JExpression expr,
String var)
Returns code for evaluating expression expr and
storing the result to the variable var. |
abstract RacNode |
translate()
Translate a JML quantified expression into Java source code and return the result. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
protected static final TokenReference NO_REF
protected VarGenerator varGen
protected RacContext context
protected JmlSpecQuantifiedExpression quantiExp
protected String resultVar
protected TransExpression transExp
| Constructor Detail |
protected Translator(VarGenerator varGen,
RacContext ctx,
JmlSpecQuantifiedExpression expr,
String resultVar,
TransExpression transExp)
TransQuantifiedExpression object.
varGen - variable generator to be used in translation for
generating unique local variables.expr - quantified expression to be translated.resultVar - variable name to have the value of quantified
expression in the translated code.transExp - translator to use for translating subexpressions of
the quantified expression.| Method Detail |
public abstract RacNode translate()
throws NonExecutableQuantifierException
NonExecutableQuantifierException - if not executable.
public abstract RacNode generateLoop(RacNode body)
throws NonExecutableQuantifierException
body - code to be executed as the loop body
NonExecutableQuantifierException - if not executable.
protected RacNode transExpression(JExpression expr,
String var)
expr and
storing the result to the variable var.
As a special case, returns var = true;
if expr is null.
|
JML | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||