CsBinaryExpression Struct Reference
Binary expression AST node.
More...
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 | member_lookup (CsDisplay &display) |
| Member Lookup - pass 4 (for internal purpose only).
|
bool | eval_constant_expression (constant_expression_check_context context, constant_expression_data &data, CsDisplay &display) |
virtual void | clearEntities () |
| Clear all entity references (for internal purpose only).
|
virtual void | addTokensRecursive (CsTokenCollector &tokenCollector) |
| Recursively collect token indexes in source code order.
|
virtual void | addTokens (CsTokenCollector &tokenCollector) |
| Collect token indexes associated with this AST node.
|
virtual void | visit (CsAstVisitor *visitor) |
| CsAstVisitor support.
|
virtual void | callback (CsAstCallback *visitor) |
| CsAstCallback support.
|
Static Public Member Functions |
static bool | convert_constant_to_type (CsDisplay &display, CsExpression *expression, constant_expression_check_context context, constant_expression_data &data, cs_entity_type result_type, bool nullable) |
Public Attributes |
CsExpression * | lhs |
| 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).
|
CsExpression * | rhs |
| 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 |
( |
LineInfo |
line_info |
) |
[inline, explicit] |
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::addTokens |
( |
CsTokenCollector & |
tokenCollector |
) |
[virtual] |
Collect token indexes associated with this AST node.
Implements CsNode.
virtual void CsBinaryExpression::addTokensRecursive |
( |
CsTokenCollector & |
tokenCollector |
) |
[virtual] |
Recursively collect token indexes in source code order.
Implements CsNode.
virtual void CsBinaryExpression::callback |
( |
CsAstCallback * |
visitor |
) |
[inline, virtual] |
virtual void CsBinaryExpression::clearEntities |
( |
|
) |
[virtual] |
Clear all entity references (for internal purpose only).
Reimplemented from CsExpression.
static bool CsBinaryExpression::convert_constant_to_type |
( |
CsDisplay & |
display, |
|
|
CsExpression * |
expression, |
|
|
constant_expression_check_context |
context, |
|
|
constant_expression_data & |
data, |
|
|
cs_entity_type |
result_type, |
|
|
bool |
nullable | |
|
) |
| | [static] |
bool CsBinaryExpression::eval_constant_expression |
( |
constant_expression_check_context |
context, |
|
|
constant_expression_data & |
data, |
|
|
CsDisplay & |
display | |
|
) |
| | |
virtual void CsBinaryExpression::member_lookup |
( |
CsDisplay & |
display |
) |
[virtual] |
Member Lookup - pass 4 (for internal purpose only).
Implements CsNode.
virtual void CsBinaryExpression::visit |
( |
CsAstVisitor * |
visitor |
) |
[inline, virtual] |
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).
|