Ejemplo n.º 1
0
        public override bool EvalStep(out object answer, ref Control expression, ref Environment environment)
        {
#if DEBUG
            Warm("-");
            SCode.location = "POrIsEqSQ.EvalStep";
#endif

            object ev1 = this.rand1Value;
            object ev0;
            if (environment.StaticValue(out ev0, this.rand0Name, this.rand0Offset))
            {
                throw new NotImplementedException();
            }


            if (!ObjectModel.SchemeEq(ev0, ev1))
            {
#if DEBUG
                SCode.location = "-";
                NoteCalls(this.alternative);
                alternativeTypeHistogram.Note(this.alternativeType);
                SCode.location = "POrIsEqSQ.EvalStep";
#endif
                expression = this.alternative;
                answer     = null; //happy compiler
                return(true);
            }
            else
            {
                answer = Constant.sharpT;
                return(false);
            }
        }
Ejemplo n.º 2
0
        public override bool EvalStep(out object answer, ref Control expression, ref Environment environment)
        {
#if DEBUG
            Warm("-");
            SCode.location = "POrIsEqAA0.EvalStep";
#endif
            object ev1 = environment.Argument0Value;
            object ev0 = environment.ArgumentValue(this.rand1Offset);


            if (!ObjectModel.SchemeEq(ev0, ev1))
            {
#if DEBUG
                SCode.location = "-";
                NoteCalls(this.alternative);
                alternativeTypeHistogram.Note(this.alternativeType);
                SCode.location = "POrIsEqAA0.EvalStep";
#endif
                expression = this.alternative;
                answer     = null; //happy compiler
                return(true);
            }
            else
            {
                answer = Constant.sharpT;
                return(false);
            }
        }
Ejemplo n.º 3
0
        public override bool EvalStep(out object answer, ref Control expression, ref Environment environment)
        {
#if DEBUG
            Warm("-");
            NoteCalls(this.rand0);
            rand0TypeHistogram.Note(this.rand0Type);
            SCode.location = "POrIsEqXS.EvalStep";
#endif
            object ev1;
            if (environment.StaticValue(out ev1, this.rand1Name, this.rand1Offset))
            {
                throw new NotImplementedException();
            }

            Control     unev = this.rand0;
            Environment env  = environment;
            object      ev0;
            while (unev.EvalStep(out ev0, ref unev, ref env))
            {
            }
            ;
#if DEBUG
            SCode.location = "POrXS.EvalStep";
#endif
            if (ev0 == Interpreter.UnwindStack)
            {
                throw new NotImplementedException();
                //((UnwinderState) env).AddFrame (new PrimitiveCombination1Frame0 (this, environment));
                //answer = Interpreter.UnwindStack;
                //environment = env;
                //return false;
            }


            if (!ObjectModel.SchemeEq(ev0, ev1))
            {
#if DEBUG
                SCode.location = "-";
                NoteCalls(this.alternative);
                alternativeTypeHistogram.Note(this.alternativeType);
                SCode.location = "POrIsEqXS.EvalStep";
#endif
                expression = this.alternative;
                answer     = null; //happy compiler
                return(true);
            }
            else
            {
                answer = Constant.sharpT;
                return(false);
            }
        }
Ejemplo n.º 4
0
        public override bool EvalStep(out object answer, ref Control expression, ref Environment environment)
        {
#if DEBUG
            Warm("-");
            NoteCalls(this.rand1);
            rand1TypeHistogram.Note(this.rand1Type);
            SCode.location = "PCondIsEqCarA0";
#endif
            Control     unev = this.rand1;
            Environment env  = environment;
            object      ev1;
            while (unev.EvalStep(out ev1, ref unev, ref env))
            {
            }
            ;
#if DEBUG
            SCode.location = "PCondIsEqCarA0";
#endif
            if (ev1 == Interpreter.UnwindStack)
            {
                throw new NotImplementedException();
            }

            object ev0 = environment.Argument0Value;

#if DEBUG
            SCode.location = "PCondIsEqCarA0";
#endif
            if (!ObjectModel.SchemeEq(((Cons)ev0).Car, ev1))
            {
#if DEBUG
                NoteCalls(this.alternative);
                alternativeTypeHistogram.Note(this.alternativeType);
#endif
                expression = this.alternative;
                answer     = null; // happy compiler
                return(true);
            }
            else
            {
#if DEBUG
                NoteCalls(this.consequent);
                consequentTypeHistogram.Note(this.consequentType);
#endif
                expression = this.consequent;
                answer     = null; // happy compiler
                return(true);
            }
        }
Ejemplo n.º 5
0
        public override bool EvalStep(out object answer, ref Control expression, ref Environment environment)
        {
#if DEBUG
            Warm("-");
            SCode.location = "PCondIsEqCarA0S";
#endif

            object ev1;
            if (environment.StaticValue(out ev1, this.rand1Name, this.rand1Offset))
            {
                throw new NotImplementedException();
            }

            object ev0 = environment.Argument0Value;

#if DEBUG
            SCode.location = "PCondIsEqCarA0S";
#endif
            if (!ObjectModel.SchemeEq(((Cons)ev0).Car, ev1))
            {
#if DEBUG
                NoteCalls(this.alternative);
                alternativeTypeHistogram.Note(this.alternativeType);
#endif
                expression = this.alternative;
                answer     = null; // happy compiler
                return(true);
            }
            else
            {
#if DEBUG
                NoteCalls(this.consequent);
                consequentTypeHistogram.Note(this.consequentType);
#endif
                expression = this.consequent;
                answer     = null; // happy compiler
                return(true);
            }
        }
Ejemplo n.º 6
0
        public override bool EvalStep(out object answer, ref Control expression, ref Environment environment)
        {
#if DEBUG
            Warm("-");
            NoteCalls(this.rand0Inner);
            NoteCalls(this.rand1);
            rand0TypeHistogram.Note(this.rand0InnerType);
            rand1TypeHistogram.Note(this.rand1Type);
            SCode.location = "PCondIsEqCar";
#endif
            Control     unev = this.rand1;
            Environment env  = environment;
            object      ev1;
            while (unev.EvalStep(out ev1, ref unev, ref env))
            {
            }
            ;
#if DEBUG
            SCode.location = "PCondIsEqCar";
#endif
            if (ev1 == Interpreter.UnwindStack)
            {
                throw new NotImplementedException();
            }

            unev = this.rand0Inner;
            env  = environment;
            object ev0;
            while (unev.EvalStep(out ev0, ref unev, ref env))
            {
            }
            ;
#if DEBUG
            SCode.location = "PCondIsEqCar";
#endif
            if (ev0 == Interpreter.UnwindStack)
            {
                throw new NotImplementedException();
                //((UnwinderState) env).AddFrame (new PrimitiveCombination1Frame0 (this, environment));
                //answer = Interpreter.UnwindStack;
                //environment = env;
                //return false;
            }

#if DEBUG
            SCode.location = "PCondIsEqCar";
#endif
            if (!ObjectModel.SchemeEq(((Cons)ev0).Car, ev1))
            {
#if DEBUG
                SCode.location = "-";
                NoteCalls(this.consequent);
                consequentTypeHistogram.Note(this.consequentType);
                SCode.location = "PCondIsEqCar";
#endif
                expression = this.consequent;
            }
            else
            {
#if DEBUG
                SCode.location = "-";
                NoteCalls(this.alternative);
                alternativeTypeHistogram.Note(this.alternativeType);
                SCode.location = "PCondIsEqCar";
#endif
                expression = this.alternative;
            }
            answer = null; // happy compiler
            return(true);
        }