public override AstNode VisitShift_expression([NotNull] GLSL_ES300Parser.Shift_expressionContext context)
        {
            if (context.Left() != null || context.Right() != null)
            {
                var result = new ExpressionBinary();
                result.Left     = (Expression)this.Visit(context.shift_expression());
                result.Right    = (Expression)this.Visit(context.additive_expression());
                result.Operator = context.Left() != null ? Operator.Left : Operator.Right;
                return(result);
            }

            return(this.Visit(context.additive_expression()));
        }