Esempio n. 1
0
        /// <summary>
        /// relational_expression :
        ///       relational_expression op = relational_operator relational_expression
        ///     | compound_expression
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override object VisitRelational_expression([NotNull] PlSqlParser.Relational_expressionContext context)
        {
            OCodeObject result = null;

            var compound_expression = context.compound_expression();

            if (compound_expression != null)
            {
                result = (OCodeObject)VisitCompound_expression(compound_expression);
            }

            else
            {
                Stop();

                var relational_expression = context.relational_expression();
                var left      = (OCodeExpression)VisitRelational_expression(relational_expression[0]);
                var right     = (OCodeExpression)VisitRelational_expression(relational_expression[1]);
                var _operator = (OperatorEnum)VisitRelational_operator(context.relational_operator());

                result = new OBinaryExpression()
                {
                    Left     = left,
                    Operator = _operator,
                    Right    = right
                };
            }

            Debug.Assert(result != null);
            return(result);
        }
Esempio n. 2
0
        /// <summary>
        /// concatenation :
        ///       model_expression (AT (LOCAL | TIME ZONE concatenation) | interval_expression)?
        ///     | concatenation op = (ASTERISK | SOLIDUS) concatenation
        ///     | concatenation op = (PLUS_SIGN | MINUS_SIGN) concatenation
        ///     | concatenation BAR BAR concatenation
        ///     ;
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override object VisitConcatenation([NotNull] PlSqlParser.ConcatenationContext context)
        {
            object result         = null;
            var    concatenations = context.concatenation();

            var model_expression = context.model_expression();

            if (model_expression != null)
            {
                result = VisitModel_expression(model_expression);
                if (context.AT() != null)
                {
                    Stop();
                    if (concatenations != null && concatenations.Length == 1)
                    {
                        Stop();
                        //result =
                    }
                    else
                    {
                        Stop();
                        var interval_expression = context.interval_expression();
                        if (interval_expression != null)
                        {
                            //result =
                        }
                    }
                }
            }
            else
            {
                Stop();
                result = new OBinaryExpression()
                {
                    Left     = VisitConcatenation(concatenations[0]) as OCodeExpression,
                    Operator = context.op.ConvertToOperator(),
                    Right    = VisitConcatenation(concatenations[1]) as OCodeExpression
                };
            }

            Debug.Assert(result != null);
            return(result);
        }
Esempio n. 3
0
 public void VisitBinaryExpression(OBinaryExpression oBinaryExpression)
 {
     throw new NotImplementedException();
 }
Esempio n. 4
0
 public void VisitBinaryExpression(OBinaryExpression oBinaryExpression)
 {
 }