CsExpression Struct Reference

Abstract expression AST node. More...

Inheritance diagram for CsExpression:
CsNode CsAsIsExpression CsAssignmentExpression CsBinaryExpression CsConditionalExpression CsLambdaExpression CsPrimaryExpression CsStuffExpression 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 void type_lookup (CsDisplay &display)
 Type Lookup - pass 3 (for internal purpose only).
virtual void clearEntities ()
 Clear all entity references (for internal purpose only).
virtual void addEntityDefinitions (CsEntityCollector &entityCollector)
 Collect entities defined in this AST node.
virtual void addEntityReferences (CsEntityCollector &entityCollector)
 Collect entity references.
virtual bool isExpression () const
 Returns true if node is expression.
virtual bool isStatementExpression () const

Public Attributes

expression_classification ec: 8
 Expression classification.
bool delete_entity_typeref
bool method_group
bool resolve_member_or_type_access
bool primary_expression_member_access
CsEntityTypeRefentity_typeref
 Type of expression.
CsEntityentity
 Refers to entity which generate expression.
CsConversionconversion
 Conversion which is used to convert this expression to another type.
CsConstantOrAttributeValueconstant_or_attribute_value
 Constant or attribute value.
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 (  )  [virtual]

Member Function Documentation

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

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

Implements CsNode.

Reimplemented in CsQueryExpression, CsMakeRefExpression, CsRefTypeExpression, CsRefValueExpression, and CsArgListExpression.

virtual bool CsExpression::isExpression (  )  const [inline, virtual]

Returns true if node is expression.

Reimplemented from CsNode.

virtual bool CsExpression::isStatementExpression (  )  const [inline, virtual]
virtual void CsExpression::type_lookup ( CsDisplay &  display  )  [inline, virtual]

Member Data Documentation

Conversion which is used to convert this expression to another type.

expression_classification CsExpression::ec

Expression classification.

Refers to entity which generate expression.

© 2010 metaspec