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_)
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).
CsExpressionrhs
 Right expression.
CsTokenIndex operator_token

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


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_
[inline]
 

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


Member Function Documentation

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

Collect token indexes associated with this AST node.

Implements CsNode.

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

Recusively collect token indexes in source code order.

Implements CsNode.

virtual void CsBinaryExpression::clearEntities  )  [virtual]
 

Clear all entity references (for internal purpose only).

Reimplemented from CsExpression.

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

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

Implements CsNode.

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

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

Implements CsNode.


Member Data Documentation

CsExpression* CsBinaryExpression::lhs
 

Left expression.

CsTokenType CsBinaryExpression::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).

CsTokenIndex CsBinaryExpression::operator_token
 

CsExpression* CsBinaryExpression::rhs
 

Right expression.

© 2005 metaspec