|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectjml2b.util.Profiler
jml2b.structure.java.ParsedItem
jml2b.structure.statement.Statement
jml2b.structure.statement.Expression
jml2b.structure.statement.QuantifiedExp
This class implements a quantified expression, that is
\forall type var; body or \exists type var; body.
The node text can be respectively "!" or "#".
| 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 |
| Constructor Summary | |
QuantifiedExp(int nodeType,
java.lang.String nodeText,
QuantifiedVar vars,
Expression body)
Constructs a quantified expression form another one |
|
| Method Summary | |
java.lang.Object |
clone()
|
void |
collectCalledMethod(java.util.Vector calledMethod)
|
boolean |
equals(Expression e)
Returns whether two expressions are equal. |
Expression |
getBody()
|
java.util.Vector |
getParsedItems()
Returns the set of parsed items that correspond to this expression |
void |
getPrecondition(IJml2bConfiguration config,
ModifiableSet modifies,
java.util.Vector req,
java.util.Vector ens)
|
QuantifiedVar |
getVars()
|
JmlExpression |
instancie()
Instancie the expression. |
JmlExpression |
instancie(Expression b)
Replaces this with the parameter in the expression. |
boolean |
isConstant()
Returns whether this expression is a constant. |
void |
isModifiersCompatible(Modifiers modifiers)
Tests whether the expression contains fields that have modifiers compatible with the invariant modifiers. |
LinkInfo |
linkStatement(IJml2bConfiguration config,
LinkContext f)
Links the statement. |
void |
old()
Converts old pragma in called old pragma. |
antlr.collections.AST |
parse(antlr.collections.AST tree)
Parses an AST tree in order to instanciate the statement
fields. |
void |
processIdent()
Collects all the indentifier of the statement to give them an index in the identifer array. |
void |
setParsedItem(ParsedItem pi)
|
Expression |
subField(Field f,
Field newF)
|
Expression |
subResult(java.lang.String ww)
|
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. |
Type |
typeCheck(IJml2bConfiguration config,
LinkContext f)
|
Proofs |
wp(IJml2bConfiguration config,
java.lang.String result,
Proofs normalProof,
ExceptionalBehaviourStack exceptionalProof)
Returns the proofs resulting where the WP calculus apply on this expression. |
| Methods inherited from class jml2b.structure.statement.Expression |
addInConjonction, and, createE, emit, exprToForm, getAssert, getFalse, getFromString, getLoop, getNodeText, getNodeType, getNull, getSpecBlock, getStateType, getTrue, getValue, getZero, isAnd, isBTrue, isComma, isDot, jmlNormalize, linkMethod, linkParameters, normComma, predToForm, renameParam, setNodeText, setNodeType, setStateType, wp |
| Methods inherited from class jml2b.structure.statement.Statement |
createS, ensures, ensures, firstStatement, fresh, freshObject, freshResult, getLoopAtLine, initFresh, link, linkStatements, 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 |
| Constructor Detail |
public QuantifiedExp(int nodeType,
java.lang.String nodeText,
QuantifiedVar vars,
Expression body)
nodeType - The node typenodeText - The node textvars - The quantified variablesbody - he quantified expression| Method Detail |
public java.lang.Object clone()
clone in interface JmlExpressionclone in class Statementpublic boolean equals(Expression e)
Expression
equals in class Expressione - The tested expression
true if the expression equals the parameter,
false otherwisepublic java.lang.String toJava(int indent)
Expression
toJava in class Expression
public antlr.collections.AST parse(antlr.collections.AST tree)
throws Jml2bException
StatementAST tree in order to instanciate the statement
fields.
parse in class Statementtree - AST tree containing the statement
Jml2bException - when a parse error occurs.
public LinkInfo linkStatement(IJml2bConfiguration config,
LinkContext f)
throws Jml2bException
Statement
linkStatement in class StatementJml2bException
public Type typeCheck(IJml2bConfiguration config,
LinkContext f)
throws Jml2bException
Jml2bExceptionpublic void processIdent()
Expression
processIdent in class Expressionjml2b.pog.IdentifierResolver#bIdents
public void isModifiersCompatible(Modifiers modifiers)
throws LinkException
Expression
isModifiersCompatible in class Expressionmodifiers - The current invariant modifiers
LinkException - when the test fails.public JmlExpression instancie()
JmlExpression
public JmlExpression instancie(Expression b)
Expressionthis with the parameter in the expression.
instancie in interface JmlExpressioninstancie in class Expressionb - expression on which the method where the expression occurs is
called.
public Expression subField(Field f,
Field newF)
subField in class Expressionpublic Expression subResult(java.lang.String ww)
subResult in class Expressionpublic java.util.Vector getParsedItems()
Expression
getParsedItems in interface JmlExpressiongetParsedItems in class Expressionpublic void setParsedItem(ParsedItem pi)
setParsedItem in class Expressionpublic boolean isConstant()
Expression
isConstant in class Expressiontrue if the expression is a constant,
false otherwisepublic void old()
Expression
old in class Expression
public Proofs wp(IJml2bConfiguration config,
java.lang.String result,
Proofs normalProof,
ExceptionalBehaviourStack exceptionalProof)
throws Jml2bException,
PogException
Expression
wp in class Expressionconfig - the current configuration of the generatornormalProof - theorems to ensure if the expression evaluation
terminates normallyexceptionalProof - exceptional theorems to ensure if the
expression evaluation terminates abruply on an exception
java.lang.InternalError - since this expression is a JML expression
PogException
Jml2bException
public void getPrecondition(IJml2bConfiguration config,
ModifiableSet modifies,
java.util.Vector req,
java.util.Vector ens)
getPrecondition in class Statementpublic void collectCalledMethod(java.util.Vector calledMethod)
collectCalledMethod in class Statementpublic Expression getBody()
public QuantifiedVar getVars()
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||