示例#1
0
文件: Tests.cs 项目: kry127/IdeDevel
        private static BaseExpression GenerateRandomExpression(Random rnd, int lvl)
        {
            if (lvl <= 1)
            {
                var leafKind = rnd.Next(0, 1);
                if (leafKind == 0)
                {
                    return(new IntegerExpression(rnd.Next()));
                }
                else
                {
                    return(new VarExpression("v" + rnd.Next(0, 10)));
                }
            }

            var p = rnd.NextDouble();

            if (p < 0.5)
            {
                var lhs = GenerateRandomExpression(rnd, rnd.Next(1, lvl - 1));
                var rhs = GenerateRandomExpression(rnd, rnd.Next(1, lvl - 1));
                BinopExpression.BinopType op = (BinopExpression.BinopType)rnd.Next(0, 5);
                return(new BinopExpression(lhs, rhs, op));
            }
            else if (p < 0.75)
            {
                return(new IntegerExpression(rnd.Next()));
            }
            else
            {
                return(new VarExpression("v" + rnd.Next(0, 10)));
            }
        }
示例#2
0
 public OrphanOperator(BinopExpression.BinopType op)
 {
     this.op = op;
 }