|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object jml2b.util.Profiler jml2b.structure.java.ParsedItem jml2b.structure.statement.Statement jml2b.structure.statement.Expression
This class defines a Java expression.
Field Summary |
Fields inherited from class jml2b.structure.statement.Statement |
arithmeticException, arrayIndexOutOfBoundsException, arrayStoreException, classCastException, negativeArraySizeException, nullPointerException |
Fields inherited from interface jml.JmlDeclParserTokenTypes |
ABRUPT_BEHAVIOR, ACCESSIBLE, ACCESSIBLE_KEYWORD, ACCESSIBLE_REDUNDANTLY, ACCESSIBLE_SEQ, ADDITIVE_ASSIGNMENT_OP, ADDITIVE_OP, AFFIRM_KEYWORD, ALSO, AND, ARRAY_DECLARATOR, ASGNABLE_SEQ, ASSERT, ASSERT_REDUNDANTLY, ASSIGN, ASSIGNABLE, ASSIGNABLE_KEYWORD, ASSIGNABLE_REDUNDANTLY, ASSUME, ASSUME_KEYWORD, ASSUME_REDUNDANTLY, AXIOM, BACKWARD_IMPLIES, BADCHAR, BAND, BAND_ASSIGN, BEHAVIOR, BITWISE_ASSIGNMENT_OP, BITWISE_OP, BNOT, BOR, BOR_ASSIGN, BREAKS, BREAKS_KEYWORD, BREAKS_REDUNDANTLY, BREAKS_SEQ, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, CALLABLE, CALLABLE_KEYWORD, CALLABLE_REDUNDANTLY, CALLABLE_SEQ, CASE, CAST, CHAR_LITERAL, CHOOSE, CHOOSE_IF, COLON, COMMA, CONJOINABLE_SPEC, CONSTRAINT, CONSTRAINT_KEYWORD, CONSTRAINT_REDUNDANTLY, CONSTRUCTOR, CONT_SEQ, CONTINUES, CONTINUES_KEYWORD, CONTINUES_REDUNDANTLY, DEC, DECREASES, DECREASES_REDUNDANTLY, DECREASING, DECREASING_KEYWORD, DECREASING_REDUNDANTLY, DEPENDS, DEPENDS_KEYWORD, DEPENDS_REDUNDANTLY, DIM_EXPRS, DIMS, DINFORMALLY, DIV, DIV_ASSIGN, DIV_SEQ, DIVERGES, DIVERGES_KEYWORD, DIVERGES_REDUNDANTLY, DOC_ATSIGN, DOC_ATSIGN_KEYWORD, DOC_AUTHOR, DOC_COMMENT, DOC_COMMENT_START, DOC_DEPRECATED, DOC_EXCEPTION, DOC_JML_SPECS, DOC_NL_WS, DOC_NON_EMPTY_TEXTLINE, DOC_NON_NL_WS, DOC_PARAM, DOC_RETURN, DOC_SEE, DOC_SERIAL, DOC_SERIALDATA, DOC_SERIALFIELD, DOC_SINCE, DOC_THROWS, DOC_UNKNOWN_KEYWORD, DOC_VERSION, DOT, DOT_DOT, ELSE, ENS_SEQ, ENSURES, ENSURES_KEYWORD, ENSURES_REDUNDANTLY, EOF, EQUAL, EQUALITY_OP, EQUIV, EQUIVALENCE_OP, ESC, EXAMPLE, EXCEPTIONAL_BEHAVIOR, EXCEPTIONAL_EXAMPLE, EXPONENT, EXSURES, EXSURES_REDUNDANTLY, EXT_ALSO, EXT_AND, FLOAT_SUFFIX, FOR, FOR_EXAMPLE, FOR_INIT, FOR_TEST, FOR_UPDATER, FORALL, GE, GHOST, GT, HENCE_BY, HENCE_BY_KEYWORD, HENCE_BY_REDUNDANTLY, HEX_DIGIT, IDENT, IGNORED_AT_IN_COMMENT, IMPLICATION_OP, IMPLIES_THAT, INC, INFORMAL_DESCRIPTION, INIT, INITIALIZER, INITIALLY, INSTANCE, INSTANCE_INIT, INVARIANT, INVARIANT_KEYWORD, INVARIANT_REDUNDANTLY, IS_SUBTYPE_OF, JAVA_BUILTIN_TYPE, JAVA_MODIFIER, JML_BACKSLASH_SEQUENCE, JML_MODIFIER, L_ARROW, LABEL, LABEL_KEYWORD, LAND, LBRACK, LCURLY, LCURLY_VBAR, LE, LET, LETOLD_KEYWORD, LIMPLIES, LITERAL_abstract, LITERAL_assert, LITERAL_boolean, LITERAL_break, LITERAL_byte, LITERAL_case, LITERAL_catch, LITERAL_char, LITERAL_class, LITERAL_const, LITERAL_continue, LITERAL_default, LITERAL_do, LITERAL_double, LITERAL_else, LITERAL_extends, LITERAL_false, LITERAL_final, LITERAL_finally, LITERAL_float, LITERAL_for, LITERAL_if, LITERAL_implements, LITERAL_import, LITERAL_instanceof, LITERAL_int, LITERAL_interface, LITERAL_long, LITERAL_native, LITERAL_new, LITERAL_null, LITERAL_package, LITERAL_private, LITERAL_protected, LITERAL_public, LITERAL_return, LITERAL_short, LITERAL_static, LITERAL_strictfp, LITERAL_super, LITERAL_switch, LITERAL_synchronized, LITERAL_this, LITERAL_throw, LITERAL_throws, LITERAL_transient, LITERAL_true, LITERAL_try, LITERAL_void, LITERAL_volatile, LITERAL_while, LNOT, LOGICAL_OP, LOOP_ASGNABLE_SEQ, LOOP_ASSIGNABLE_KEYWORD, LOOP_EXSURES, LOOP_INV_SEQ, LOOP_INVARIANT, LOOP_INVARIANT_REDUNDANTLY, LOOP_MODIFIES, LOOP_SIG_SEQ, LOR, LPAREN, LT, MAINTAINING, MAINTAINING_KEYWORD, MAINTAINING_REDUNDANTLY, MEASURED_BY, MEASURED_BY_KEYWORD, MEASURED_BY_REDUNDANTLY, METH, MINUS, MINUS_ASSIGN, ML_COMMENT, MOD, MOD_ASSIGN, MODEL, MODEL_PROGRAM, MODIFIABLE, MODIFIABLE_REDUNDANTLY, MODIFIER_SET, MODIFIES, MODIFIES_REDUNDANTLY, MONITORED, MONITORED_BY, MULTIPLICATIVE_ASSIGNMENT_OP, MULTIPLICATIVE_OP, NESTED_CLASS, NL_WS, NON_NL_WS, NON_NULL, NORMAL_BEHAVIOR, NORMAL_EXAMPLE, NOT_EQUAL, NOT_EQUIV, NOWARN_LABEL, NOWARN_LABEL_LIST, NULL_TREE_LOOKAHEAD, NUM_FLOAT, NUM_INT, OLD, OR, PARAM, PLUS, PLUS_ASSIGN, POST, POST_DEC, POST_INC, POST_INCREMENT_OP, POST_REDUNDANTLY, PRE, PRE_INCREMENT_OP, PRE_REDUNDANTLY, PRIVACY_MODIFIER, PURE, QUANT_VARS, QUANTIFIED_EXPR, QUANTIFIER_TOKEN, QUESTION, R_ARROW, RBRACK, RCURLY, READABLE_IF, REFINE, RELATIONAL_OP, REPLACE, REPRESENTS, REPRESENTS_KEYWORD, REPRESENTS_REDUNDANTLY, REQUIRES, REQUIRES_KEYWORD, REQUIRES_REDUNDANTLY, RETURNS, RETURNS_KEYWORD, RETURNS_REDUNDANTLY, RETURNS_SEQ, RPAREN, SEMI, SET, SET_COMPR, SHIFT_ASSIGNMENT_OP, SHIFT_OP, SIG_SEQ, SIGNALS, SIGNALS_KEYWORD, SIGNALS_REDUNDANTLY, SL, SL_ASSIGN, SL_COMMENT, SPEC_CASE, SPEC_PROTECTED, SPEC_PUBLIC, SPEC_SL_COMMENT, SPEC_STATEMENT, SR, SR_ASSIGN, STAR, STAR_ASSIGN, STAR_ELEMS, STATIC_INITIALIZER, STRING_LITERAL, SUBCLASSING_CONTRACT, T_ELEMTYPE, T_EVERYTHING, T_EXISTS, T_FIELDS_OF, T_FORALL, T_FRESH, T_INVARIANT_FOR, T_IS_INITIALIZED, T_LBLNEG, T_LBLPOS, T_LOCKSET, T_MAX, T_MIN, T_NONNULLELEMENTS, T_NOT_MODIFIED, T_NOT_SPECIFIED, T_NOTHING, T_NUM_OF, T_OLD, T_OTHER, T_PRODUCT, T_REACH, T_RESULT, T_SUCH_THAT, T_SUM, T_TYPE, T_TYPEOF, T_TYPEOFALLTYPES, UNARY_NUMERIC_OP, UNINITIALIZED, UNREACHABLE, VAR_DECL, VBAR_RCURLY, VF_SEQ, VOCAB, WEAKLY, WHEN, WHEN_KEYWORD, WHEN_REDUNDANTLY, WS |
Fields inherited from interface jml2b.structure.statement.MyToken |
BTRUE, FIRST_TOKEN, METHOD_CALL, NEWARRAY, nodeString, SEQUENCE, SKIP, T_CALLED_OLD, T_FRESH_CALLED_OLD, T_VARIANT_OLD |
Fields inherited from interface jml2b.link.Linkable |
STATE_LINKED, STATE_LINKED_STATEMENTS, STATE_LINKED_TYPE_CHECKED, STATE_UNLINKED |
Method Summary | |
Expression |
addInConjonction(Expression req)
|
static BinaryExp |
and(Expression s1,
Expression s2)
Returns the conjonction of two expressions. |
static Expression |
createE(JmlFile jf,
antlr.collections.AST tree)
Creates an expression from an AST node. |
java.lang.String |
emit()
|
abstract boolean |
equals(Expression e)
Returns whether two expressions are equal. |
Formula |
exprToForm(IJml2bConfiguration config)
Converts the expression into a formula. |
void |
getAssert(java.util.Vector asser)
|
static Expression |
getFalse()
Returns the expression false . |
static Expression |
getFromString(java.lang.String expression)
|
void |
getLoop(java.util.Vector blocks)
|
java.lang.String |
getNodeText()
Returns the nodeText. |
int |
getNodeType()
Returns the nodeType. |
static Expression |
getNull()
Returns the expression null . |
abstract java.util.Vector |
getParsedItems()
Returns the set of parsed items that correspond to this expression |
void |
getSpecBlock(java.util.Vector blocks)
|
Type |
getStateType()
Returns the stateType. |
static Expression |
getTrue()
Returns the expression true . |
int |
getValue()
Return the value associated to a constant expression. |
static Expression |
getZero()
Returns the expression 0 . |
abstract JmlExpression |
instancie(Expression b)
Replaces this with the parameter in the expression. |
boolean |
isAnd()
Tests if the expression operator is an and. |
boolean |
isBTrue()
Tests if this expression is btrue. |
boolean |
isComma()
Tests if the expression operator is a comma. |
abstract boolean |
isConstant()
Returns whether this expression is a constant. |
boolean |
isDot()
Tests if the expression operator is a dot. |
abstract void |
isModifiersCompatible(Modifiers modifiers)
Tests whether the expression contains fields that have modifiers compatible with the invariant modifiers. |
Statement |
jmlNormalize(IJml2bConfiguration config,
Class definingClass)
Collects all the indentifier of the statement to give them an index in the identifer array. |
LinkInfo |
linkMethod(IJml2bConfiguration config,
LinkContext f,
java.util.Vector parameters)
Links a method call. |
void |
linkParameters(IJml2bConfiguration config,
LinkContext f,
java.util.Vector parameters)
Links the parameters list of a method call and the resulting type to the parameters vector. |
Expression |
normComma(Expression t)
Normalized comma expression (a,b),c in a,(b,c) . |
abstract void |
old()
Converts old pragma in called old pragma. |
Formula |
predToForm(IJml2bConfiguration config)
Converts the expression, considered as a predicate into a formula |
abstract void |
processIdent()
Collects all the indentifier of the statement to give them an index in the identifer array. |
Expression |
renameParam(Parameters signature,
Parameters newSignature)
Renames the fields belonging to the parameter list with new names. |
void |
setNodeText(java.lang.String nodeText)
Sets the nodeText. |
void |
setNodeType(int nodeType)
Sets the nodeType. |
abstract void |
setParsedItem(ParsedItem pi)
|
void |
setStateType(Type s)
Sets the state type value. |
abstract Expression |
subField(Field f,
Field newF)
|
abstract Expression |
subResult(java.lang.String ww)
|
abstract java.lang.String |
toJava(int indent)
Displays the expression corresponding to a part of a method specification in a tool tip with the initial Java syntax. |
Proofs |
wp(IJml2bConfiguration config,
Proofs normalBehaviour,
Proofs finishOnReturn,
LabeledProofsVector finishOnBreakLab,
LabeledProofsVector finishOnContinueLab,
ExceptionalBehaviourStack exceptionalBehaviour)
Returns the proofs resulting where the WP calculus apply on this statement. |
abstract Proofs |
wp(IJml2bConfiguration config,
java.lang.String result,
Proofs normalBehaviour,
ExceptionalBehaviourStack exceptionalBehaviour)
Returns the proofs resulting where the WP calculus apply on this expression. |
Methods inherited from class jml2b.structure.statement.Statement |
clone, collectCalledMethod, createS, ensures, ensures, firstStatement, fresh, freshObject, freshResult, getLoopAtLine, getPrecondition, initFresh, link, linkStatement, linkStatements, parse, tail |
Methods inherited from class jml2b.structure.java.ParsedItem |
change, change, getColumn, getJmlFile, getLine, save, setBox |
Methods inherited from class jml2b.util.Profiler |
runGC |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface jml2b.structure.jml.JmlExpression |
clone, instancie |
Methods inherited from interface jml2b.link.TypeCheckable |
typeCheck |
Method Detail |
public static Expression getNull()
null
.
public static Expression getFalse()
false
.
public static Expression getTrue()
true
.
public static Expression getZero()
0
.
nodeText
0.public static Expression getFromString(java.lang.String expression) throws Jml2bException
Jml2bException
public static BinaryExp and(Expression s1, Expression s2)
s1
- left part of the conjonctions2
- right part of the conjonction
s1 && s2
public static Expression createE(JmlFile jf, antlr.collections.AST tree) throws Jml2bException
AST
node.
jf
- JML file where is located this expressiontree
- AST
node corresponding to this expression
InternalError
- when the type of the node does
not correspond to a known node type.
Jml2bException
public final boolean isBTrue()
true
if the expression node type is
BTRUE
, false
otherwisepublic final boolean isComma()
true
if the expression node type is
COMMA
, false
otherwisepublic final boolean isDot()
true
if the expression node type is
DOT
, false
otherwisepublic final boolean isAnd()
true
if the expression node type is
LOGICAL_OP
with node text "&&", false
otherwisepublic void linkParameters(IJml2bConfiguration config, LinkContext f, java.util.Vector parameters) throws Jml2bException
config
- the current configuration of the generatorf
- The link contextparameters
- The type set of the parameters (constructed here)
Jml2bException
public final LinkInfo linkMethod(IJml2bConfiguration config, LinkContext f, java.util.Vector parameters) throws Jml2bException
config
- the current configuration of the generatorf
- link contextparameters
- set of types of the method parameters
Jml2bException
public final Expression normComma(Expression t)
(a,b),c
in a,(b,c)
.
t
-
public final Formula exprToForm(IJml2bConfiguration config) throws Jml2bException, PogException
config
- the current configuration of the generator
PogException
Jml2bException
public final Formula predToForm(IJml2bConfiguration config) throws Jml2bException, PogException
predToForm
in interface JmlExpression
config
- the current configuration of the generator
PogException
Jml2bException
public java.lang.String emit()
emit
in class Statement
public final void setStateType(Type s)
s
- state type valuepublic final Proofs wp(IJml2bConfiguration config, Proofs normalBehaviour, Proofs finishOnReturn, LabeledProofsVector finishOnBreakLab, LabeledProofsVector finishOnContinueLab, ExceptionalBehaviourStack exceptionalBehaviour) throws Jml2bException, PogException
Statement
wp
in class Statement
normalBehaviour
- theorems to ensure if the statement terminates
normallyfinishOnReturn
- theorems to ensure if the statement terminates
abruptly on a return
finishOnBreakLab
- labelled theorems to ensure if the statement
terminates abruptly on a break
finishOnContinueLab
- labelled theorems to ensure if the statement
terminates abruptly on a continue
exceptionalBehaviour
- exceptional theorems to ensure if the
statement terminates abruply on an exception
PogException
Jml2bException
Statement.wp(IJml2bConfiguration, Proofs, Proofs, LabeledProofsVector,
LabeledProofsVector, ExceptionalBehaviourStack)
public int getValue()
This method should only be called if isConstant returned true.
public Expression renameParam(Parameters signature, Parameters newSignature)
signature
- the signature of the called methodnewSignature
- the list of new names
jml2b.pog.Proofs#renameParam(Parameters, Vector)
public abstract Expression subField(Field f, Field newF)
public abstract Expression subResult(java.lang.String ww)
public abstract void processIdent()
jml2b.pog.IdentifierResolver#bIdents
public final Statement jmlNormalize(IJml2bConfiguration config, Class definingClass)
Statement
jmlNormalize
in class Statement
definingClass
- The class where this statement is defined
jml2b.pog.IdentifierResolver#bIdents
public abstract boolean equals(Expression e)
e
- The tested expression
true
if the expression equals the parameter,
false
otherwisepublic abstract JmlExpression instancie(Expression b)
this
with the parameter in the expression.
instancie
in interface JmlExpression
b
- expression on which the method where the expression occurs is
called.
public abstract boolean isConstant()
true
if the expression is a constant,
false
otherwisepublic abstract void old()
public abstract java.lang.String toJava(int indent)
public abstract Proofs wp(IJml2bConfiguration config, java.lang.String result, Proofs normalBehaviour, ExceptionalBehaviourStack exceptionalBehaviour) throws Jml2bException, PogException
config
- the current configuration of the generatornormalBehaviour
- theorems to ensure if the expression evaluation
terminates normallyexceptionalBehaviour
- exceptional theorems to ensure if the
expression evaluation terminates abruply on an exception
PogException
Jml2bException
public abstract void isModifiersCompatible(Modifiers modifiers) throws LinkException
modifiers
- The current invariant modifiers
LinkException
- when the test fails.public abstract java.util.Vector getParsedItems()
getParsedItems
in interface JmlExpression
public abstract void setParsedItem(ParsedItem pi)
public final Type getStateType()
public final java.lang.String getNodeText()
public final void setNodeText(java.lang.String nodeText)
nodeText
- The nodeText to setpublic final int getNodeType()
public final void setNodeType(int nodeType)
nodeType
- The nodeType to setpublic Expression addInConjonction(Expression req)
public void getAssert(java.util.Vector asser)
getAssert
in class Statement
public void getSpecBlock(java.util.Vector blocks)
getSpecBlock
in class Statement
public void getLoop(java.util.Vector blocks)
getLoop
in class Statement
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |