public override Node VisitMultiplicativeExpression(ECMAScriptParser.MultiplicativeExpressionContext context)
 {
     return(new BinaryExpression(
                context,
                OperatorsUtils.BinaryOperatorFromString(context.children[1].GetText()),
                (Expression)Visit(context.singleExpression()[0]),
                (Expression)Visit(context.singleExpression()[1])
                ));
 }
        public override Node VisitEqualityExpression(ECMAScriptParser.EqualityExpressionContext context)
        {
            var anOperator = context.children[1].GetText();

            if (anOperator == "==" || anOperator == "!=")
            {
                throw new NotImplementedException(
                          GenerateErrorMessage(context, "only '===' and '!==' equality operators are supported."));
            }
            return(new BinaryExpression(
                       context,
                       OperatorsUtils.BinaryOperatorFromString(anOperator),
                       (Expression)Visit(context.singleExpression()[0]),
                       (Expression)Visit(context.singleExpression()[1])
                       ));
        }