| 
|||||||||||
| 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.TerminalExp
This class implements a terminal expression.
Java terminal expressions can be:
false
 true
 null
 this
 super
 \result
 
| 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 | |
TerminalExp(Identifier ident)
Constructs an expression from a Java identifer.  | 
|
TerminalExp(Identifier ident,
            java.lang.String subident)
Constructs an expression from a Java identifer and a postfix string.  | 
|
TerminalExp(int nodeType,
            java.lang.String nodeText)
Constructs an expression that is not a Java identifer.  | 
|
TerminalExp(java.lang.String nodeText,
            Type t)
Constructs an expression that is an identifier but not a Java identifer.  | 
|
| Method Summary | |
 java.lang.Object | 
clone()
 | 
 void | 
collectCalledMethod(java.util.Vector calledMethod)
 | 
 boolean | 
equals(Expression e)
Returns whether two expressions are equal.  | 
 Identifier | 
getIdent()
Returns the identifier.  | 
 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)
 | 
 int | 
getValue()
Return the value associated to a constant expression.  | 
 JmlExpression | 
instancie()
Returns a dot expression this.e where e is the
 current expression when it is an identifer that corresponds to a non
 static field or non static method. | 
 JmlExpression | 
instancie(Expression b)
If the current expression is LITERAL_this, 
 return b else return this. | 
 boolean | 
isConstant()
Returns whether this expression is a constant.  | 
 void | 
isModifiersCompatible(Modifiers modifiers)
If the expression is an identifier, test if their modifiers are 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()
When this terminal expression is an identifier, a name index is assigned and its name is stored in the identifier 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 normal behaviour proof where the resulting variable has been substituted with the current expression.  | 
| Methods inherited from class jml2b.structure.statement.Expression | 
addInConjonction, and, createE, emit, exprToForm, getAssert, getFalse, getFromString, getLoop, getNodeText, getNodeType, getNull, getSpecBlock, getStateType, getTrue, 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 TerminalExp(int nodeType,
                   java.lang.String nodeText)
nodeType - The node type of this expressionnodeText - The string corresponding to this expression
public TerminalExp(java.lang.String nodeText,
                   Type t)
nodeText - The string corresponding to this expression
public TerminalExp(Identifier ident,
                   java.lang.String subident)
ident - The identifier corresponding to this expressionsubident - The postfix string associated with this expressionpublic TerminalExp(Identifier ident)
ident - The identifier corresponding to this 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 Expressionpublic antlr.collections.AST parse(antlr.collections.AST tree)
StatementAST tree in order to instanciate the statement 
 fields.
parse in class Statementtree - AST tree containing the statement
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()
processIdent in class Expressionjml2b.pog.IdentifierResolver#bIdents
public void isModifiersCompatible(Modifiers modifiers)
                           throws LinkException
isModifiersCompatible in class Expressionmodifiers - The current invariant modifiers
LinkException - when the test fails.public JmlExpression instancie()
this.e where e is the
 current expression when it is an identifer that corresponds to a non
 static field or non static method.
public Expression subField(Field f,
                           Field newF)
subField in class Expressionpublic Expression subResult(java.lang.String ww)
subResult in class Expressionpublic JmlExpression instancie(Expression b)
LITERAL_this, 
 return b else return this.
instancie in interface JmlExpressioninstancie in class Expressionb - expression on which the method where the expression occurs is 
 called.
public 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 int getValue()
ExpressionThis method should only be called if isConstant returned true.
getValue in class Expressionpublic void old()
Expression
old in class Expression
public Proofs wp(IJml2bConfiguration config,
                 java.lang.String result,
                 Proofs normalBehaviour,
                 ExceptionalBehaviourStack exceptionalBehaviour)
          throws Jml2bException,
                 PogException
wp in class Expressionconfig - 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
Jml2bExceptionpublic Identifier getIdent()
ident
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 Statement
  | 
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||