DiaDes  0.1
DIAgnosisofDiscrete-EventSystem
Public Types | Public Member Functions | Private Attributes | List of all members
Diades::Altarica::BinaryExpression Class Reference

#include <Expression.hh>

Inheritance diagram for Diades::Altarica::BinaryExpression:
Inheritance graph

Public Types

typedef Value::BinaryOperator Operator
 
- Public Types inherited from Diades::Altarica::Expression
enum  Category {
  IfThenElse =0, Case =1, Or =2, And =3,
  Eq =4, Neq =5, Imply =6, Lt =7,
  Gt =8, Leq =9, Geq =10, Add =11,
  Sub =12, Mul =13, Div =14, Mod =15,
  Neg =16, Not =17, Paren =18, StructMember =19,
  ArrayMember =20, Var =21, Id =22, Min =23,
  Max =24, True =25, False =26, Integer =27,
  ForAll =28, Exist =29, FunctionCall =30, Struct =31,
  Array =32
}
 
typedef reference_wrapper< Expression const > ConstReference
 
typedef reference_wrapper< ExpressionReference
 
typedef std::vector< ConstReferenceExprVector
 
typedef Utils::Exception< ExpressionException
 
typedef std::vector< VariableDecl::ConstReference >::const_iterator VariableIterator
 
typedef std::vector< VariableDecl::ConstReference >::size_type SizeType
 
typedef std::vector< VariableDecl::ConstReferenceSupport
 

Public Member Functions

 BinaryExpression (const NodeDecl &owner, unsigned id, const Expression &left, const Expression &right, Category category)
 
virtual bool valid () const
 
Operator op () const
 
const Expressionleft () const
 
const Expressionright () const
 
Category category () const
 
virtual const TypevalueType () const
 
virtual bool isConstant () const
 
virtual ~BinaryExpression ()
 
- Public Member Functions inherited from Diades::Altarica::Expression
virtual ~Expression ()
 
const AltaricaModelmodel () const
 
const NodeDeclowner () const
 
bool operator== (const Expression &e) const
 
 Expression (const NodeDecl &owner, unsigned id)
 
unsigned id () const
 
VariableIterator variableBegin () const
 
VariableIterator variableEnd () const
 
SizeType supportSize () const
 
const Supportsupport () const
 

Private Attributes

const Expression_left
 
const Expression_right
 
Category _category
 
Operator _op
 

Additional Inherited Members

- Static Public Member Functions inherited from Diades::Altarica::Expression
static string typeName ()
 
- Protected Attributes inherited from Diades::Altarica::Expression
Support _varSupport
 
const NodeDecl_owner
 VariableDecls that are supporting the Expression. More...
 
unsigned _id
 

Detailed Description

Definition at line 361 of file Expression.hh.

Member Typedef Documentation

◆ Operator

Definition at line 364 of file Expression.hh.

Constructor & Destructor Documentation

◆ BinaryExpression()

Diades::Altarica::BinaryExpression::BinaryExpression ( const NodeDecl owner,
unsigned  id,
const Expression left,
const Expression right,
Category  category 
)

◆ ~BinaryExpression()

virtual Diades::Altarica::BinaryExpression::~BinaryExpression ( )
inlinevirtual

Definition at line 389 of file Expression.hh.

Member Function Documentation

◆ category()

Category Diades::Altarica::BinaryExpression::category ( ) const
inlinevirtual

Expression evaluation: this operation evaluates the expression with the current value associated to the variables that support the Expression. The evaluation is failing if there is a variable of the support that is still free (that is an unassigned variable).

Parameters
valuethe Value resulting from the evaluation of the current Expression.
Returns
true if the operation succeeds, false otherwise.Category of an expression
the category o of the Expression. It is way to avoid the use of RTTI and gets a lighter implementation.

Implements Diades::Altarica::Expression.

Definition at line 383 of file Expression.hh.

References Diades::Altarica::Expression::valueType().

◆ isConstant()

virtual bool Diades::Altarica::BinaryExpression::isConstant ( ) const
inlinevirtual
Returns
true if the Expression is constant

Implements Diades::Altarica::Expression.

Definition at line 385 of file Expression.hh.

◆ left()

const Expression& Diades::Altarica::BinaryExpression::left ( ) const
inline

Definition at line 381 of file Expression.hh.

◆ op()

Operator Diades::Altarica::BinaryExpression::op ( ) const
inline

Definition at line 380 of file Expression.hh.

◆ right()

const Expression& Diades::Altarica::BinaryExpression::right ( ) const
inline

Definition at line 382 of file Expression.hh.

◆ valid()

virtual bool Diades::Altarica::BinaryExpression::valid ( ) const
inlinevirtual

Validity of an Expression

Returns
true if the current Expression is valid.

Implements Diades::Altarica::Expression.

Definition at line 376 of file Expression.hh.

References Diades::Altarica::Expression::valid().

◆ valueType()

virtual const Type& Diades::Altarica::BinaryExpression::valueType ( ) const
virtual

Type of the Value returned by the Expression (lazy computation)

Returns
the Type of the Value.

Implements Diades::Altarica::Expression.

Member Data Documentation

◆ _category

Category Diades::Altarica::BinaryExpression::_category
private

Definition at line 369 of file Expression.hh.

◆ _left

const Expression& Diades::Altarica::BinaryExpression::_left
private

Definition at line 367 of file Expression.hh.

◆ _op

Operator Diades::Altarica::BinaryExpression::_op
private

Definition at line 370 of file Expression.hh.

◆ _right

const Expression& Diades::Altarica::BinaryExpression::_right
private

Definition at line 368 of file Expression.hh.


The documentation for this class was generated from the following file: