|
|||||||||||
| 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.jml.ModifiesClause
jml2b.structure.jml.ModifiesList
This class describes the modifies clause as a list of Modifies
elements.
| Field Summary |
| 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 |
| Constructor Summary | |
ModifiesList(java.util.Enumeration fields)
|
|
ModifiesList(GuardedModifies m,
ModifiesList ml)
Constructs a list from a new Modifies element and a list. |
|
ModifiesList(java.util.Iterator fields)
|
|
| Method Summary | |
void |
add(ModifiesList ml)
Concats two lists. |
void |
addDepends(IJml2bConfiguration config,
Class c)
Complete the modifies with modified store-ref issued from depends clauses. |
boolean |
addModifiesWithoutDoublon(IJml2bConfiguration config,
GuardedModifies gm)
|
boolean |
addWithoutDoublon(IJml2bConfiguration config,
ModifiesList ml)
|
java.lang.Object |
clone()
Clones the list. |
ModifiesClause |
completeModifiesWithFields(ModifiesList l)
|
java.util.Collection |
getFields()
|
GuardedModifies |
getGm()
|
ModifiesList |
getNext()
|
void |
instancie(Expression b,
IJml2bConfiguration config)
Replace this with the parameter in the modifies clause. |
void |
instancie(IJml2bConfiguration config)
Instancie the modifies clause. |
LinkInfo |
linkStatements(IJml2bConfiguration config,
LinkContext f)
Links the content of the clause. |
Proofs |
modifies(IJml2bConfiguration config,
IModifiesField m,
Proofs s)
Quantifies lemmas and add hypothesis depending on the modified variable list. |
SimpleLemma |
modifiesLemmas(IJml2bConfiguration config,
java.util.Vector fields,
java.util.Vector nonModifiedFields,
Formula[] nonModifiedxxxElements)
Returns the lemmas concerning the proof of the modifies clause for the current method. |
void |
processIdent()
Collects all the indentifier of the clause to give them an index in the identifer array. |
ModifiesClause |
renameParam(IJml2bConfiguration config,
Parameters signature,
java.util.Vector newSignature)
Renames the parameter in the modifies clause. |
void |
setParsedItem(ParsedItem pi)
|
java.lang.String |
toJava(int indent)
Converts the clause into a string. |
Type |
typeCheck(IJml2bConfiguration config,
LinkContext f)
|
| Methods inherited from class jml2b.structure.jml.ModifiesClause |
create |
| 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 ModifiesList(GuardedModifies m,
ModifiesList ml)
Modifies element and a list.
m - The modified variableml - The listpublic ModifiesList(java.util.Enumeration fields)
fields - public ModifiesList(java.util.Iterator fields)
| Method Detail |
public java.lang.Object clone()
clone in class ModifiesClausepublic void add(ModifiesList ml)
ml - The list to concat to the current one
public boolean addWithoutDoublon(IJml2bConfiguration config,
ModifiesList ml)
public boolean addModifiesWithoutDoublon(IJml2bConfiguration config,
GuardedModifies gm)
public LinkInfo linkStatements(IJml2bConfiguration config,
LinkContext f)
throws Jml2bException
ModifiesClause
linkStatements in class ModifiesClausef - context for link
Jml2bException
public Type typeCheck(IJml2bConfiguration config,
LinkContext f)
throws Jml2bException
typeCheck in interface TypeCheckableJml2bException
public Proofs modifies(IJml2bConfiguration config,
IModifiesField m,
Proofs s)
throws PogException
modifies in class ModifiesClauses - The proof to quantify.
PogException
public ModifiesClause renameParam(IJml2bConfiguration config,
Parameters signature,
java.util.Vector newSignature)
throws PogException
ModifiesClause
renameParam in class ModifiesClausesignature - the signature of the called methodnewSignature - the list of new names
PogExceptionProofs#renameParam(Parameters, Vector)
public void instancie(IJml2bConfiguration config)
throws PogException
ModifiesClause
instancie in class ModifiesClausePogException
public void instancie(Expression b,
IJml2bConfiguration config)
throws PogException
ModifiesClausethis with the parameter in the modifies clause.
instancie in class ModifiesClauseb - expression on which the metohd is called.
PogExceptionpublic void processIdent()
ModifiesClause
processIdent in class ModifiesClausejml2b.pog.IdentifierResolver#bIdentspublic java.lang.String toJava(int indent)
ModifiesClause
toJava in class ModifiesClause
public SimpleLemma modifiesLemmas(IJml2bConfiguration config,
java.util.Vector fields,
java.util.Vector nonModifiedFields,
Formula[] nonModifiedxxxElements)
throws PogException
ModifiesClause
modifiesLemmas in class ModifiesClauseconfig - The current configurationfields - set of modifiable fields.nonModifiedFields - The set of formula representing the name of the
non modified fields.nonModifiedxxxElements - The array of Formula representing the
name of non modified xxxelements function.
a == \old(a)) and that partially
declared as modified fields are only partially modified.
PogException
public void addDepends(IJml2bConfiguration config,
Class c)
throws PogException
ModifiesClause
addDepends in class ModifiesClausec - The defining class of the depends clauses
PogExceptionpublic ModifiesClause completeModifiesWithFields(ModifiesList l)
completeModifiesWithFields in class ModifiesClausel -
public void setParsedItem(ParsedItem pi)
setParsedItem in class ModifiesClausepublic java.util.Collection getFields()
getFields in class ModifiesClausepublic GuardedModifies getGm()
public ModifiesList getNext()
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||