CsBinaryExpression Struct Reference

Binary expression AST node. More...

Inheritance diagram for CsBinaryExpression:

CsExpression CsNode

List of all members.

Public Member Functions

 CsBinaryExpression ()
 CsBinaryExpression (CsExpression *lhs_, CsTokenType oper_, CsExpression *rhs_)
 CsBinaryExpression (LineInfo line_info)
 CsBinaryExpression (LineInfo line_info, CsNode *parent, CsExpression *lhs_, CsTokenType oper_)
 CsBinaryExpression (LineInfo line_info, CsExpression *lhs_, CsTokenType oper_, CsExpression *rhs_)
 CsBinaryExpression (LineInfo line_info, CsExpression *lhs_, CsTokenType oper_, CsExpression *rhs_, CsTokenIndex operator_token_, CsTokenIndex operator_token2_)
virtual ~CsBinaryExpression ()
virtual void type_lookup (CsDisplay &display)
 Type Lookup - pass 3 (for internal purpose only).
virtual void member_lookup (CsDisplay &display)
 Member Lookup - pass 4 (for internal purpose only).
virtual void addTokensRecursive (CsTokenCollector &tokenCollector)
 Recusively collect token indexes in source code order.
virtual void addTokens (CsTokenCollector &tokenCollector)
 Collect token indexes associated with this AST node.
virtual void clearEntities ()
 Clear all entity references (for internal purpose only).

Public Attributes

CsExpressionlhs
 Left expression.
CsTokenType oper
 Binary operator (one of: tkSTAR, tkDIV, tkMOD, tkPLUS, tkMINUS, tkSHIFT_LEFT, tkSHIFT_RIGHT, tkLESS, tkGREATER, tkLESS_OR_EQUAL, tkGREATER_OR_EQUAL, tkEQUAL, tkNOT_EQ, tkBITAND, tkXOR, tkBITOR, tkAND, tkOR, tkQUESTION2).
CsExpressionrhs
 Right expression.
CsTokenIndex operator_token
CsTokenIndex operator_token2


Detailed Description

Binary expression AST node.

EBNF grammar:

binary-expression:
  expression "*" expression
  expression "/" expression
  expression "%" expression
  expression "+" expression
  expression "-" expression
  expression "<<" expression
  expression ">>" expression
  expression "<" expression
  expression ">" expression
  expression "<=" expression
  expression ">=" expression
  expression "==" expression
  expression "!=" expression
  expression "&" expression
  expression "^" expression
  expression "|" expression
  expression "&&" expression
  expression "||" expression
  expression "??" expression


Constructor & Destructor Documentation

CsBinaryExpression::CsBinaryExpression (  )  [inline]

CsBinaryExpression::CsBinaryExpression ( CsExpression lhs_,
CsTokenType  oper_,
CsExpression rhs_ 
) [inline]

CsBinaryExpression::CsBinaryExpression ( LineInfo  line_info  )  [inline, explicit]

CsBinaryExpression::CsBinaryExpression ( LineInfo  line_info,
CsNode parent,
CsExpression lhs_,
CsTokenType  oper_ 
) [inline]

CsBinaryExpression::CsBinaryExpression ( LineInfo  line_info,
CsExpression lhs_,
CsTokenType  oper_,
CsExpression rhs_ 
) [inline]

CsBinaryExpression::CsBinaryExpression ( LineInfo  line_info,
CsExpression lhs_,
CsTokenType  oper_,
CsExpression rhs_,
CsTokenIndex  operator_token_,
CsTokenIndex  operator_token2_ 
) [inline]

virtual CsBinaryExpression::~CsBinaryExpression (  )  [inline, virtual]


Member Function Documentation

virtual void CsBinaryExpression::type_lookup ( CsDisplay &  display  )  [virtual]

Type Lookup - pass 3 (for internal purpose only).

Implements CsNode.

virtual void CsBinaryExpression::member_lookup ( CsDisplay &  display  )  [virtual]

Member Lookup - pass 4 (for internal purpose only).

Implements CsNode.

virtual void CsBinaryExpression::addTokensRecursive ( CsTokenCollector tokenCollector  )  [virtual]

Recusively collect token indexes in source code order.

Implements CsNode.

virtual void CsBinaryExpression::addTokens ( CsTokenCollector tokenCollector  )  [virtual]

Collect token indexes associated with this AST node.

Implements CsNode.

virtual void CsBinaryExpression::clearEntities (  )  [virtual]

Clear all entity references (for internal purpose only).

Reimplemented from CsExpression.


Member Data Documentation

Binary operator (one of: tkSTAR, tkDIV, tkMOD, tkPLUS, tkMINUS, tkSHIFT_LEFT, tkSHIFT_RIGHT, tkLESS, tkGREATER, tkLESS_OR_EQUAL, tkGREATER_OR_EQUAL, tkEQUAL, tkNOT_EQ, tkBITAND, tkXOR, tkBITOR, tkAND, tkOR, tkQUESTION2).

© 2008 metaspec