public override bool Parse(ParseContext context, IAstNode parent)
{
Debug.Assert(context.Tokens.CurrentToken.TokenType == RTokenType.Operator);
OperatorType = TokenOperator.GetOperatorType(context.TextProvider.GetText(context.Tokens.CurrentToken));
OperatorToken = RParser.ParseToken(context, this);
Associativity = OperatorAssociativity.GetAssociativity(OperatorType);
// If operator is preceded by an operator, it is then unary
// Look back two tokens since operator parsing already consumed its token.
if (IsUnary || IsUnaryOperator(context.Tokens, context.TextProvider, OperatorType, -2))
{
OperatorType = Operator.GetUnaryForm(OperatorType);
IsUnary = true;
Associativity = Associativity.Right;
}
return(base.Parse(context, parent));
}