CsExpression Struct Reference

Abstract expression AST node. More...

Inheritance diagram for CsExpression:

CsNode CsArrayInitializer CsAsIsExpression CsAssignmentExpression CsBinaryExpression CsConditionalExpression CsPrimaryExpression CsStackAllocExpression CsUnaryExpression List of all members.

Public Member Functions

 CsExpression (cs_node type)
 CsExpression (cs_node type, LineInfo line_info)
 CsExpression (cs_node type, LineInfo line_info, CsNode *parent)
virtual ~CsExpression ()
virtual void build_entities (CsDisplay &display)
 Build Entities - pass 2 (for internal purpose only).
virtual CS_GET_NODES void addEntityDefinitions (CsEntityCollector &entityCollector)
 Collect entities defined in this AST node.
virtual void addEntityReferences (CsEntityCollector &entityCollector)
 Collect entity references.
virtual void clearEntities ()
 Clear all entity references (for internal purpose only).

Public Attributes

expression_classification ec: 8
 Expression classification.
bool bDeleteEntityTyperef
 Internal flag.
CsEntityTypeRefentity_typeref
 Type of expression.
CsEntityentity
 Refers to entity which generate expression.
CsEntityMethoduser_defined_conversion
 User-defined conversion operator (method) which used to convert this expression to another type.
CsTokenIndex separator_token

Detailed Description

Abstract expression AST node.

EBNF grammar:

expression:
  unary-expression
  binary-expression
  as-is-expression
  conditional-expression
  assignment-expression


Constructor & Destructor Documentation

CsExpression::CsExpression cs_node  type  )  [inline, explicit]
 

CsExpression::CsExpression cs_node  type,
LineInfo  line_info
[inline]
 

CsExpression::CsExpression cs_node  type,
LineInfo  line_info,
CsNode parent
[inline]
 

virtual CsExpression::~CsExpression  )  [inline, virtual]
 


Member Function Documentation

virtual CS_GET_NODES void CsExpression::addEntityDefinitions CsEntityCollector entityCollector  )  [virtual]
 

Collect entities defined in this AST node.

Implements CsNode.

Reimplemented in CsEmbeddedTypeMemberAccess, CsInvocationExpression, CsElementAccess, CsAsIsExpression, CsCastUnaryExpression, CsAssignmentExpression, CsArrayInitializer, CsMakeRefExpression, CsRefTypeExpression, CsRefValueExpression, and CsArgListExpression.

virtual void CsExpression::addEntityReferences CsEntityCollector entityCollector  )  [virtual]
 

Collect entity references.

Implements CsNode.

Reimplemented in CsEmbeddedTypeMemberAccess, CsInvocationExpression, CsElementAccess, CsAsIsExpression, CsCastUnaryExpression, CsAssignmentExpression, CsArrayInitializer, CsMakeRefExpression, CsRefTypeExpression, CsRefValueExpression, and CsArgListExpression.

virtual void CsExpression::build_entities CsDisplay &  display  )  [inline, virtual]
 

Build Entities - pass 2 (for internal purpose only).

Implements CsNode.

Reimplemented in CsThisAccess, CsBaseMemberAccess, CsBaseIndexerAccess, CsAsIsExpression, and CsArrayInitializer.

virtual void CsExpression::clearEntities  )  [virtual]
 

Clear all entity references (for internal purpose only).

Implements CsNode.

Reimplemented in CsEmbeddedTypeMemberAccess, CsBaseIndexerAccess, CsTypeofExpression, CsCheckedExpression, CsUncheckedExpression, CsSizeofExpression, CsParenthesizedExpression, CsNewObjectExpression, CsNewArrayExpression, CsInvocationExpression, CsElementAccess, CsMemberAccess, CsPointerMemberAccess, CsPostIncrementDecrementExpression, CsBinaryExpression, CsAsIsExpression, CsConditionalExpression, CsOperatorUnaryExpression, CsPreIncrementDecrementExpression, CsCastUnaryExpression, CsAssignmentExpression, CsStackAllocExpression, CsArrayInitializer, CsMakeRefExpression, CsRefTypeExpression, CsRefValueExpression, and CsArgListExpression.


Member Data Documentation

bool CsExpression::bDeleteEntityTyperef
 

Internal flag.

expression_classification CsExpression::ec
 

Expression classification.

CsEntity* CsExpression::entity
 

Refers to entity which generate expression.

CsEntityTypeRef* CsExpression::entity_typeref
 

Type of expression.

CsTokenIndex CsExpression::separator_token
 

CsEntityMethod* CsExpression::user_defined_conversion
 

User-defined conversion operator (method) which used to convert this expression to another type.

© 2005 metaspec