Uses of Interface
dev.civl.mc.model.IF.expression.Expression
Packages that use Expression
Package
Description
Module model defines a static model, i.e., the control flow graph, representation of a CIVL-C program.
Submodule model.expression defines expression in CIVL.
Submodule model.location defines a location in the control flow graph of CIVL.
Submodule model.statement defines a statement of a CIVL-C program.
Submodule model.type defines types in CIVL.
Module semantics implements the semantics of CIVL-C.
-
Uses of Expression in dev.civl.mc.model.IF
Methods in dev.civl.mc.model.IF that return ExpressionModifier and TypeMethodDescriptionModelFactory.arithmeticableExpression(Expression expression) Translates an expression to be of the type for arithmetic operations i.e.ModelFactory.booleanExpression(Expression expression) Convert an expression to be of boolean-type.ModelFactory.comparableExpression(Expression expression) Translates an expression to be of the type for comparable operations i.e.LogicFunction.definition()ModelFactory.functionGuardExpression(CIVLSource source, Expression function, List<Expression> arguments) ModelFactory.nullPointerExpression(CIVLPointerType pointerType, CIVLSource source) Generate a null pointer expressionModelFactory.numericExpression(Expression expression) Translates an expression to be of numeric-type (i.e., int or real).ModelFactory.systemGuardExpression(CallOrSpawnStatement sysCall) Creates the system guard expression for the given system call statement.ModelFactory.trueExpression(CIVLSource source) creates a new boolean expression which has the value $trueMethods in dev.civl.mc.model.IF that return types with arguments of type ExpressionModifier and TypeMethodDescriptionCIVLFunction.getPossibleValidConsequences()Possible valid consequence is a valid contract expression which is POSSIBLE a consequence of the whole contract Notice that consequences only come from requirementsMethods in dev.civl.mc.model.IF with parameters of type ExpressionModifier and TypeMethodDescriptionAccuracyAssumptionBuilder.accuracyAssumptions(Expression assumption, Scope scope) Analyze an assumption.voidFragment.addGuardToStartLocation(Expression guard, ModelFactory factory) Add a specified guard to the all statements of the start location.ModelFactory.arithmeticableExpression(Expression expression) Translates an expression to be of the type for arithmetic operations i.e.ModelFactory.arrayLambdaExpression(CIVLSource source, CIVLArrayType arrayType, List<Pair<List<Variable>, Expression>> boundVariableList, Expression restriction, Expression expression) Creates a new array lambda expression.ModelFactory.arraySliceReference(ArraySliceReference.ArraySliceKind sliceKind, Expression index) creates a new array slice reference.ModelFactory.assignStatement(CIVLSource civlSource, Location source, LHSExpression lhs, Expression rhs, boolean isInitializer) An assignment statement.ModelFactory.binaryExpression(CIVLSource source, BinaryExpression.BINARY_OPERATOR operator, Expression left, Expression right) A binary expression.ModelFactory.booleanExpression(Expression expression) Convert an expression to be of boolean-type.ModelFactory.callOrSpawnStatement(CIVLSource sourceOf, Location location, boolean isCall, Expression function, List<Expression> arguments, Expression guard, boolean isInitializer) Creates a call or spawn statement.ModelFactory.castExpression(CIVLSource source, CIVLType type, Expression expression) Create a cast expressionModelFactory.civlForEnterFragment(CIVLSource source, Location src, Expression dom, List<Variable> variables, Variable counter) Returns a new fragment containing a CivlForStatement.ModelFactory.civlParForEnterStatement(CIVLSource source, Location location, Expression domain, VariableExpression domSize, VariableExpression procsVar, CIVLFunction parProcFunc) creates a$parforenter statement to start the execution of the$parfor.ModelFactory.comparableExpression(Expression expression) Translates an expression to be of the type for comparable operations i.e.CIVLTypeFactory.completeArrayType(CIVLType elementType, Expression extent) Returns a new complete array type with specified extent (length expression) and element type.ModelFactory.conditionalExpression(CIVLSource source, Expression condition, Expression trueBranch, Expression falseBranch) The ternary conditional expression ("?" in C).ModelFactory.dereferenceExpression(CIVLSource source, Expression pointer) Returns a new dereference expression (*p) with operand pointer.ModelFactory.differentiableExpression(CIVLSource source, AbstractFunction function, int degree, Expression[] lowerBounds, Expression[] upperBounds) An expression representing the claim that some function is differentiable.ModelFactory.domainGuard(CIVLSource source, List<Variable> vars, Variable counter, Expression domain) Returns a domain guard expression which is boolean expression whose arguments consists of loop variables in a CIVL$forloop and the original domain associate to the loop.ModelFactory.dotExpression(CIVLSource source, Expression struct, int fieldIndex) A dot expression is a reference to a struct field.ModelFactory.extendedQuantifiedExpression(CIVLSource source, CIVLType type, dev.civl.abc.ast.node.IF.acsl.ExtendedQuantifiedExpressionNode.ExtendedQuantifier quant, Expression lo, Expression hi, Expression function) ModelFactory.functionGuardExpression(CIVLSource source, Expression function, List<Expression> arguments) ModelFactory.ifElseBranchStatement(CIVLSource civlSource, Location source, Expression guard, boolean isIf) An if-else branch statement is introduced to translate if-else statement.booleanModelFactory.isTrue(Expression expression) Check if a certain expression is TRUE.ModelFactory.lambdaExpression(CIVLSource source, CIVLFunctionType functionType, Variable variable, Expression expression) Creates a new lambda expression.ModelFactory.logicFunction(CIVLSource source, Identifier name, Scope parameterScope, List<Variable> parameters, CIVLType outputType, int[] pointerToHeapMap, Scope containingScope, Expression definition) Create a new logic function (LogicFunction).ModelFactory.loopBranchStatement(CIVLSource civlSource, Location source, Expression guard, boolean isTrue, LoopContract loopContract) An loop branch statement is introduced when translating a loop.ModelFactory.mallocStatement(CIVLSource civlSource, Location source, LHSExpression lhs, CIVLType staticElementType, Expression scopeExpression, Expression sizeExpression, int mallocId, Expression guard) Create a new malloc statementModelFactory.noopStatement(CIVLSource civlSource, Location source, Expression expression) A noop statement with the default guard of true.ModelFactory.noopStatementWtGuard(CIVLSource civlSource, Location source, Expression guard) A noop statement with an explicit guard expression.ModelFactory.numericExpression(Expression expression) Translates an expression to be of numeric-type (i.e., int or real).ModelFactory.quantifiedExpression(CIVLSource source, QuantifiedExpression.Quantifier quantifier, List<Pair<List<Variable>, Expression>> boundVariableList, Expression restriction, Expression expression) Creates a new quantified expression.ModelFactory.regularRangeExpression(CIVLSource source, Expression low, Expression high, Expression step) Creates a regular range expression, which has the syntaxlow ..ModelFactory.returnFragment(CIVLSource civlSource, Location source, Expression expression, CIVLFunction function) Create a one-statement fragment that contains the return statement.ModelFactory.sizeofExpressionExpression(CIVLSource source, Expression argument) Returns a new expression of the form "sizeof(e)" where is an expression.ModelFactory.subscriptExpression(CIVLSource source, LHSExpression array, Expression index) An expression for an array index operation.ModelFactory.switchBranchStatement(CIVLSource civlSource, Location source, Expression guard) Creates a switch branch statement for the default case, which is a subclass of no-op statement.ModelFactory.switchBranchStatement(CIVLSource civlSource, Location source, Expression guard, Expression label) Creates a switch branch statement for a labeled case.ModelFactory.unaryExpression(CIVLSource source, UnaryExpression.UNARY_OPERATOR operator, Expression operand) A unary expression.ModelFactory.updateStatement(CIVLSource source, Location srcLoc, Expression guard, Expression collator, CIVLFunction function, Expression[] arguments) ModelFactory.updateStatement(CIVLSource source, Location srcLoc, Expression guard, Expression collator, CallOrSpawnStatement call) Creates an$updatestatement.Method parameters in dev.civl.mc.model.IF with type arguments of type ExpressionModifier and TypeMethodDescriptionModelFactory.abstractFunctionCallExpression(CIVLSource source, AbstractFunction function, List<Expression> arguments) An expression for a call to an abstract function.voidCIVLFunction.addPossibleValidConsequence(Pair<Expression, Integer> validConsequences) Possible valid consequence is a valid contract expression which is POSSIBLE a consequence of the whole contract Notice that consequences only come from requirementsModelFactory.arrayLambdaExpression(CIVLSource source, CIVLArrayType arrayType, List<Pair<List<Variable>, Expression>> boundVariableList, Expression restriction, Expression expression) Creates a new array lambda expression.ModelFactory.callOrSpawnStatement(CIVLSource sourceOf, Location location, boolean isCall, Expression function, List<Expression> arguments, Expression guard, boolean isInitializer) Creates a call or spawn statement.ModelFactory.functionGuardExpression(CIVLSource source, Expression function, List<Expression> arguments) ModelFactory.loopContract(CIVLSource civlSource, Location loopLocation, List<Expression> loopInvariants, List<LHSExpression> loopAssigns, List<Expression> loopVariants) Creates aLoopContractinstanceModelFactory.parallelAssignStatement(CIVLSource source, List<Pair<LHSExpression, Expression>> assignPairs) ModelFactory.quantifiedExpression(CIVLSource source, QuantifiedExpression.Quantifier quantifier, List<Pair<List<Variable>, Expression>> boundVariableList, Expression restriction, Expression expression) Creates a new quantified expression.ModelFactory.recDomainLiteralExpression(CIVLSource source, List<Expression> ranges, CIVLType type) Create a rectangular domain expression, which has the form{r1, r2, ..., rm}, wheremis the dimension of the domain, andri (where 1 invalid input: '<'= i invalid input: '<'= m)is a range expression (either regular range or literal range). -
Uses of Expression in dev.civl.mc.model.IF.contract
Methods in dev.civl.mc.model.IF.contract that return ExpressionModifier and TypeMethodDescriptionNamedFunctionBehavior.assumptions()Returns the conjunction of all assumptions of this behavior.FunctionContract.guard()Returns the guard of the function.LoopContract.loopInvariants()Returns an array of loop invariants specified for this loop.LoopContract.loopVariants()Returns an array of loop variants specified for this loop.Methods in dev.civl.mc.model.IF.contract that return types with arguments of type ExpressionModifier and TypeMethodDescriptionCallEvent.arguments()Returns the arguments of the call event.FunctionBehavior.assignsMemoryUnits()Returns the assigns clause of this behavior.FunctionBehavior.ensurances()Returns the postconditions of this behavior.FunctionBehavior.getWaitsforList()Get an iterable collection of expressions which contains arguments of a "waitsfor" clause.MemoryEvent.memoryUnits()Returns the memory units associated with this event.FunctionBehavior.readsMemoryUnits()Returns the reads clause of this behavior.FunctionBehavior.requirements()Returns the preconditions of this behavior.Methods in dev.civl.mc.model.IF.contract with parameters of type ExpressionModifier and TypeMethodDescriptionvoidFunctionBehavior.addAssignsMemoryUnit(Expression mu) Add an assigns clause to this behavior.voidFunctionBehavior.addPostcondition(Expression condition) Returns the post condition of this behavior.voidFunctionBehavior.addPrecondition(Expression condition) Returns the precondition of this behavior.voidFunctionBehavior.addReadsMemoryUnit(Expression mu) Add a reads clause to this behavior.voidNamedFunctionBehavior.setAssumption(Expression assumption) Set the conjunction of all assumptions to this behavior.voidFunctionContract.setGuard(Expression expression) Sets the guard of the function.Method parameters in dev.civl.mc.model.IF.contract with type arguments of type ExpressionModifier and TypeMethodDescriptionContractFactory.newCallEvent(CIVLSource source, CIVLFunction function, List<Expression> arguments) Creates a new instance of call event.ContractFactory.newMemoryEvent(CIVLSource source, DependsEvent.DependsEventKind kind, Set<Expression> memoryUnits) Creates a new instance of memory event of the given kind.voidFunctionBehavior.setWaitsforList(Iterable<Expression> waitsforArgs) Set an expression collection as the arguments set as the "waitsfor" clause. -
Uses of Expression in dev.civl.mc.model.IF.expression
Subinterfaces of Expression in dev.civl.mc.model.IF.expressionModifier and TypeInterfaceDescriptioninterfaceAn expression representing a call of an abstract function.interfaceThis represents an address-of expression, which contains one operand, and has the format:invalid input: '&x', whereinvalid input: '&'is the address-of operator andxis the operand.interfaceA CIVL-C quantified expression, including three components, bound variable declaration list, (optional) restriction and expression.interfaceA binary operation.interfaceA literal boolean value.interfaceA bound variable is a variable used in a quantified expression.interfaceA cast of an expression to a different type.interfaceinterfaceThis class represents compound literal expressions, including string literals.interfaceThe ternary conditional expression ("?" in C).interfaceinterfaceAn uninterpreted call to the derivative of an abstract function.interfaceThis expression encodes the claim that a real, abstract function is differentiable.interfaceThis is the guard expression of CIVL for loops ($for).interfaceA dot expression is a reference to a field in a struct or union.interfaceA "DynamicTypeOf" expression.interfaceThe representation for the "fold expression" in ACSL, e.g.interfaceinterfaceA function guard expression is the guard expression of a function call with a function pointer.interfaceinterfaceinterfaceAn expression yielding the initial value of a variable.interfaceAn integer literal.interfaceA CIVL-C quanti, bound variable declaration list, (optional) restriction and expression.interfaceA left-hand-side expression.interfaceThe parent of all literal expressions.interfaceA memory unit expression is an expression that represents (part of) the memory related to some variable.interfaceinterfaceinterfaceA CIVL-C quantified expression, including three components, bound variable declaration list, (optional) restriction and expression.interfaceA real literal.interfaceThis is a rectangular domain literal expression, which is the Cartesian product of a number of ranges, e.g.,{range1, range2, range3, ...}.interfaceRepresents a CIVL-C regular range expression, which has the formlo ..interfaceA scopeof expression is "$scopeof(expr)".interfaceSelf expression.interfaceAn expression of the form "sizeof(e)" where e is an expression.interfaceAn expression of the form "sizeof(t)" where t is a type.interfaceThis class represents a $state_null constant expression.interfacea[i], where "a" is an array and "i" is an expression evaluating to an integer.interfaceA system guard expression is a pseudo guard expression for system function calls.interfaceA unary operation.interfaceSelf expression.interfaceA use of a variable in an expression.interfaceThis represents the expression..., which is used only in contracts and stands for an expression of any type whose value is ignored.Methods in dev.civl.mc.model.IF.expression that return ExpressionModifier and TypeMethodDescriptionDomainGuardExpression.domain()Returns the domain expression.ArrayLambdaExpression.expression()The expression e(x).QuantifiedExpression.expression()The expression e(x).ExtendedQuantifiedExpression.function()returns the functionFunctionGuardExpression.functionExpression()Returns the function expression of the corresponding call statement of this guard expression.SizeofExpression.getArgument()ConditionalExpression.getCondition()CastExpression.getExpression()CompoundLiteralExpression.CIVLScalarLiteralObject.getExpression()ConditionalExpression.getFalseBranch()RegularRangeExpression.getHigh()Returns the upper bound argumenthi.RegularRangeExpression.getLow()Returns the lower bound argumentlo.RegularRangeExpression.getStep()Returns the step argumentstepif it is present, else returnsnullConditionalExpression.getTrueBranch()ExtendedQuantifiedExpression.higher()returns the higher boundSubscriptExpression.index()LambdaExpression.lambdaFunction()The expression e(x).BinaryExpression.left()ExtendedQuantifiedExpression.lower()returns the lower boundDifferentiableExpression.lowerBounds()Gets the lower bounds of the intervals.UnaryExpression.operand()DereferenceExpression.pointer()Returns the sole argument of this dereference expression.RecDomainLiteralExpression.rangeAt(int index) Returns the range expression of the domain literal at the given index.Expression.replaceWith(ConditionalExpression oldExpression, Expression newExpression) Attempt to create a expression by replacing a certain conditional expression with a new expression, used when translating away conditional expressions without introduction temporal variableArrayLambdaExpression.restriction()Boolean-valued expression assumed to hold when evaluating expression.QuantifiedExpression.restriction()Boolean-valued expression assumed to hold when evaluating expression.BinaryExpression.right()DotExpression.structOrUnion()DifferentiableExpression.upperBounds()Gets the upper bounds of the intervals.Methods in dev.civl.mc.model.IF.expression that return types with arguments of type ExpressionModifier and TypeMethodDescriptionAbstractFunctionCallExpression.arguments()FunctionGuardExpression.arguments()Returns the list of arguments of the corresponding function call statement.SystemGuardExpression.arguments()The list of arguments that this function call uses.ArrayLambdaExpression.boundVariableList()The list of bound variables.QuantifiedExpression.boundVariableList()The list of bound variables.CompoundLiteralExpression.CIVLLiteralObject.subExpressions()Methods in dev.civl.mc.model.IF.expression with parameters of type ExpressionModifier and TypeMethodDescriptionCompoundLiteralExpression.createScalarLiteralObject(CIVLType type, Expression expr) Expression.replaceWith(ConditionalExpression oldExpression, Expression newExpression) Attempt to create a expression by replacing a certain conditional expression with a new expression, used when translating away conditional expressions without introduction temporal variablevoidSubscriptExpression.setIndex(Expression index) voidUnaryExpression.setOperand(Expression operand) -
Uses of Expression in dev.civl.mc.model.IF.expression.reference
Methods in dev.civl.mc.model.IF.expression.reference that return ExpressionModifier and TypeMethodDescriptionArraySliceReference.index()Returns the index expression of the array slice. -
Uses of Expression in dev.civl.mc.model.IF.location
Methods in dev.civl.mc.model.IF.location that return ExpressionModifier and TypeMethodDescriptionLocation.pathCondition()returns the path condition of this location from the start locationMethods in dev.civl.mc.model.IF.location with parameters of type Expression -
Uses of Expression in dev.civl.mc.model.IF.statement
Methods in dev.civl.mc.model.IF.statement that return ExpressionModifier and TypeMethodDescriptionUpdateStatement.arguments()UpdateStatement.collator()CivlParForSpawnStatement.domain()returns the domain according to which processes will be spawned.DomainIteratorStatement.domain()Returns the iteration domain expression, which is the expression following the colon.NoopStatement.expression()ReturnStatement.expression()CallOrSpawnStatement.functionExpression()MallocStatement.getScopeExpression()The first argument to the $malloc function is an expression of type pointer-to-heap.MallocStatement.getSizeExpression()The second argument to the $malloc function is an integer expression specifying the size (number of bytes) to malloc.Statement.guard()AssignStatement.rhs()Methods in dev.civl.mc.model.IF.statement that return types with arguments of type ExpressionModifier and TypeMethodDescriptionCallOrSpawnStatement.arguments()ParallelAssignStatement.assignments()Methods in dev.civl.mc.model.IF.statement with parameters of type ExpressionModifier and TypeMethodDescriptionCallOrSpawnStatement.replaceWith(ConditionalExpression oldExpression, Expression newExpression) Statement.replaceWith(ConditionalExpression oldExpression, Expression newExpression) Return a new statement by copying this statement and modifying it as well as its guard by replacing a certain conditional expression with a expression, used when translating away conditional expression WITHOUT introducing temporary variables.voidReturnStatement.setExpression(Expression expression) voidStatement.setGuard(Expression guard) Method parameters in dev.civl.mc.model.IF.statement with type arguments of type ExpressionModifier and TypeMethodDescriptionvoidCallOrSpawnStatement.setArguments(List<Expression> arguments) -
Uses of Expression in dev.civl.mc.model.IF.type
Methods in dev.civl.mc.model.IF.type that return Expression -
Uses of Expression in dev.civl.mc.semantics.IF
Methods in dev.civl.mc.semantics.IF with parameters of type ExpressionModifier and TypeMethodDescriptionEvaluator.evaluate(State state, int pid, Expression expression) Evaluator.evaluate(State state, int pid, Expression expression, boolean checkUndefinedValue) Evaluates the expression and returns the result, which is a symbolic expression value.Evaluator.evaluateCastWorker(State state, int pid, String process, CIVLType castType, Expression arg) Evaluator.evaluateFunctionIdentifier(State state, int pid, Expression functionPointer, CIVLSource source) Evaluates a function pointer expression.LibraryEvaluator.evaluateGuard(CIVLSource source, State state, int pid, String function, Expression[] arguments) Evaluates the guard of a system function.MemoryUnitExpressionEvaluator.evaluateMemoryUnit(State state, Pair<Scope, dev.civl.sarl.IF.expr.SymbolicExpression[]> parameterScope, int pid, Expression muExpr) Evaluates the memory unit represented by an expression in a contract.Executor.execute_printf(CIVLSource source, State state, int pid, String process, Expression[] arguments, dev.civl.sarl.IF.expr.SymbolicExpression[] argumentValues, boolean forcePrint) SymbolicAnalyzer.expressionEvaluation(State state, int pid, Expression expression, boolean resultOnly) Compute a friendly string representation of an expression's evaluation.Evaluator.getString(CIVLSource source, State state, int pid, String process, Expression charPointerExpr, dev.civl.sarl.IF.expr.SymbolicExpression charPointer) extracts a string based on a given character pointer or string literal.Executor.malloc(CIVLSource source, State state, int pid, String process, Expression scopeExpression, dev.civl.sarl.IF.expr.SymbolicExpression scopeValue, CIVLType objectType, dev.civl.sarl.IF.expr.SymbolicExpression objectValue) Adds a new object to the heap of a certain scope; returns the pointer of the object in the heap.