|
|||||||||||
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.ArrayInitializer
This class implements an array initializer statement, that is, for instance,
{ {"car", "house" }, {"dog", "cat", "monkey"} }
.
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 | |
java.lang.Object |
clone()
Clones the array initializer |
void |
collectCalledMethod(java.util.Vector calledMethod)
|
boolean |
equals(Expression e)
Returns whether two expressions are equal. |
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)
|
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 normalBehaviour,
ExceptionalBehaviourStack exceptionalBehaviour)
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 |
Method Detail |
public java.lang.Object clone()
clone
in interface JmlExpression
clone
in class Statement
public boolean equals(Expression e)
Expression
equals
in class Expression
e
- The tested expression
true
if the expression equals the parameter,
false
otherwisepublic antlr.collections.AST parse(antlr.collections.AST tree) throws Jml2bException
Statement
AST
tree in order to instanciate the statement
fields.
parse
in class Statement
tree
- AST
tree containing the statement
Jml2bException
- when a parse error occurs.public java.lang.String toJava(int indent)
Expression
toJava
in class Expression
java.lang.InternalError
- since an array initializer appears only in
expression with side effects.public LinkInfo linkStatement(IJml2bConfiguration config, LinkContext f) throws Jml2bException
Statement
linkStatement
in class Statement
Jml2bException
public Type typeCheck(IJml2bConfiguration config, LinkContext f) throws Jml2bException
Jml2bException
public void processIdent()
Expression
processIdent
in class Expression
jml2b.pog.IdentifierResolver#bIdents
public Expression subField(Field f, Field newF)
subField
in class Expression
public Expression subResult(java.lang.String ww)
subResult
in class Expression
public void isModifiersCompatible(Modifiers modifiers)
Expression
isModifiersCompatible
in class Expression
modifiers
- The current invariant modifiers
java.lang.InternalError
- since an array initializer appears only in
expression with side effects.public JmlExpression instancie(Expression b)
Expression
this
with the parameter in the expression.
instancie
in interface JmlExpression
instancie
in class Expression
b
- expression on which the method where the expression occurs is
called.
public JmlExpression instancie()
JmlExpression
public boolean isConstant()
Expression
isConstant
in class Expression
true
if the expression is a constant,
false
otherwisepublic java.util.Vector getParsedItems()
Expression
getParsedItems
in interface JmlExpression
getParsedItems
in class Expression
public void setParsedItem(ParsedItem pi)
setParsedItem
in class Expression
public void old()
Expression
old
in class Expression
java.lang.InternalError
- since an array initializer appears only in
expression with side effects.public Proofs wp(IJml2bConfiguration config, java.lang.String result, Proofs normalBehaviour, ExceptionalBehaviourStack exceptionalBehaviour)
Expression
wp
in class Expression
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
InternalError,
- the methods arrayDeclaration are used to
calculate the lemmas.ArrayInitializer#arrayDeclaration(IJml2bConfiguration, Formula,
Type, Proofs, ExceptionalBehaviourStack)
public void getPrecondition(IJml2bConfiguration config, ModifiableSet modifies, java.util.Vector req, java.util.Vector ens) throws Jml2bException, PogException
getPrecondition
in class Statement
Jml2bException
PogException
public void collectCalledMethod(java.util.Vector calledMethod)
collectCalledMethod
in class Statement
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |