Example #1
0
        private SyntaxExpression ParseBinaryExpression(int parentOperatorPrecedence = 0)
        {
            SyntaxExpression left;

            left = ParseFactorExpression();
            while (true)
            {
                var precedence = CurrentToken.GetOperatorPrecedence();
                if (precedence == 0 || precedence <= parentOperatorPrecedence)
                {
                    break;
                }
                var operatorToken = NextToken();
                var right         = ParseBinaryExpression(precedence);
                left = new SyntaxBinaryExpression(left, operatorToken, right);
            }
            return(left);
        }