Envision
A visual programming IDE for object-oriented languages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Private Attributes
OOInteraction::OOOperatorDescriptor Class Reference
Inheritance diagram for OOInteraction::OOOperatorDescriptor:
Interaction::OperatorDescriptor OOInteraction::CommandDescriptor OOInteraction::CompoundObjectDescriptor

Public Types

using CreateFunction = std::function< OOModel::Expression *(const QList< OOModel::Expression * > &operands)>
 
- Public Types inherited from Interaction::OperatorDescriptor
enum  Associativity { LeftAssociative , RightAssociative , NotAssociative }
 

Public Member Functions

 OOOperatorDescriptor (const QString &name, const QString &signature, int precedence, Associativity associativity)
 
 OOOperatorDescriptor (const QString &name, const QString &signature, int precedence, Associativity associativity, CreateFunction createFunction)
 
virtual OOModel::Expressioncreate (const QList< OOModel::Expression * > &operands)
 
- Public Member Functions inherited from Interaction::OperatorDescriptor
 OperatorDescriptor ()
 
 OperatorDescriptor (const QString &name, const QString &signature, int precedence, Associativity associativity)
 
 OperatorDescriptor (const QString &prefixText, const QString &postfixText)
 
virtual ~OperatorDescriptor ()
 
Associativity associativity ()
 
QStringList delimiters ()
 
const QList< ExpectedToken > & expectedTokens () const
 
const QStringList & infix (int at) const
 
const QList< QStringList > & infixes () const
 
bool isDelimiter (int signatureIndex)
 
bool isTransient ()
 
const QString & name ()
 
int numOperands ()
 
const QStringList & postfix () const
 
int precedence ()
 
const QStringList & prefix () const
 
void setTransient (bool transient)
 
const QStringList & signature ()
 

Static Public Member Functions

template<OOModel::AssignmentExpression::AssignmentTypes op>
static OOModel::Expressionassignment (const QList< OOModel::Expression * > &operands)
 
template<OOModel::BinaryOperation::OperatorTypes op>
static OOModel::Expressionbinary (const QList< OOModel::Expression * > &operands)
 
template<OOModel::UnaryOperation::OperatorTypes op>
static OOModel::Expressionunary (const QList< OOModel::Expression * > &operands)
 
- Static Public Member Functions inherited from Interaction::OperatorDescriptor
static bool isDelimiter (const QString &str)
 

Private Attributes

CreateFunction createFunction_ {}
 

Member Typedef Documentation

◆ CreateFunction

Constructor & Destructor Documentation

◆ OOOperatorDescriptor() [1/2]

OOInteraction::OOOperatorDescriptor::OOOperatorDescriptor ( const QString &  name,
const QString &  signature,
int  precedence,
Associativity  associativity 
)

◆ OOOperatorDescriptor() [2/2]

OOInteraction::OOOperatorDescriptor::OOOperatorDescriptor ( const QString &  name,
const QString &  signature,
int  precedence,
Associativity  associativity,
CreateFunction  createFunction 
)

Member Function Documentation

◆ assignment()

template<OOModel::AssignmentExpression::AssignmentTypes op>
OOModel::Expression * OOInteraction::OOOperatorDescriptor::assignment ( const QList< OOModel::Expression * > &  operands)
static

◆ binary()

template<OOModel::BinaryOperation::OperatorTypes op>
OOModel::Expression * OOInteraction::OOOperatorDescriptor::binary ( const QList< OOModel::Expression * > &  operands)
static

◆ create()

OOModel::Expression * OOInteraction::OOOperatorDescriptor::create ( const QList< OOModel::Expression * > &  operands)
virtual

◆ unary()

template<OOModel::UnaryOperation::OperatorTypes op>
OOModel::Expression * OOInteraction::OOOperatorDescriptor::unary ( const QList< OOModel::Expression * > &  operands)
static

Member Data Documentation

◆ createFunction_

CreateFunction OOInteraction::OOOperatorDescriptor::createFunction_ {}
private