예제 #1
0
        public OrConditionInfo Parse(SelectAtomContext ctx)
        {
            var rslt = new OrConditionInfo();

            Condition_clause.Parse(rslt);
            return(rslt);
        }
예제 #2
0
 public void Parse(OrConditionInfo ctx)
 {
     if (Condition_clause != null)
     {
         Condition_clause.Parse(ctx);
     }
     //return null;
     //return base.Parse(ctx);
 }
예제 #3
0
 public void Parse(OrConditionInfo ctx)
 {
     if (Condition_clause != null)
     {
         Condition_clause.Parse(ctx);
     }
     //return null;
     //return base.Parse(ctx);
 }
예제 #4
0
        public void Parse(OrConditionInfo ctx)
        {
            //OrConditionInfo result = new OrConditionInfo();

            foreach (var and in Compare_complex_mix_ands)
            {
                var andCond = new AndConditionInfo();
                ctx.Conditions.Add(andCond);
                and.Parse(andCond);
            }

            //return result;
        }
예제 #5
0
        public void Parse(OrConditionInfo ctx)
        {
            //OrConditionInfo result = new OrConditionInfo();

            foreach (var and in Compare_complex_mix_ands)
            {
                var andCond = new AndConditionInfo();
                ctx.Conditions.Add(andCond);
                and.Parse(andCond);
            }

            //return result;
        }
예제 #6
0
        public void Parse(OrConditionInfo ctx)
        {
            if (Compare_complex_mix_or != null)
            {
                Compare_complex_mix_or.Parse(ctx);
            }

            //if (Compare_complex_mix_prior != null )
            //{
            //    foreach (var compare in Compare_complex_mix_priors)
            //    {
            //        var compareCtx = compare.Parse(ctx);
            //        if (compareCtx != null)
            //        {
            //            //var temp = new ConditionComplexInfo();
            //            //temp.Conditions = compareCtx.Conditions;
            //            //temp.RelationTypes = compareCtx.RelationTypes;
            //            //rslt.Conditions.Add(temp);
            //            rslt = rslt.Join(compareCtx);
            //        }
            //        else
            //        {
            //            Debug.Assert(false, "条件解析结果为空");
            //        }
            //    }
            //}

            //if (Relations != null && Relations.Count > 0)
            //{
            //    for (int index = 0; index < Relations.Count; index++)
            //    {
            //        var relation = Relations[index];
            //        RelationType relationType = RelationType.Unknown;
            //        switch (relation.ToLower().Trim())
            //        {
            //            case "and":
            //                relationType = RelationType.And;
            //                break;
            //            case "or":
            //                relationType = RelationType.Or;
            //                break;

            //            default: break;
            //        }
            //        rslt.RelationTypes.Add(relationType);
            //    }
            //}
        }
예제 #7
0
        public void Parse(OrConditionInfo ctx)
        {
            if (Compare_complex_mix_or != null)
            {
                 Compare_complex_mix_or.Parse(ctx);
            }

            //if (Compare_complex_mix_prior != null )
            //{
            //    foreach (var compare in Compare_complex_mix_priors)
            //    {
            //        var compareCtx = compare.Parse(ctx);
            //        if (compareCtx != null)
            //        {
            //            //var temp = new ConditionComplexInfo();
            //            //temp.Conditions = compareCtx.Conditions;
            //            //temp.RelationTypes = compareCtx.RelationTypes;
            //            //rslt.Conditions.Add(temp);
            //            rslt = rslt.Join(compareCtx);
            //        }
            //        else
            //        {
            //            Debug.Assert(false, "�������������");
            //        }
            //    }
            //}

            //if (Relations != null && Relations.Count > 0)
            //{
            //    for (int index = 0; index < Relations.Count; index++)
            //    {
            //        var relation = Relations[index];
            //        RelationType relationType = RelationType.Unknown;
            //        switch (relation.ToLower().Trim())
            //        {
            //            case "and":
            //                relationType = RelationType.And;
            //                break;
            //            case "or":
            //                relationType = RelationType.Or;
            //                break;

            //            default: break;
            //        }
            //        rslt.RelationTypes.Add(relationType);
            //    }
            //}
        }
예제 #8
0
        public void Parse(CompareComplexConditionInfo ctx)
        {
            if (Compare_complex_mix_or == null &&
                Compare_complex == null)
            {
                return;
            }

            CompareComplexConditionInfo result = new CompareComplexConditionInfo();

            if (Compare_complex_mix_or != null)
            {
                var orCondition = new OrConditionInfo();
                ctx.OrConditionInfo = orCondition;
                Compare_complex_mix_or.Parse(orCondition);

                //rslt.Parameters.AddRange(temp.Parameters);

                //rslt.Join(temp);
            }
            if (Compare_complex != null)
            {
                //var condition = new ConditionInfo();
                ctx.AtomConditionInfo = Compare_complex.Parse(null);

                //rslt.Join(temp);
            }

            if (Search_option != null)
            {
                ctx.Options = this.Search_option.Parse();
                foreach (var op in ctx.Options)
                {
                    op.Name  = op.Name.StartsWith("'") ? op.Name.Substring(1, op.Name.Length - 2) : op.Name.Trim();
                    op.Value = op.Value.StartsWith("'")? op.Value.Substring(1, op.Value.Length - 2):op.Value.Trim();
                }
            }
            //return result;
        }
예제 #9
0
        public void Parse(CompareComplexConditionInfo ctx)
        {
            if (Compare_complex_mix_or == null &&
                    Compare_complex == null)
                return;

            CompareComplexConditionInfo result = new CompareComplexConditionInfo();
            if (Compare_complex_mix_or != null)
            {
                var orCondition = new OrConditionInfo();
                ctx.OrConditionInfo = orCondition;
                Compare_complex_mix_or.Parse(orCondition);

                //rslt.Parameters.AddRange(temp.Parameters);

                //rslt.Join(temp);
            }
            if (Compare_complex != null)
            {
                //var condition = new ConditionInfo();
                ctx.AtomConditionInfo = Compare_complex.Parse(null);

                //rslt.Join(temp);
            }

            if (Search_option != null)
            {
                ctx.Options = this.Search_option.Parse();
                foreach (var op in ctx.Options)
                {
                    op.Name = op.Name.StartsWith("'") ? op.Name.Substring(1, op.Name.Length - 2) : op.Name.Trim();
                    op.Value = op.Value.StartsWith("'")? op.Value.Substring(1,op.Value.Length-2):op.Value.Trim();
                }
            }
            //return result;
        }
예제 #10
0
 public void Parse(OrConditionInfo ctx)
 {
     Condition_clause.Parse(ctx);
 }
예제 #11
0
 public void Parse(OrConditionInfo ctx)
 {
     Condition_clause.Parse(ctx);
 }
예제 #12
0
 public OrConditionInfo Parse(SelectAtomContext ctx)
 {
     var rslt = new OrConditionInfo();
     Condition_clause.Parse(rslt);
     return rslt;
 }