|
|||||||||||
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.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 ModifiesClause
public void add(ModifiesList ml)
ml
- The list to concat to the current onepublic 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 ModifiesClause
f
- context for link
Jml2bException
public Type typeCheck(IJml2bConfiguration config, LinkContext f) throws Jml2bException
typeCheck
in interface TypeCheckable
Jml2bException
public Proofs modifies(IJml2bConfiguration config, IModifiesField m, Proofs s) throws PogException
modifies
in class ModifiesClause
s
- The proof to quantify.
PogException
public ModifiesClause renameParam(IJml2bConfiguration config, Parameters signature, java.util.Vector newSignature) throws PogException
ModifiesClause
renameParam
in class ModifiesClause
signature
- the signature of the called methodnewSignature
- the list of new names
PogException
Proofs#renameParam(Parameters, Vector)
public void instancie(IJml2bConfiguration config) throws PogException
ModifiesClause
instancie
in class ModifiesClause
PogException
public void instancie(Expression b, IJml2bConfiguration config) throws PogException
ModifiesClause
this
with the parameter in the modifies clause.
instancie
in class ModifiesClause
b
- expression on which the metohd is called.
PogException
public void processIdent()
ModifiesClause
processIdent
in class ModifiesClause
jml2b.pog.IdentifierResolver#bIdents
public 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 ModifiesClause
config
- 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 ModifiesClause
c
- The defining class of the depends clauses
PogException
public ModifiesClause completeModifiesWithFields(ModifiesList l)
completeModifiesWithFields
in class ModifiesClause
l
-
public void setParsedItem(ParsedItem pi)
setParsedItem
in class ModifiesClause
public java.util.Collection getFields()
getFields
in class ModifiesClause
public GuardedModifies getGm()
public ModifiesList getNext()
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |